@fintekkers/ledger-models 0.4.38 → 0.4.40

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
@@ -12,6 +12,9 @@ const protoEnum_1 = require("./protoEnum");
12
12
  const uuid_1 = require("./uuid");
13
13
  const wrappers_pb_1 = require("google-protobuf/google/protobuf/wrappers_pb");
14
14
  const identifier_1 = require("../security/identifier");
15
+ const decimal_js_1 = require("decimal.js");
16
+ const errors_1 = require("../errors");
17
+ const decimal_1 = require("./decimal");
15
18
  class ProtoSerializationUtil {
16
19
  static serialize(obj) {
17
20
  if (obj instanceof uuid_1.UUID) {
@@ -26,8 +29,15 @@ class ProtoSerializationUtil {
26
29
  if (obj instanceof datetime_1.ZonedDateTime) {
27
30
  return obj.toProto();
28
31
  }
32
+ if (obj instanceof decimal_js_1.Decimal) {
33
+ return (0, decimal_1.encodeDecimal)((0, decimal_1.fromDecimalJs)(obj));
34
+ }
29
35
  if (typeof obj === "number") {
30
- return new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue(obj.toString());
36
+ // Lossless (LM-306): only a safe integer is exact as a JS number.
37
+ if (!Number.isSafeInteger(obj)) {
38
+ throw new errors_1.ModelValidationError([(0, errors_1.violation)('', undefined, `decimal ${obj} is not a safe integer: pass a Decimal for an exact value`)]);
39
+ }
40
+ return (0, decimal_1.encodeDecimal)({ unscaled: BigInt(obj), scale: 0 });
31
41
  }
32
42
  if (obj instanceof String) {
33
43
  return new wrappers_pb_1.StringValue().setValue(obj.toString());
@@ -53,7 +63,7 @@ class ProtoSerializationUtil {
53
63
  return new identifier_1.Identifier(obj);
54
64
  }
55
65
  if (obj instanceof decimal_value_pb_1.DecimalValueProto) {
56
- return parseFloat(obj.getArbitraryPrecisionValue());
66
+ return (0, decimal_1.toDecimalJs)((0, decimal_1.decodeDecimal)(obj));
57
67
  }
58
68
  if (obj instanceof wrappers_pb_1.StringValue) {
59
69
  return obj.toString();
@@ -1 +1 @@
1
- {"version":3,"file":"serialization.js","sourceRoot":"","sources":["serialization.ts"],"names":[],"mappings":";;;AAAA,gGAA+F;AAC/F,uFAAqF;AACrF,iFAA+E;AAC/E,2FAAyF;AACzF,qEAAoE;AACpE,uGAAqG;AACrG,yCAA2C;AAC3C,2CAAwC;AACxC,iCAA8B;AAC9B,6EAA0E;AAC1E,uDAAoD;AAEpD,MAAa,sBAAsB;IACjC,MAAM,CAAC,SAAS,CAAC,GAAQ;QACvB,IAAI,GAAG,YAAY,WAAI,EAAE;YACvB,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;SAC1B;QACD,IAAI,GAAG,YAAY,IAAI,EAAE;YACvB,OAAO,IAAI,8BAAc,EAAE;iBACxB,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;iBAC1B,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;iBAC5B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;SAC1B;QACD,IAAI,GAAG,YAAY,wBAAa,EAAE;YAChC,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;SACtB;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,OAAO,IAAI,oCAAiB,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC3E;QACD,IAAI,GAAG,YAAY,MAAM,EAAE;YACzB,OAAO,IAAI,yBAAW,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;SACnD;QACD,IAAI,GAAG,YAAY,uBAAU,EAAE;YAC7B,OAAO,GAAG,CAAC,KAAwB,CAAC;SACrC;QAED,MAAM,IAAI,KAAK,CAAC,sCAAsC,OAAO,GAAG,YAAY,GAAG,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAQ;QACzB,IAAI,GAAG,YAAY,mBAAS,EAAE;YAC5B,OAAO,WAAI,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;SAChD;QACD,IAAI,GAAG,YAAY,8BAAc,EAAE;YACjC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;SACb;QACD,IAAI,GAAG,YAAY,wCAAmB,EAAE;YACtC,OAAO,IAAI,wBAAa,CAAC,GAAG,CAAC,CAAC;SAC/B;QACD,IAAI,GAAG,YAAY,+BAAe,EAAE;YAClC,OAAO,IAAI,uBAAU,CAAC,GAAG,CAAC,CAAC;SAC5B;QACD,IAAI,GAAG,YAAY,oCAAiB,EAAE;YACpC,OAAO,UAAU,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC;SACrD;QACD,IAAI,GAAG,YAAY,yBAAW,EAAE;YAC9B,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;SACvB;QACD,IAAI,GAAG,KAAK,IAAI,IAAI,WAAW,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,WAAW,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,EAAE;YACxG,OAAO,IAAI,qBAAS,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;SACtD;QACD,IAAI,GAAG,YAAY,gDAAuB,EAAE;YAC1C,OAAO,GAAG,CAAC;SACZ;QAED,MAAM,IAAI,KAAK,CAAC,wCAAwC,OAAO,GAAG,YAAY,GAAG,EAAE,CAAC,CAAC;IACvF,CAAC;CACF;AAzDD,wDAyDC"}
1
+ {"version":3,"file":"serialization.js","sourceRoot":"","sources":["serialization.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,9 @@ import { ProtoEnum } from "./protoEnum";
9
9
  import { UUID } from "./uuid";
10
10
  import { StringValue } from 'google-protobuf/google/protobuf/wrappers_pb';
11
11
  import { Identifier } from "../security/identifier";
12
+ import { Decimal } from "decimal.js";
13
+ import { ModelValidationError, violation } from "../errors";
14
+ import { decodeDecimal, encodeDecimal, fromDecimalJs, toDecimalJs } from "./decimal";
12
15
 
13
16
  export class ProtoSerializationUtil {
14
17
  static serialize(obj: any): UUIDProto | LocalDateProto | LocalTimestampProto | DecimalValueProto | StringValue | IdentifierProto { //}: UUIDProto | LocalDateProto | LocalTimestampProto | DecimalValueProto | StringValue {
@@ -24,8 +27,16 @@ export class ProtoSerializationUtil {
24
27
  if (obj instanceof ZonedDateTime) {
25
28
  return obj.toProto();
26
29
  }
30
+ if (obj instanceof Decimal) {
31
+ return encodeDecimal(fromDecimalJs(obj));
32
+ }
27
33
  if (typeof obj === "number") {
28
- return new DecimalValueProto().setArbitraryPrecisionValue(obj.toString());
34
+ // Lossless (LM-306): only a safe integer is exact as a JS number.
35
+ if (!Number.isSafeInteger(obj)) {
36
+ throw new ModelValidationError([violation('', undefined,
37
+ `decimal ${obj} is not a safe integer: pass a Decimal for an exact value`)]);
38
+ }
39
+ return encodeDecimal({ unscaled: BigInt(obj), scale: 0 });
29
40
  }
30
41
  if (obj instanceof String) {
31
42
  return new StringValue().setValue(obj.toString());
@@ -37,7 +48,7 @@ export class ProtoSerializationUtil {
37
48
  throw new Error(`Could not serialize object of type ${typeof obj}. Value: ${obj}`);
38
49
  }
39
50
 
40
- static deserialize(obj: any): UUID | Date | ZonedDateTime | Identifier | string | number | ProtoEnum | StrategyAllocationProto { //}: UUID | Date | ZonedDateTime | number | string {
51
+ static deserialize(obj: any): UUID | Date | ZonedDateTime | Identifier | string | Decimal | ProtoEnum | StrategyAllocationProto { //}: UUID | Date | ZonedDateTime | number | string {
41
52
  if (obj instanceof UUIDProto) {
42
53
  return UUID.fromU8Array(obj.getRawUuid_asU8());
43
54
  }
@@ -53,7 +64,7 @@ export class ProtoSerializationUtil {
53
64
  return new Identifier(obj);
54
65
  }
55
66
  if (obj instanceof DecimalValueProto) {
56
- return parseFloat(obj.getArbitraryPrecisionValue());
67
+ return toDecimalJs(decodeDecimal(obj));
57
68
  }
58
69
  if (obj instanceof StringValue) {
59
70
  return obj.toString();
@@ -54,6 +54,6 @@ test('test the api.fintekkers.org security service by creating a maturity ladder
54
54
  }
55
55
  }
56
56
  }
57
- expect(results[0]['outstandingAmount']).toBeGreaterThan(0);
57
+ expect(results[0]['outstandingAmount'].greaterThan(0)).toBe(true);
58
58
  }), 90000);
59
59
  //# sourceMappingURL=security.maturityLadder.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"security.maturityLadder.test.js","sourceRoot":"","sources":["security.maturityLadder.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,iCAAkC;AAElC,SAAS;AAET,cAAc;AACd,2EAA0E;AAC1E,uDAAoD;AACpD,yEAAsE;AAEtE,oEAA0E;AAE1E,IAAI,CAAC,kGAAkG,EAAE,GAAS,EAAE;;IAChH,6FAA6F;IAC7F,MAAM,eAAe,GAAG,IAAI,iCAAe,EAAE,CAAC;IAE9C,MAAM,cAAc,GAAG,IAAI,+BAAc,EAAE,CAAC;IAC5C,cAAc,CAAC,eAAe,CAAC,qBAAU,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACvE,cAAc,CAAC,eAAe,CAAC,qBAAU,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;IAEjF,IAAI,UAAU,GAAG,MAAM,eAAe,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;IAE7E,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9B,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,+CAA+C;IAC/C,KAAK,IAAI,KAAK,IAAI,UAAU,EAAE;QAC1B,IAAI,QAAQ,GAAa,UAAU,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAClD,IAAI,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,IAAI,QAAQ,GAAG,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhF,IAAI,QAAQ,EAAE;YACV,MAAM,YAAY,GAAG,MAAA,MAAA,QAAQ,CAAC,eAAe,EAAE,0CAAE,WAAW,EAAE,mCAAI,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ,CAAC,iCAAiC,EAAE,IAAI,YAAY,GAAG,IAAI,EAAE;gBACtE,6EAA6E;aAChF;iBAAM,IAAI,CAAC,QAAQ,CAAC,iCAAiC,EAAE,IAAI,YAAY,IAAI,IAAI,EAAE;gBAC9E,mDAAmD;aACtD;iBAAM;gBACH,IAAI,mBAAmB,GAAW,sCAAsB,CAAC,WAAW,CAAC,QAAQ,CAAC,iCAAiC,EAAE,CAAW,CAAC;gBAC7H,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC9C,IAAI,EAAE,GAAW,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAE5G,IAAI,MAAM,GAAG;oBACT,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,QAAQ,CAAC,YAAY,EAAE;oBACpC,mBAAmB,EAAE,mBAAmB;oBACxC,cAAc,EAAE,QAAQ,CAAC,eAAe,EAAE;iBAC7C,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACxB;SACJ;KACJ;IAED,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAA,EAAE,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"security.maturityLadder.test.js","sourceRoot":"","sources":["security.maturityLadder.test.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,iCAAkC;AAElC,SAAS;AAET,cAAc;AACd,2EAA0E;AAC1E,uDAAoD;AACpD,yEAAsE;AAEtE,oEAA0E;AAG1E,IAAI,CAAC,kGAAkG,EAAE,GAAS,EAAE;;IAChH,6FAA6F;IAC7F,MAAM,eAAe,GAAG,IAAI,iCAAe,EAAE,CAAC;IAE9C,MAAM,cAAc,GAAG,IAAI,+BAAc,EAAE,CAAC;IAC5C,cAAc,CAAC,eAAe,CAAC,qBAAU,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACvE,cAAc,CAAC,eAAe,CAAC,qBAAU,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAAC;IAEjF,IAAI,UAAU,GAAG,MAAM,eAAe,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;IAE7E,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9B,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,+CAA+C;IAC/C,KAAK,IAAI,KAAK,IAAI,UAAU,EAAE;QAC1B,IAAI,QAAQ,GAAa,UAAU,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAClD,IAAI,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,IAAI,QAAQ,GAAG,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEhF,IAAI,QAAQ,EAAE;YACV,MAAM,YAAY,GAAG,MAAA,MAAA,QAAQ,CAAC,eAAe,EAAE,0CAAE,WAAW,EAAE,mCAAI,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ,CAAC,iCAAiC,EAAE,IAAI,YAAY,GAAG,IAAI,EAAE;gBACtE,6EAA6E;aAChF;iBAAM,IAAI,CAAC,QAAQ,CAAC,iCAAiC,EAAE,IAAI,YAAY,IAAI,IAAI,EAAE;gBAC9E,mDAAmD;aACtD;iBAAM;gBACH,IAAI,mBAAmB,GAAY,sCAAsB,CAAC,WAAW,CAAC,QAAQ,CAAC,iCAAiC,EAAE,CAAY,CAAC;gBAC/H,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC9C,IAAI,EAAE,GAAW,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAE5G,IAAI,MAAM,GAAG;oBACT,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,QAAQ,CAAC,YAAY,EAAE;oBACpC,mBAAmB,EAAE,mBAAmB;oBACxC,cAAc,EAAE,QAAQ,CAAC,eAAe,EAAE;iBAC7C,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACxB;SACJ;KACJ;IAED,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtE,CAAC,CAAA,EAAE,KAAK,CAAC,CAAC"}
@@ -8,6 +8,7 @@ import { SecurityService } from './SecurityService';
8
8
  import { PositionFilter } from '../../models/position/positionfilter';
9
9
  import Security from '../../models/security/security';
10
10
  import { ProtoSerializationUtil } from '../../models/utils/serialization';
11
+ import Decimal from 'decimal.js';
11
12
 
12
13
  test('test the api.fintekkers.org security service by creating a maturity ladder for the US government', async () => {
13
14
  //Get list of all securities from the US government, with a maturity data beyond today's date
@@ -37,7 +38,7 @@ test('test the api.fintekkers.org security service by creating a maturity ladder
37
38
  } else if (!issuance.getPostAuctionOutstandingQuantity() && maturityYear <= 2009) {
38
39
  //Swallow this data gap. It's old and we don't mind
39
40
  } else {
40
- let postAuctionQuantity: number = ProtoSerializationUtil.deserialize(issuance.getPostAuctionOutstandingQuantity()) as number;
41
+ let postAuctionQuantity: Decimal = ProtoSerializationUtil.deserialize(issuance.getPostAuctionOutstandingQuantity()) as Decimal;
41
42
  const identifiers = security.getIdentifiers();
42
43
  let id: string = identifiers.length > 0 ? identifiers[0].getIdentifierValue() : security.getID().toString();
43
44
 
@@ -52,6 +53,6 @@ test('test the api.fintekkers.org security service by creating a maturity ladder
52
53
  }
53
54
  }
54
55
 
55
- expect(results[0]['outstandingAmount']).toBeGreaterThan(0);
56
+ expect(results[0]['outstandingAmount'].greaterThan(0)).toBe(true);
56
57
  }, 90000);
57
58
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fintekkers/ledger-models",
3
3
  "todo": "Replace the version with build script version number",
4
- "version": "0.4.38",
4
+ "version": "0.4.40",
5
5
  "description": "ledger model protos ",
6
6
  "authors": [
7
7
  "David Doherty",
package/tsconfig.json CHANGED
@@ -2,6 +2,7 @@
2
2
  "compileOnSave": true,
3
3
  "compilerOptions": {
4
4
  "target": "es2016",
5
+ "lib": ["es2016", "es2020.bigint", "dom"],
5
6
  "module": "commonjs",
6
7
  "declaration": true,
7
8
  "sourceMap": true,