@fintekkers/ledger-models 0.1.111 → 0.1.113
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.
- package/node/wrappers/models/position/position.js +1 -1
- package/node/wrappers/models/position/position.js.map +1 -1
- package/node/wrappers/models/position/position.ts +1 -1
- package/node/wrappers/models/security/BondSecurity.d.ts +17 -0
- package/node/wrappers/models/security/BondSecurity.js +43 -0
- package/node/wrappers/models/security/BondSecurity.js.map +1 -0
- package/node/wrappers/models/security/BondSecurity.ts +51 -0
- package/node/wrappers/models/security/security.d.ts +8 -3
- package/node/wrappers/models/security/security.js +26 -7
- package/node/wrappers/models/security/security.js.map +1 -1
- package/node/wrappers/models/security/security.test.js +2 -2
- package/node/wrappers/models/security/security.test.js.map +1 -1
- package/node/wrappers/models/security/security.test.ts +2 -2
- package/node/wrappers/models/security/security.ts +29 -9
- package/node/wrappers/models/transaction/transaction.js +1 -1
- package/node/wrappers/models/transaction/transaction.js.map +1 -1
- package/node/wrappers/models/transaction/transaction.ts +1 -1
- package/node/wrappers/services/security-service/SecurityService.js +1 -1
- package/node/wrappers/services/security-service/SecurityService.js.map +1 -1
- package/node/wrappers/services/security-service/SecurityService.ts +1 -1
- package/node/wrappers/services/security-service/security.maturityLadder.test.js +3 -3
- package/node/wrappers/services/security-service/security.maturityLadder.test.js.map +1 -1
- package/node/wrappers/services/security-service/security.maturityLadder.test.ts +3 -3
- package/package.json +1 -1
|
@@ -72,7 +72,7 @@ class Position {
|
|
|
72
72
|
return unpackedValue; //instanceof PriceProto || TenorProto
|
|
73
73
|
}
|
|
74
74
|
if (field_pb_1.FieldProto.SECURITY == fieldToGet.getField()) {
|
|
75
|
-
return
|
|
75
|
+
return security_1.default.create(unpackedValue);
|
|
76
76
|
}
|
|
77
77
|
if (field_pb_1.FieldProto.PORTFOLIO == fieldToGet.getField()) {
|
|
78
78
|
return new portfolio_1.default(unpackedValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.js","sourceRoot":"","sources":["position.ts"],"names":[],"mappings":";;;;;;AAAA,QAAQ;AACR,2EAA0E;AAC1E,iFAAgF;AAChF,2FAAsG;AACtG,uEAA+C;AAC/C,oEAA4C;AAC5C,+EAA8E;AAE9E,0DAAgE;AAChE,kDAA+C;AAC/C,mCAAgC;AAChC,wCAAqC;AACrC,gDAAkD;AAClD,wEAAuE;AACvE,6EAAqD;AAErD,qEAAoE;AACpE,2FAAyF;AACzF,iFAA+E;AAC/E,gGAA+F;AAC/F,iFAAgF;AAChF,2EAA0E;AAC1E,oFAAmF;AACnF,iFAAgF;AAEhF,6EAA0E;AAC1E,MAAa,QAAQ;IAGnB,YAAY,aAA4B;QACtC,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;IAC7B,CAAC;IAED,OAAO;IACP,MAAM;QACJ,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,wCAAwC;SAC9E,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAS;QACvB,OAAO,IAAI,QAAQ,CAAC,2BAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAEM,aAAa,CAAC,KAAiB;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,gCAAa,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAEM,QAAQ,CAAC,UAAyB;QACvC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;YAClD,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAElD,IAAI,QAAQ,CAAC,cAAc,EAAE,KAAK,SAAS,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpF,OAAO,QAAQ,CAAC,cAAc,EAAE,CAAC;gBACnC,CAAC;gBAED,IAAI,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;oBAChC,IAAI,SAAS,GAAW,IAAI,aAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBACnE,IAAI,KAAK,GAAc,qBAAS,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;oBAClF,OAAO,KAAK,CAAC;gBACf,CAAC;qBAAM,IAAI,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;oBACnE,CAAC,QAAQ,CAAC,mBAAmB,EAAE,EAAE,CAAC;oBAClC,OAAO,CAAC,GAAG,CAAC,4FAA4F,CAAC,CAAC;oBAC1G,IAAI,SAAS,GAAW,IAAI,aAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;oBACnE,IAAI,KAAK,GAAc,qBAAS,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;oBAC5D,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAErD,IAAI,qBAAU,CAAC,KAAK,IAAI,UAAU,CAAC,QAAQ,EAAE;uBACxC,qBAAU,CAAC,KAAK,IAAI,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;oBAC/C,OAAO,aAAa,CAAC,CAAC,qCAAqC;gBAC7D,CAAC;gBAED,IAAI,qBAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;oBACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"position.js","sourceRoot":"","sources":["position.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import Security from './security';
|
|
2
|
+
import { SecurityProto } from '../../../fintekkers/models/security/security_pb';
|
|
3
|
+
import { DecimalValueProto } from '../../../fintekkers/models/util/decimal_value_pb';
|
|
4
|
+
import { CouponTypeProto } from '../../../fintekkers/models/security/coupon_type_pb';
|
|
5
|
+
import { CouponFrequencyProto } from '../../../fintekkers/models/security/coupon_frequency_pb';
|
|
6
|
+
import { LocalDate } from '../utils/date';
|
|
7
|
+
import { IssuanceProto } from '../../../fintekkers/models/security/bond/issuance_pb';
|
|
8
|
+
declare class BondSecurity extends Security {
|
|
9
|
+
constructor(proto: SecurityProto);
|
|
10
|
+
getCouponRate(): DecimalValueProto;
|
|
11
|
+
getFaceValue(): DecimalValueProto;
|
|
12
|
+
getCouponType(): CouponTypeProto;
|
|
13
|
+
getCouponFrequency(): CouponFrequencyProto;
|
|
14
|
+
getDatedDate(): LocalDate | undefined;
|
|
15
|
+
getIssuanceInfo(): IssuanceProto[];
|
|
16
|
+
}
|
|
17
|
+
export default BondSecurity;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const security_1 = __importDefault(require("./security"));
|
|
7
|
+
const security_type_pb_1 = require("../../../fintekkers/models/security/security_type_pb");
|
|
8
|
+
const date_1 = require("../utils/date");
|
|
9
|
+
class BondSecurity extends security_1.default {
|
|
10
|
+
constructor(proto) {
|
|
11
|
+
super(proto);
|
|
12
|
+
if (proto.getSecurityType() !== security_type_pb_1.SecurityTypeProto.BOND_SECURITY) {
|
|
13
|
+
throw new Error(`BondSecurity requires BOND_SECURITY type, got ${security_type_pb_1.SecurityTypeProto[proto.getSecurityType()]}`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
getCouponRate() {
|
|
17
|
+
const rate = this.proto.getCouponRate();
|
|
18
|
+
if (!rate)
|
|
19
|
+
throw new Error("Coupon rate is required for bonds");
|
|
20
|
+
return rate;
|
|
21
|
+
}
|
|
22
|
+
getFaceValue() {
|
|
23
|
+
const faceValue = this.proto.getFaceValue();
|
|
24
|
+
if (!faceValue)
|
|
25
|
+
throw new Error("Face value is required for bonds");
|
|
26
|
+
return faceValue;
|
|
27
|
+
}
|
|
28
|
+
getCouponType() {
|
|
29
|
+
return this.proto.getCouponType();
|
|
30
|
+
}
|
|
31
|
+
getCouponFrequency() {
|
|
32
|
+
return this.proto.getCouponFrequency();
|
|
33
|
+
}
|
|
34
|
+
getDatedDate() {
|
|
35
|
+
const datedDate = this.proto.getDatedDate();
|
|
36
|
+
return datedDate ? new date_1.LocalDate(datedDate) : undefined;
|
|
37
|
+
}
|
|
38
|
+
getIssuanceInfo() {
|
|
39
|
+
return this.proto.getIssuanceInfoList();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.default = BondSecurity;
|
|
43
|
+
//# sourceMappingURL=BondSecurity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BondSecurity.js","sourceRoot":"","sources":["BondSecurity.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;AAElC,2FAAyF;AAIzF,wCAA0C;AAG1C,MAAM,YAAa,SAAQ,kBAAQ;IACjC,YAAY,KAAoB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,KAAK,CAAC,eAAe,EAAE,KAAK,oCAAiB,CAAC,aAAa,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CACb,iDAAiD,oCAAiB,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,EAAE,CAC9F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,aAAa;QACX,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC5C,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACpE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;IACzC,CAAC;IAED,YAAY;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC5C,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,gBAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;IAC1C,CAAC;CACF;AAED,kBAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import Security from './security';
|
|
2
|
+
import { SecurityProto } from '../../../fintekkers/models/security/security_pb';
|
|
3
|
+
import { SecurityTypeProto } from '../../../fintekkers/models/security/security_type_pb';
|
|
4
|
+
import { DecimalValueProto } from '../../../fintekkers/models/util/decimal_value_pb';
|
|
5
|
+
import { CouponTypeProto } from '../../../fintekkers/models/security/coupon_type_pb';
|
|
6
|
+
import { CouponFrequencyProto } from '../../../fintekkers/models/security/coupon_frequency_pb';
|
|
7
|
+
import { LocalDate } from '../utils/date';
|
|
8
|
+
import { IssuanceProto } from '../../../fintekkers/models/security/bond/issuance_pb';
|
|
9
|
+
|
|
10
|
+
class BondSecurity extends Security {
|
|
11
|
+
constructor(proto: SecurityProto) {
|
|
12
|
+
super(proto);
|
|
13
|
+
if (proto.getSecurityType() !== SecurityTypeProto.BOND_SECURITY) {
|
|
14
|
+
throw new Error(
|
|
15
|
+
`BondSecurity requires BOND_SECURITY type, got ${SecurityTypeProto[proto.getSecurityType()]}`
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
getCouponRate(): DecimalValueProto {
|
|
21
|
+
const rate = this.proto.getCouponRate();
|
|
22
|
+
if (!rate) throw new Error("Coupon rate is required for bonds");
|
|
23
|
+
return rate;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
getFaceValue(): DecimalValueProto {
|
|
27
|
+
const faceValue = this.proto.getFaceValue();
|
|
28
|
+
if (!faceValue) throw new Error("Face value is required for bonds");
|
|
29
|
+
return faceValue;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
getCouponType(): CouponTypeProto {
|
|
33
|
+
return this.proto.getCouponType();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
getCouponFrequency(): CouponFrequencyProto {
|
|
37
|
+
return this.proto.getCouponFrequency();
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
getDatedDate(): LocalDate | undefined {
|
|
41
|
+
const datedDate = this.proto.getDatedDate();
|
|
42
|
+
return datedDate ? new LocalDate(datedDate) : undefined;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
getIssuanceInfo(): IssuanceProto[] {
|
|
46
|
+
return this.proto.getIssuanceInfoList();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export default BondSecurity;
|
|
51
|
+
|
|
@@ -3,9 +3,14 @@ import { IdentifierProto } from "../../../fintekkers/models/security/identifier/
|
|
|
3
3
|
import { SecurityProto } from "../../../fintekkers/models/security/security_pb";
|
|
4
4
|
import { ZonedDateTime } from "../utils/datetime";
|
|
5
5
|
import { UUID } from "../utils/uuid";
|
|
6
|
+
import { LocalDate } from "../utils/date";
|
|
6
7
|
declare class Security {
|
|
7
8
|
proto: SecurityProto;
|
|
8
9
|
constructor(proto: SecurityProto);
|
|
10
|
+
/**
|
|
11
|
+
* Factory method to create the appropriate Security subclass based on security type
|
|
12
|
+
*/
|
|
13
|
+
static create(proto: SecurityProto): Security;
|
|
9
14
|
toString(): string;
|
|
10
15
|
getFields(): FieldProto[];
|
|
11
16
|
getField(field: FieldProto): any;
|
|
@@ -13,10 +18,10 @@ declare class Security {
|
|
|
13
18
|
getAsOf(): ZonedDateTime;
|
|
14
19
|
getAssetClass(): string;
|
|
15
20
|
getProductClass(): string;
|
|
16
|
-
getProductType():
|
|
21
|
+
getProductType(): string;
|
|
17
22
|
getSecurityID(): IdentifierProto;
|
|
18
|
-
getIssueDate():
|
|
19
|
-
getMaturityDate():
|
|
23
|
+
getIssueDate(): LocalDate;
|
|
24
|
+
getMaturityDate(): LocalDate;
|
|
20
25
|
getIssuerName(): string;
|
|
21
26
|
equals(other: Security): boolean;
|
|
22
27
|
}
|
|
@@ -3,11 +3,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const field_pb_1 = require("../../../fintekkers/models/position/field_pb");
|
|
4
4
|
const datetime_1 = require("../utils/datetime");
|
|
5
5
|
const uuid_1 = require("../utils/uuid");
|
|
6
|
-
const
|
|
6
|
+
const date_1 = require("../utils/date");
|
|
7
|
+
const security_type_pb_1 = require("../../../fintekkers/models/security/security_type_pb");
|
|
7
8
|
class Security {
|
|
8
9
|
constructor(proto) {
|
|
9
10
|
this.proto = proto;
|
|
10
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Factory method to create the appropriate Security subclass based on security type
|
|
14
|
+
*/
|
|
15
|
+
static create(proto) {
|
|
16
|
+
switch (proto.getSecurityType()) {
|
|
17
|
+
case security_type_pb_1.SecurityTypeProto.BOND_SECURITY:
|
|
18
|
+
// Lazy import to avoid circular dependency
|
|
19
|
+
const BondSecurity = require('./BondSecurity').default;
|
|
20
|
+
return new BondSecurity(proto);
|
|
21
|
+
default:
|
|
22
|
+
return new Security(proto);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
11
25
|
toString() {
|
|
12
26
|
return `ID[${this.getID().toString()}], ${this.getSecurityID()}[${this.getIssuerName()}]`;
|
|
13
27
|
}
|
|
@@ -33,7 +47,9 @@ class Security {
|
|
|
33
47
|
case field_pb_1.FieldProto.ADJUSTED_TENOR:
|
|
34
48
|
throw new Error('Not implemented yet');
|
|
35
49
|
case field_pb_1.FieldProto.MATURITY_DATE:
|
|
36
|
-
|
|
50
|
+
return this.getMaturityDate();
|
|
51
|
+
case field_pb_1.FieldProto.ISSUE_DATE:
|
|
52
|
+
return this.getIssueDate();
|
|
37
53
|
default:
|
|
38
54
|
throw new Error(`Field not mapped in Security wrapper: ${field}`);
|
|
39
55
|
}
|
|
@@ -57,7 +73,10 @@ class Security {
|
|
|
57
73
|
throw new Error('Not implemented yet. See Java implementation for reference');
|
|
58
74
|
}
|
|
59
75
|
getProductType() {
|
|
60
|
-
|
|
76
|
+
let securityType = this.proto.getSecurityType();
|
|
77
|
+
let securityTypeString = security_type_pb_1.SecurityTypeProto[securityType];
|
|
78
|
+
;
|
|
79
|
+
return securityTypeString;
|
|
61
80
|
}
|
|
62
81
|
getSecurityID() {
|
|
63
82
|
const identifier = this.proto.getIdentifier();
|
|
@@ -68,14 +87,14 @@ class Security {
|
|
|
68
87
|
getIssueDate() {
|
|
69
88
|
const date = this.proto.getIssueDate();
|
|
70
89
|
if (!date)
|
|
71
|
-
throw new Error("
|
|
72
|
-
return
|
|
90
|
+
throw new Error("Issue date is required");
|
|
91
|
+
return new date_1.LocalDate(date);
|
|
73
92
|
}
|
|
74
93
|
getMaturityDate() {
|
|
75
94
|
const date = this.proto.getMaturityDate();
|
|
76
95
|
if (!date)
|
|
77
|
-
throw new Error("
|
|
78
|
-
return
|
|
96
|
+
throw new Error("Maturity date is required");
|
|
97
|
+
return new date_1.LocalDate(date);
|
|
79
98
|
}
|
|
80
99
|
getIssuerName() {
|
|
81
100
|
return this.proto.getIssuerName();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.js","sourceRoot":"","sources":["security.ts"],"names":[],"mappings":";;AAAA,2EAA0E;AAG1E,gDAAkD;AAClD,wCAAqC;
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["security.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,10 +17,10 @@ test('test the security wrapper', () => {
|
|
|
17
17
|
});
|
|
18
18
|
function testSerialization() {
|
|
19
19
|
const security = dummySecurity();
|
|
20
|
-
assert(security.getMaturityDate().getFullYear() == 2026);
|
|
20
|
+
assert(security.getMaturityDate().toDate().getFullYear() == 2026);
|
|
21
21
|
}
|
|
22
22
|
function dummySecurity() {
|
|
23
|
-
return
|
|
23
|
+
return security_1.default.create(new security_pb_1.SecurityProto()
|
|
24
24
|
.setObjectClass('Transaction').setVersion('0.0.1').setUuid(uuid_1.UUID.random().toUUIDProto())
|
|
25
25
|
.setFaceValue(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue('1000.00'))
|
|
26
26
|
.setQuantityType(security_quantity_type_pb_1.SecurityQuantityTypeProto.ORIGINAL_FACE_VALUE)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.test.js","sourceRoot":"","sources":["security.test.ts"],"names":[],"mappings":";;;;;AAAA,iFAA+E;AAC/E,wCAAqC;AAErC,iCAAkC;AAClC,0DAAkC;AAElC,uFAAqF;AACrF,iFAAgF;AAChF,iGAA+F;AAC/F,uFAAqF;AACrF,6GAA0G;AAG1G,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACnC,iBAAiB,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEH,SAAS,iBAAiB;IACtB,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IAEjC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"security.test.js","sourceRoot":"","sources":["security.test.ts"],"names":[],"mappings":";;;;;AAAA,iFAA+E;AAC/E,wCAAqC;AAErC,iCAAkC;AAClC,0DAAkC;AAElC,uFAAqF;AACrF,iFAAgF;AAChF,iGAA+F;AAC/F,uFAAqF;AACrF,6GAA0G;AAG1G,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACnC,iBAAiB,EAAE,CAAC;AACxB,CAAC,CAAC,CAAC;AAEH,SAAS,iBAAiB;IACtB,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IAEjC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,aAAa;IAClB,OAAO,kBAAQ,CAAC,MAAM,CAAC,IAAI,2BAAa,EAAE;SACrC,cAAc,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,WAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;SACtF,YAAY,CAAC,IAAI,oCAAiB,EAAE,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;SAC3E,eAAe,CAAC,qDAAyB,CAAC,mBAAmB,CAAC;SAC9D,aAAa,CAAC,MAAM,CAAC;SACrB,aAAa,CAAC,cAAc,CAAC;SAE7B,aAAa,CAAC,IAAI,oCAAiB,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;SACzE,kBAAkB,CAAC,0CAAoB,CAAC,YAAY,CAAC;SACrD,aAAa,CAAC,gCAAe,CAAC,KAAK,CAAC;SAEpC,eAAe,CAAC,IAAI,8BAAc,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACzE,YAAY,CAAC,IAAI,8BAAc,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACtE,cAAc,CAAC,gBAAgB,CAAC,CACpC,CAAC;AACN,CAAC"}
|
|
@@ -18,11 +18,11 @@ test('test the security wrapper', () => {
|
|
|
18
18
|
function testSerialization(): void {
|
|
19
19
|
const security = dummySecurity();
|
|
20
20
|
|
|
21
|
-
assert(security.getMaturityDate().getFullYear() == 2026);
|
|
21
|
+
assert(security.getMaturityDate().toDate().getFullYear() == 2026);
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
function dummySecurity() {
|
|
25
|
-
return
|
|
25
|
+
return Security.create(new SecurityProto()
|
|
26
26
|
.setObjectClass('Transaction').setVersion('0.0.1').setUuid(UUID.random().toUUIDProto())
|
|
27
27
|
.setFaceValue(new DecimalValueProto().setArbitraryPrecisionValue('1000.00'))
|
|
28
28
|
.setQuantityType(SecurityQuantityTypeProto.ORIGINAL_FACE_VALUE)
|
|
@@ -4,6 +4,8 @@ import { SecurityProto } from "../../../fintekkers/models/security/security_pb";
|
|
|
4
4
|
import { ZonedDateTime } from "../utils/datetime";
|
|
5
5
|
import { UUID } from "../utils/uuid";
|
|
6
6
|
import { ProtoSerializationUtil } from '../utils/serialization';
|
|
7
|
+
import { LocalDate } from "../utils/date";
|
|
8
|
+
import { SecurityTypeProto } from "../../../fintekkers/models/security/security_type_pb";
|
|
7
9
|
|
|
8
10
|
class Security {
|
|
9
11
|
proto: SecurityProto;
|
|
@@ -12,6 +14,20 @@ class Security {
|
|
|
12
14
|
this.proto = proto;
|
|
13
15
|
}
|
|
14
16
|
|
|
17
|
+
/**
|
|
18
|
+
* Factory method to create the appropriate Security subclass based on security type
|
|
19
|
+
*/
|
|
20
|
+
static create(proto: SecurityProto): Security {
|
|
21
|
+
switch (proto.getSecurityType()) {
|
|
22
|
+
case SecurityTypeProto.BOND_SECURITY:
|
|
23
|
+
// Lazy import to avoid circular dependency
|
|
24
|
+
const BondSecurity = require('./BondSecurity').default;
|
|
25
|
+
return new BondSecurity(proto);
|
|
26
|
+
default:
|
|
27
|
+
return new Security(proto);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
15
31
|
toString(): string {
|
|
16
32
|
return `ID[${this.getID().toString()}], ${this.getSecurityID()}[${this.getIssuerName()}]`;
|
|
17
33
|
}
|
|
@@ -39,7 +55,9 @@ class Security {
|
|
|
39
55
|
case FieldProto.ADJUSTED_TENOR:
|
|
40
56
|
throw new Error('Not implemented yet');
|
|
41
57
|
case FieldProto.MATURITY_DATE:
|
|
42
|
-
|
|
58
|
+
return this.getMaturityDate();
|
|
59
|
+
case FieldProto.ISSUE_DATE:
|
|
60
|
+
return this.getIssueDate();
|
|
43
61
|
default:
|
|
44
62
|
throw new Error(`Field not mapped in Security wrapper: ${field}`);
|
|
45
63
|
}
|
|
@@ -65,8 +83,10 @@ class Security {
|
|
|
65
83
|
throw new Error('Not implemented yet. See Java implementation for reference');
|
|
66
84
|
}
|
|
67
85
|
|
|
68
|
-
getProductType():
|
|
69
|
-
|
|
86
|
+
getProductType(): string {
|
|
87
|
+
let securityType = this.proto.getSecurityType();
|
|
88
|
+
let securityTypeString = SecurityTypeProto[securityType];;
|
|
89
|
+
return securityTypeString;
|
|
70
90
|
}
|
|
71
91
|
|
|
72
92
|
getSecurityID(): IdentifierProto {
|
|
@@ -75,16 +95,16 @@ class Security {
|
|
|
75
95
|
return identifier;
|
|
76
96
|
}
|
|
77
97
|
|
|
78
|
-
getIssueDate():
|
|
98
|
+
getIssueDate(): LocalDate {
|
|
79
99
|
const date = this.proto.getIssueDate();
|
|
80
|
-
if (!date) throw new Error("
|
|
81
|
-
return
|
|
100
|
+
if (!date) throw new Error("Issue date is required");
|
|
101
|
+
return new LocalDate(date);
|
|
82
102
|
}
|
|
83
103
|
|
|
84
|
-
getMaturityDate():
|
|
104
|
+
getMaturityDate(): LocalDate {
|
|
85
105
|
const date = this.proto.getMaturityDate();
|
|
86
|
-
if (!date) throw new Error("
|
|
87
|
-
return
|
|
106
|
+
if (!date) throw new Error("Maturity date is required");
|
|
107
|
+
return new LocalDate(date);
|
|
88
108
|
}
|
|
89
109
|
|
|
90
110
|
getIssuerName(): string {
|
|
@@ -81,7 +81,7 @@ class Transaction {
|
|
|
81
81
|
const security = this.proto.getSecurity();
|
|
82
82
|
if (!security)
|
|
83
83
|
throw new Error("Security is required");
|
|
84
|
-
return
|
|
84
|
+
return security_1.default.create(security);
|
|
85
85
|
}
|
|
86
86
|
getStrategyAllocation() {
|
|
87
87
|
const allocation = this.proto.getStrategyAllocation();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["transaction.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["transaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -93,7 +93,7 @@ class Transaction {
|
|
|
93
93
|
getSecurity(): Security {
|
|
94
94
|
const security = this.proto.getSecurity();
|
|
95
95
|
if (!security) throw new Error("Security is required");
|
|
96
|
-
return
|
|
96
|
+
return Security.create(security);
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
getStrategyAllocation(): StrategyAllocationProto {
|
|
@@ -91,7 +91,7 @@ class SecurityService {
|
|
|
91
91
|
return new Promise((resolve, reject) => {
|
|
92
92
|
stream2.on('data', (response) => {
|
|
93
93
|
response.getSecurityResponseList().forEach((security) => {
|
|
94
|
-
listSecurities.push(
|
|
94
|
+
listSecurities.push(security_1.default.create(security));
|
|
95
95
|
});
|
|
96
96
|
});
|
|
97
97
|
stream2.on('end', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecurityService.js","sourceRoot":"","sources":["SecurityService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAiC;AAMjC,8EAAsD;AAItD,gEAAkD;AAElD,sBAAsB;AACtB,qHAAwG;AACxG,+GAA4G;AAE5G,iHAA8G;AAG9G,uFAA0D;AAE1D,MAAM,eAAe;IAGnB;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,yCAAc,CAAC,wBAAS,CAAC,MAAM,EAAE,wBAAS,CAAC,cAAc,CAAC,CAAC;IAC/E,CAAC;IAEK,sBAAsB,CAAC,QAAuB;;YAClD,MAAM,aAAa,GAAG,IAAI,uDAA0B,EAAE,CAAC;YACvD,aAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YAChD,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAClC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAEzC,MAAM,2BAA2B,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACpG,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,aAAa,CAAC,CAAC;YAClE,OAAO,QAAwB,CAAC;QAClC,CAAC;KAAA;IAEK,cAAc,CAAC,QAAuB;;YAC1C,MAAM,aAAa,GAAG,IAAI,uDAA0B,EAAE,CAAC;YACvD,aAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YAChD,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAClC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAEzC,MAAM,mBAAmB,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACpF,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,aAAa,CAAC,CAAC;YAC1D,OAAO,QAAuC,CAAC;QACjD,CAAC;KAAA;IAEK,qBAAqB,CAAC,cAA8B;;YACxD,MAAM,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAClD,CAAC;KAAA;IAEK,cAAc,CAAC,IAAyB,EAAE,cAA8B;;YAC5E,MAAM,aAAa,GAAG,IAAI,qDAAyB,EAAE,CAAC;YACtD,aAAa,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YAChD,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAClC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAE5B,aAAa,CAAC,sBAAsB,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;YAE/D,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;YAE9B,MAAM,cAAc,GAAe,EAAE,CAAC;YAEtC,SAAe,0BAA0B;;oBACvC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;oBAEhD,OAAO,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;wBACjD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,QAAoC,EAAE,EAAE;4BAC1D,QAAQ,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gCACtD,cAAc,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"SecurityService.js","sourceRoot":"","sources":["SecurityService.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,7 +71,7 @@ class SecurityService {
|
|
|
71
71
|
return new Promise<Security[]>((resolve, reject) => {
|
|
72
72
|
stream2.on('data', (response: QuerySecurityResponseProto) => {
|
|
73
73
|
response.getSecurityResponseList().forEach((security) => {
|
|
74
|
-
listSecurities.push(
|
|
74
|
+
listSecurities.push(Security.create(security));
|
|
75
75
|
});
|
|
76
76
|
});
|
|
77
77
|
|
|
@@ -31,10 +31,10 @@ test('test the api.fintekkers.org security service by creating a maturity ladder
|
|
|
31
31
|
let issuanceList = security.proto.getIssuanceInfoList();
|
|
32
32
|
let issuance = issuanceList && issuanceList.length > 0 ? issuanceList[0] : null;
|
|
33
33
|
if (issuance) {
|
|
34
|
-
if (!issuance.getPostAuctionOutstandingQuantity() && security.getMaturityDate().getFullYear() > 2009) {
|
|
35
|
-
console.log("Issed with %s, issuance: %s", security.getSecurityID().getIdentifierValue(), issuance);
|
|
34
|
+
if (!issuance.getPostAuctionOutstandingQuantity() && security.getMaturityDate().toDate().getFullYear() > 2009) {
|
|
35
|
+
// console.log("Issed with %s, issuance: %s", security.getSecurityID().getIdentifierValue(), issuance);
|
|
36
36
|
}
|
|
37
|
-
else if (!issuance.getPostAuctionOutstandingQuantity() && security.getMaturityDate().getFullYear() <= 2009) {
|
|
37
|
+
else if (!issuance.getPostAuctionOutstandingQuantity() && security.getMaturityDate().toDate().getFullYear() <= 2009) {
|
|
38
38
|
//Swallow this data gap. It's old and we don't mind
|
|
39
39
|
}
|
|
40
40
|
else {
|
|
@@ -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,CAAC;QAC3B,IAAI,QAAQ,GAAa,UAAU,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACxD,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,CAAC;YACX,IAAI,CAAC,QAAQ,CAAC,iCAAiC,EAAE,IAAI,QAAQ,CAAC,eAAe,EAAE,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;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,CAAC;QAC3B,IAAI,QAAQ,GAAa,UAAU,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;QACxD,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,CAAC;YACX,IAAI,CAAC,QAAQ,CAAC,iCAAiC,EAAE,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC;gBAC5G,uGAAuG;YAC3G,CAAC;iBAAM,IAAI,CAAC,QAAQ,CAAC,iCAAiC,EAAE,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC;gBACpH,mDAAmD;YACvD,CAAC;iBAAM,CAAC;gBACJ,IAAI,mBAAmB,GAAW,sCAAsB,CAAC,WAAW,CAAC,QAAQ,CAAC,iCAAiC,EAAE,CAAW,CAAC;gBAC7H,IAAI,EAAE,GAAW,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;gBAExH,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;YACzB,CAAC;QACL,CAAC;IACL,CAAC;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"}
|
|
@@ -30,9 +30,9 @@ test('test the api.fintekkers.org security service by creating a maturity ladder
|
|
|
30
30
|
let issuance = issuanceList && issuanceList.length > 0 ? issuanceList[0] : null;
|
|
31
31
|
|
|
32
32
|
if (issuance) {
|
|
33
|
-
if (!issuance.getPostAuctionOutstandingQuantity() && security.getMaturityDate().getFullYear() > 2009) {
|
|
34
|
-
console.log("Issed with %s, issuance: %s", security.getSecurityID().getIdentifierValue(), issuance);
|
|
35
|
-
} else if (!issuance.getPostAuctionOutstandingQuantity() && security.getMaturityDate().getFullYear() <= 2009) {
|
|
33
|
+
if (!issuance.getPostAuctionOutstandingQuantity() && security.getMaturityDate().toDate().getFullYear() > 2009) {
|
|
34
|
+
// console.log("Issed with %s, issuance: %s", security.getSecurityID().getIdentifierValue(), issuance);
|
|
35
|
+
} else if (!issuance.getPostAuctionOutstandingQuantity() && security.getMaturityDate().toDate().getFullYear() <= 2009) {
|
|
36
36
|
//Swallow this data gap. It's old and we don't mind
|
|
37
37
|
} else {
|
|
38
38
|
let postAuctionQuantity: number = ProtoSerializationUtil.deserialize(issuance.getPostAuctionOutstandingQuantity()) as number;
|