@fintekkers/ledger-models 0.3.0 → 0.4.0
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/fintekkers/models/security/security_pb.d.ts +0 -80
- package/node/fintekkers/models/security/security_pb.js +1 -723
- package/node/fintekkers/models/security/security_pb.test.js +15 -15
- package/node/fintekkers/models/security/security_pb.test.js.map +1 -1
- package/node/fintekkers/models/security/security_pb.test.ts +17 -18
- package/node/wrappers/models/price/Price.cash.test.js +1 -1
- package/node/wrappers/models/price/Price.cash.test.js.map +1 -1
- package/node/wrappers/models/price/Price.cash.test.ts +2 -2
- package/node/wrappers/models/security/BondSecurity.js +8 -8
- package/node/wrappers/models/security/BondSecurity.js.map +1 -1
- package/node/wrappers/models/security/BondSecurity.priceScale.test.js +5 -3
- package/node/wrappers/models/security/BondSecurity.priceScale.test.js.map +1 -1
- package/node/wrappers/models/security/BondSecurity.priceScale.test.ts +7 -5
- package/node/wrappers/models/security/BondSecurity.test.js +28 -20
- package/node/wrappers/models/security/BondSecurity.test.js.map +1 -1
- package/node/wrappers/models/security/BondSecurity.test.ts +29 -21
- package/node/wrappers/models/security/BondSecurity.ts +8 -8
- package/node/wrappers/models/security/security-roundtrip.test.js +77 -61
- package/node/wrappers/models/security/security-roundtrip.test.js.map +1 -1
- package/node/wrappers/models/security/security-roundtrip.test.ts +78 -62
- package/node/wrappers/models/security/security.d.ts +2 -3
- package/node/wrappers/models/security/security.js +8 -10
- package/node/wrappers/models/security/security.js.map +1 -1
- package/node/wrappers/models/security/security.test.js +16 -12
- package/node/wrappers/models/security/security.test.js.map +1 -1
- package/node/wrappers/models/security/security.test.ts +17 -15
- package/node/wrappers/models/security/security.ts +8 -10
- package/node/wrappers/models/transaction/transaction.derived.test.js +8 -6
- package/node/wrappers/models/transaction/transaction.derived.test.js.map +1 -1
- package/node/wrappers/models/transaction/transaction.derived.test.ts +9 -7
- package/node/wrappers/models/transaction/transaction_constructor.test.js +8 -6
- package/node/wrappers/models/transaction/transaction_constructor.test.js.map +1 -1
- package/node/wrappers/models/transaction/transaction_constructor.test.ts +9 -7
- package/node/wrappers/models/utils/datetime.d.ts +14 -0
- package/node/wrappers/models/utils/datetime.js +20 -0
- package/node/wrappers/models/utils/datetime.js.map +1 -1
- package/node/wrappers/models/utils/datetime.test.js +38 -0
- package/node/wrappers/models/utils/datetime.test.js.map +1 -1
- package/node/wrappers/models/utils/datetime.test.ts +46 -0
- package/node/wrappers/models/utils/datetime.ts +22 -0
- package/node/wrappers/services/searchWithSecurities.test.js +2 -2
- package/node/wrappers/services/searchWithSecurities.test.js.map +1 -1
- package/node/wrappers/services/searchWithSecurities.test.ts +2 -2
- package/node/wrappers/services/security-service/security.maturityLadder.test.js +2 -1
- package/node/wrappers/services/security-service/security.maturityLadder.test.js.map +1 -1
- package/node/wrappers/services/security-service/security.maturityLadder.test.ts +2 -1
- package/node/wrappers/services/security-service/security.test.js +10 -8
- package/node/wrappers/services/security-service/security.test.js.map +1 -1
- package/node/wrappers/services/security-service/security.test.ts +12 -9
- package/node/wrappers/util/link-resolver.test.js +1 -1
- package/node/wrappers/util/link-resolver.test.js.map +1 -1
- package/node/wrappers/util/link-resolver.test.ts +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.js","sourceRoot":"","sources":["security.ts"],"names":[],"mappings":";;AAAA,2EAA0E;AAE1E,iFAAgF;AAGhF,gDAAkD;AAClD,wCAAqC;AACrC,wCAA0C;AAC1C,yFAAuF;AAEvF,MAAM,QAAQ;IAGZ,YAAY,KAAoB;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,MAAM,CAAC,IAAU,EAAE,IAAmB;QAC3C,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,kFAAkF,CAAC,CAAC;QAC/G,MAAM,KAAK,GAAG,IAAI,2BAAa,EAAE,CAAC;QAClC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,IAAU;QAC5B,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,IAAI,2BAAa,EAAE,CAAC;QAClC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtB,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,IAAU;QACpC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAEO,MAAM,CAAC,qBAAqB,CAAC,IAAmB;QACtD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED;;;OAGG;IACK,aAAa,CAAC,QAAgB;QACpC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE;YAC1B,MAAM,IAAI,KAAK,CACb,eAAe,QAAQ,2CAA2C;kBAChE,8CAA8C;kBAC9C,kCAAkC,CACrC,CAAC;SACH;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAoB;QAChC,QAAQ,KAAK,CAAC,cAAc,EAAE,EAAE;YAC9B,KAAK,kCAAgB,CAAC,aAAa,CAAC;YACpC,KAAK,kCAAgB,CAAC,IAAI,CAAC;YAC3B,KAAK,kCAAgB,CAAC,YAAY;gBAChC,2CAA2C;gBAC3C,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC;gBACvD,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;YACjC;gBACE,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM;QACJ,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,kCAAgB,CAAC,aAAa;eACpC,CAAC,KAAK,kCAAgB,CAAC,IAAI;eAC3B,CAAC,KAAK,kCAAgB,CAAC,YAAY,CAAC;IAC7C,CAAC;IAGD,QAAQ;QACN,OAAO,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC;IAC5F,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,aAAa,EAAE,CAAC;YAC9B,KAAK,qBAAU,CAAC,aAAa;gBAC3B,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YAChC,KAAK,qBAAU,CAAC,YAAY;gBAC1B,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;YAC/B,KAAK,qBAAU,CAAC,UAAU;gBACxB,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9B,KAAK,qBAAU,CAAC,KAAK,CAAC;YACtB,KAAK,qBAAU,CAAC,cAAc;gBAC5B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACzC,KAAK,qBAAU,CAAC,aAAa;gBAC3B,+DAA+D;gBAC/D,uDAAuD;gBACvD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACvD,KAAK,qBAAU,CAAC,UAAU;gBACxB,gEAAgE;gBAChE,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7B;gBACE,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,EAAE,CAAC,CAAC;SACrE;IACH,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;;;;OAIG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,OAAO;QACL,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,IAAI,wBAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,aAAa;QACX,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;IACpC,CAAC;IAED,eAAe;QACb,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;IAChF,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QACjD,MAAM,kBAAkB,GAAI,MAAM,CAAC,IAAI,CAAC,kCAAgB,CAA0C,CAAC,IAAI,CACrG,GAAG,CAAC,EAAE,CAAC,kCAAgB,CAAC,GAAG,CAAC,KAAK,YAAY,CAC9C,CAAC;QAEF,OAAO,kBAAkB,IAAI,uBAAuB,CAAC;IACvD,CAAC;IAED,aAAa;QACX,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACjC,MAAM,
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["security.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,34 +64,38 @@ test('BondSecurity.getMaturityDate works on bond (inherited from Security)', ()
|
|
|
64
64
|
expect(bond.getMaturityDate().toDate().getFullYear()).toBe(2026);
|
|
65
65
|
});
|
|
66
66
|
function dummySecurity() {
|
|
67
|
+
const bond = new security_pb_1.BondDetailsProto()
|
|
68
|
+
.setCouponRate(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue('0.05'))
|
|
69
|
+
.setCouponFrequency(coupon_frequency_pb_1.CouponFrequencyProto.SEMIANNUALLY)
|
|
70
|
+
.setCouponType(coupon_type_pb_1.CouponTypeProto.FIXED)
|
|
71
|
+
.setFaceValue(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue('1000.00'))
|
|
72
|
+
.setMaturityDate(new local_date_pb_1.LocalDateProto().setYear(2026).setMonth(1).setDay(1))
|
|
73
|
+
.setIssueDate(new local_date_pb_1.LocalDateProto().setYear(2021).setMonth(1).setDay(1));
|
|
67
74
|
return security_1.default.create(new security_pb_1.SecurityProto()
|
|
68
75
|
.setObjectClass('Transaction').setVersion('0.0.1').setUuid(uuid_1.UUID.random().toUUIDProto())
|
|
69
|
-
.setFaceValue(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue('1000.00'))
|
|
70
76
|
.setQuantityType(security_quantity_type_pb_1.SecurityQuantityTypeProto.ORIGINAL_FACE_VALUE)
|
|
71
77
|
.setAssetClass("Bond")
|
|
72
78
|
.setIssuerName("Dummy issuer")
|
|
73
|
-
.
|
|
74
|
-
.setCouponFrequency(coupon_frequency_pb_1.CouponFrequencyProto.SEMIANNUALLY)
|
|
75
|
-
.setCouponType(coupon_type_pb_1.CouponTypeProto.FIXED)
|
|
76
|
-
.setMaturityDate(new local_date_pb_1.LocalDateProto().setYear(2026).setMonth(1).setDay(1))
|
|
77
|
-
.setIssueDate(new local_date_pb_1.LocalDateProto().setYear(2021).setMonth(1).setDay(1))
|
|
79
|
+
.setBondDetails(bond)
|
|
78
80
|
.setDescription("Dummy security"));
|
|
79
81
|
}
|
|
80
82
|
function dummyBondSecurity() {
|
|
81
83
|
// Same dummy security but with securityType set so the factory routes
|
|
82
84
|
// to BondSecurity.
|
|
85
|
+
const bond = new security_pb_1.BondDetailsProto()
|
|
86
|
+
.setCouponRate(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue('0.05'))
|
|
87
|
+
.setCouponFrequency(coupon_frequency_pb_1.CouponFrequencyProto.SEMIANNUALLY)
|
|
88
|
+
.setCouponType(coupon_type_pb_1.CouponTypeProto.FIXED)
|
|
89
|
+
.setFaceValue(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue('1000.00'))
|
|
90
|
+
.setMaturityDate(new local_date_pb_1.LocalDateProto().setYear(2026).setMonth(1).setDay(1))
|
|
91
|
+
.setIssueDate(new local_date_pb_1.LocalDateProto().setYear(2021).setMonth(1).setDay(1));
|
|
83
92
|
return security_1.default.create(new security_pb_1.SecurityProto()
|
|
84
93
|
.setObjectClass('Security').setVersion('0.0.1').setUuid(uuid_1.UUID.random().toUUIDProto())
|
|
85
94
|
.setProductType(product_type_pb_1.ProductTypeProto.TREASURY_NOTE)
|
|
86
|
-
.setFaceValue(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue('1000.00'))
|
|
87
95
|
.setQuantityType(security_quantity_type_pb_1.SecurityQuantityTypeProto.ORIGINAL_FACE_VALUE)
|
|
88
96
|
.setAssetClass("Bond")
|
|
89
97
|
.setIssuerName("Dummy issuer")
|
|
90
|
-
.
|
|
91
|
-
.setCouponFrequency(coupon_frequency_pb_1.CouponFrequencyProto.SEMIANNUALLY)
|
|
92
|
-
.setCouponType(coupon_type_pb_1.CouponTypeProto.FIXED)
|
|
93
|
-
.setMaturityDate(new local_date_pb_1.LocalDateProto().setYear(2026).setMonth(1).setDay(1))
|
|
94
|
-
.setIssueDate(new local_date_pb_1.LocalDateProto().setYear(2021).setMonth(1).setDay(1))
|
|
98
|
+
.setBondDetails(bond)
|
|
95
99
|
.setDescription("Dummy bond"));
|
|
96
100
|
}
|
|
97
101
|
function dummyEquity() {
|
|
@@ -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;AAClC,kEAA0C;AAE1C,uFAAqF;AACrF,
|
|
1
|
+
{"version":3,"file":"security.test.js","sourceRoot":"","sources":["security.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import Security from './security';
|
|
|
6
6
|
import BondSecurity from './BondSecurity';
|
|
7
7
|
|
|
8
8
|
import { DecimalValueProto } from '../../../fintekkers/models/util/decimal_value_pb';
|
|
9
|
-
import { SecurityProto } from '../../../fintekkers/models/security/security_pb';
|
|
9
|
+
import { SecurityProto, BondDetailsProto } from '../../../fintekkers/models/security/security_pb';
|
|
10
10
|
import { ProductTypeProto } from "../../../fintekkers/models/security/product_type_pb";
|
|
11
11
|
import { CouponFrequencyProto } from '../../../fintekkers/models/security/coupon_frequency_pb';
|
|
12
12
|
import { CouponTypeProto } from '../../../fintekkers/models/security/coupon_type_pb';
|
|
@@ -70,19 +70,19 @@ test('BondSecurity.getMaturityDate works on bond (inherited from Security)', ()
|
|
|
70
70
|
});
|
|
71
71
|
|
|
72
72
|
function dummySecurity() {
|
|
73
|
+
const bond = new BondDetailsProto()
|
|
74
|
+
.setCouponRate(new DecimalValueProto().setArbitraryPrecisionValue('0.05'))
|
|
75
|
+
.setCouponFrequency(CouponFrequencyProto.SEMIANNUALLY)
|
|
76
|
+
.setCouponType(CouponTypeProto.FIXED)
|
|
77
|
+
.setFaceValue(new DecimalValueProto().setArbitraryPrecisionValue('1000.00'))
|
|
78
|
+
.setMaturityDate(new LocalDateProto().setYear(2026).setMonth(1).setDay(1))
|
|
79
|
+
.setIssueDate(new LocalDateProto().setYear(2021).setMonth(1).setDay(1));
|
|
73
80
|
return Security.create(new SecurityProto()
|
|
74
81
|
.setObjectClass('Transaction').setVersion('0.0.1').setUuid(UUID.random().toUUIDProto())
|
|
75
|
-
.setFaceValue(new DecimalValueProto().setArbitraryPrecisionValue('1000.00'))
|
|
76
82
|
.setQuantityType(SecurityQuantityTypeProto.ORIGINAL_FACE_VALUE)
|
|
77
83
|
.setAssetClass("Bond")
|
|
78
84
|
.setIssuerName("Dummy issuer")
|
|
79
|
-
|
|
80
|
-
.setCouponRate(new DecimalValueProto().setArbitraryPrecisionValue('0.05'))
|
|
81
|
-
.setCouponFrequency(CouponFrequencyProto.SEMIANNUALLY)
|
|
82
|
-
.setCouponType(CouponTypeProto.FIXED)
|
|
83
|
-
|
|
84
|
-
.setMaturityDate(new LocalDateProto().setYear(2026).setMonth(1).setDay(1))
|
|
85
|
-
.setIssueDate(new LocalDateProto().setYear(2021).setMonth(1).setDay(1))
|
|
85
|
+
.setBondDetails(bond)
|
|
86
86
|
.setDescription("Dummy security")
|
|
87
87
|
);
|
|
88
88
|
}
|
|
@@ -90,18 +90,20 @@ function dummySecurity() {
|
|
|
90
90
|
function dummyBondSecurity() {
|
|
91
91
|
// Same dummy security but with securityType set so the factory routes
|
|
92
92
|
// to BondSecurity.
|
|
93
|
+
const bond = new BondDetailsProto()
|
|
94
|
+
.setCouponRate(new DecimalValueProto().setArbitraryPrecisionValue('0.05'))
|
|
95
|
+
.setCouponFrequency(CouponFrequencyProto.SEMIANNUALLY)
|
|
96
|
+
.setCouponType(CouponTypeProto.FIXED)
|
|
97
|
+
.setFaceValue(new DecimalValueProto().setArbitraryPrecisionValue('1000.00'))
|
|
98
|
+
.setMaturityDate(new LocalDateProto().setYear(2026).setMonth(1).setDay(1))
|
|
99
|
+
.setIssueDate(new LocalDateProto().setYear(2021).setMonth(1).setDay(1));
|
|
93
100
|
return Security.create(new SecurityProto()
|
|
94
101
|
.setObjectClass('Security').setVersion('0.0.1').setUuid(UUID.random().toUUIDProto())
|
|
95
102
|
.setProductType(ProductTypeProto.TREASURY_NOTE)
|
|
96
|
-
.setFaceValue(new DecimalValueProto().setArbitraryPrecisionValue('1000.00'))
|
|
97
103
|
.setQuantityType(SecurityQuantityTypeProto.ORIGINAL_FACE_VALUE)
|
|
98
104
|
.setAssetClass("Bond")
|
|
99
105
|
.setIssuerName("Dummy issuer")
|
|
100
|
-
.
|
|
101
|
-
.setCouponFrequency(CouponFrequencyProto.SEMIANNUALLY)
|
|
102
|
-
.setCouponType(CouponTypeProto.FIXED)
|
|
103
|
-
.setMaturityDate(new LocalDateProto().setYear(2026).setMonth(1).setDay(1))
|
|
104
|
-
.setIssueDate(new LocalDateProto().setYear(2021).setMonth(1).setDay(1))
|
|
106
|
+
.setBondDetails(bond)
|
|
105
107
|
.setDescription("Dummy bond")
|
|
106
108
|
);
|
|
107
109
|
}
|
|
@@ -187,10 +187,11 @@ class Security {
|
|
|
187
187
|
}
|
|
188
188
|
|
|
189
189
|
getSecurityID(): IdentifierProto {
|
|
190
|
+
// Primary identifier lives at identifiers[0] (tag 42).
|
|
190
191
|
this.assertNotLink('securityId');
|
|
191
|
-
const
|
|
192
|
-
if (!
|
|
193
|
-
return
|
|
192
|
+
const list = this.proto.getIdentifiersList();
|
|
193
|
+
if (!list || list.length === 0) throw new Error("Identifier is required");
|
|
194
|
+
return list[0];
|
|
194
195
|
}
|
|
195
196
|
|
|
196
197
|
/**
|
|
@@ -207,9 +208,8 @@ class Security {
|
|
|
207
208
|
*/
|
|
208
209
|
getIssueDate(): LocalDate | null {
|
|
209
210
|
this.assertNotLink('issueDate');
|
|
210
|
-
// Prefer oneof bond sub-message if available, fall back to flat fields
|
|
211
211
|
const bond = this.getBondLikeDetails();
|
|
212
|
-
const date = bond ? bond.getIssueDate() :
|
|
212
|
+
const date = bond ? bond.getIssueDate() : undefined;
|
|
213
213
|
if (!date) return null;
|
|
214
214
|
return new LocalDate(date);
|
|
215
215
|
}
|
|
@@ -226,18 +226,16 @@ class Security {
|
|
|
226
226
|
*/
|
|
227
227
|
getMaturityDate(): LocalDate {
|
|
228
228
|
this.assertNotLink('maturityDate');
|
|
229
|
-
// Prefer oneof bond sub-message if available, fall back to flat fields
|
|
230
229
|
const bond = this.getBondLikeDetails();
|
|
231
|
-
const date = bond ? bond.getMaturityDate() :
|
|
230
|
+
const date = bond ? bond.getMaturityDate() : undefined;
|
|
232
231
|
if (!date) throw new Error("Maturity date is required");
|
|
233
232
|
return new LocalDate(date);
|
|
234
233
|
}
|
|
235
234
|
|
|
236
235
|
/**
|
|
237
236
|
* Returns the canonical bond_details sub-message if set, else undefined.
|
|
238
|
-
*
|
|
239
|
-
*
|
|
240
|
-
* tips_extension / frn_extension fields.
|
|
237
|
+
* TIPS and FRN extras live in their own tips_extension / frn_extension
|
|
238
|
+
* fields and co-exist with bond_details.
|
|
241
239
|
*/
|
|
242
240
|
protected getBondLikeDetails(): any | undefined {
|
|
243
241
|
if (typeof this.proto.getBondDetails !== 'function') return undefined;
|
|
@@ -136,20 +136,22 @@ function createBondTransaction(transactionType) {
|
|
|
136
136
|
});
|
|
137
137
|
}
|
|
138
138
|
function createBondSecurity() {
|
|
139
|
+
const bond = new security_pb_1.BondDetailsProto()
|
|
140
|
+
.setFaceValue(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue('1000.00'))
|
|
141
|
+
.setCouponRate(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue('0.05'))
|
|
142
|
+
.setCouponFrequency(coupon_frequency_pb_1.CouponFrequencyProto.SEMIANNUALLY)
|
|
143
|
+
.setCouponType(coupon_type_pb_1.CouponTypeProto.FIXED)
|
|
144
|
+
.setMaturityDate(new local_date_pb_1.LocalDateProto().setYear(2034).setMonth(1).setDay(1))
|
|
145
|
+
.setIssueDate(new local_date_pb_1.LocalDateProto().setYear(2024).setMonth(1).setDay(1));
|
|
139
146
|
return security_1.default.create(new security_pb_1.SecurityProto()
|
|
140
147
|
.setObjectClass('Security')
|
|
141
148
|
.setVersion('0.0.1')
|
|
142
149
|
.setUuid(uuid_1.UUID.random().toUUIDProto())
|
|
143
150
|
.setProductType(product_type_pb_1.ProductTypeProto.TREASURY_NOTE)
|
|
144
|
-
.setFaceValue(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue('1000.00'))
|
|
145
151
|
.setQuantityType(security_quantity_type_pb_1.SecurityQuantityTypeProto.ORIGINAL_FACE_VALUE)
|
|
146
152
|
.setAssetClass('FixedIncome')
|
|
147
153
|
.setIssuerName('Test Issuer')
|
|
148
|
-
.
|
|
149
|
-
.setCouponFrequency(coupon_frequency_pb_1.CouponFrequencyProto.SEMIANNUALLY)
|
|
150
|
-
.setCouponType(coupon_type_pb_1.CouponTypeProto.FIXED)
|
|
151
|
-
.setMaturityDate(new local_date_pb_1.LocalDateProto().setYear(2034).setMonth(1).setDay(1))
|
|
152
|
-
.setIssueDate(new local_date_pb_1.LocalDateProto().setYear(2024).setMonth(1).setDay(1))
|
|
154
|
+
.setBondDetails(bond)
|
|
153
155
|
.setAsOf(datetime_1.ZonedDateTime.now().toProto())
|
|
154
156
|
.setDescription('Test bond security'));
|
|
155
157
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.derived.test.js","sourceRoot":"","sources":["transaction.derived.test.ts"],"names":[],"mappings":";;;;;AAAA,iCAAkC;AAClC,gEAAwC;AACxC,yDAAqD;AACrD,oGAAkG;AAElG,oEAA4C;AAE5C,
|
|
1
|
+
{"version":3,"file":"transaction.derived.test.js","sourceRoot":"","sources":["transaction.derived.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { TransactionTypeProto } from '../../../fintekkers/models/transaction/tra
|
|
|
5
5
|
import { PositionStatusProto } from '../../../fintekkers/models/position/position_status_pb';
|
|
6
6
|
import Security from '../security/security';
|
|
7
7
|
import Portfolio from '../portfolio/portfolio';
|
|
8
|
-
import { SecurityProto } from '../../../fintekkers/models/security/security_pb';
|
|
8
|
+
import { SecurityProto, BondDetailsProto } from '../../../fintekkers/models/security/security_pb';
|
|
9
9
|
import { ProductTypeProto } from "../../../fintekkers/models/security/product_type_pb";
|
|
10
10
|
import { LocalDateProto } from '../../../fintekkers/models/util/local_date_pb';
|
|
11
11
|
import { DecimalValueProto } from '../../../fintekkers/models/util/decimal_value_pb';
|
|
@@ -181,20 +181,22 @@ function createBondTransaction(transactionType: TransactionTypeProto): Transacti
|
|
|
181
181
|
}
|
|
182
182
|
|
|
183
183
|
function createBondSecurity(): Security {
|
|
184
|
+
const bond = new BondDetailsProto()
|
|
185
|
+
.setFaceValue(new DecimalValueProto().setArbitraryPrecisionValue('1000.00'))
|
|
186
|
+
.setCouponRate(new DecimalValueProto().setArbitraryPrecisionValue('0.05'))
|
|
187
|
+
.setCouponFrequency(CouponFrequencyProto.SEMIANNUALLY)
|
|
188
|
+
.setCouponType(CouponTypeProto.FIXED)
|
|
189
|
+
.setMaturityDate(new LocalDateProto().setYear(2034).setMonth(1).setDay(1))
|
|
190
|
+
.setIssueDate(new LocalDateProto().setYear(2024).setMonth(1).setDay(1));
|
|
184
191
|
return Security.create(new SecurityProto()
|
|
185
192
|
.setObjectClass('Security')
|
|
186
193
|
.setVersion('0.0.1')
|
|
187
194
|
.setUuid(UUID.random().toUUIDProto())
|
|
188
195
|
.setProductType(ProductTypeProto.TREASURY_NOTE)
|
|
189
|
-
.setFaceValue(new DecimalValueProto().setArbitraryPrecisionValue('1000.00'))
|
|
190
196
|
.setQuantityType(SecurityQuantityTypeProto.ORIGINAL_FACE_VALUE)
|
|
191
197
|
.setAssetClass('FixedIncome')
|
|
192
198
|
.setIssuerName('Test Issuer')
|
|
193
|
-
.
|
|
194
|
-
.setCouponFrequency(CouponFrequencyProto.SEMIANNUALLY)
|
|
195
|
-
.setCouponType(CouponTypeProto.FIXED)
|
|
196
|
-
.setMaturityDate(new LocalDateProto().setYear(2034).setMonth(1).setDay(1))
|
|
197
|
-
.setIssueDate(new LocalDateProto().setYear(2024).setMonth(1).setDay(1))
|
|
199
|
+
.setBondDetails(bond)
|
|
198
200
|
.setAsOf(ZonedDateTime.now().toProto())
|
|
199
201
|
.setDescription('Test bond security')
|
|
200
202
|
);
|
|
@@ -79,19 +79,21 @@ function testTransactionConstructor() {
|
|
|
79
79
|
assert(transaction.getPositionStatus() === position_status_pb_1.PositionStatusProto.EXECUTED, `Expected EXECUTED, got ${transaction.getPositionStatus()}`);
|
|
80
80
|
}
|
|
81
81
|
function dummySecurity() {
|
|
82
|
+
const bond = new security_pb_1.BondDetailsProto()
|
|
83
|
+
.setFaceValue(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue('1000.00'))
|
|
84
|
+
.setCouponRate(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue('0.05'))
|
|
85
|
+
.setCouponFrequency(coupon_frequency_pb_1.CouponFrequencyProto.SEMIANNUALLY)
|
|
86
|
+
.setCouponType(coupon_type_pb_1.CouponTypeProto.FIXED)
|
|
87
|
+
.setMaturityDate(new local_date_pb_1.LocalDateProto().setYear(2026).setMonth(1).setDay(1))
|
|
88
|
+
.setIssueDate(new local_date_pb_1.LocalDateProto().setYear(2021).setMonth(1).setDay(1));
|
|
82
89
|
return security_1.default.create(new security_pb_1.SecurityProto()
|
|
83
90
|
.setObjectClass('Security')
|
|
84
91
|
.setVersion('0.0.1')
|
|
85
92
|
.setUuid(uuid_1.UUID.random().toUUIDProto())
|
|
86
|
-
.setFaceValue(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue('1000.00'))
|
|
87
93
|
.setQuantityType(security_quantity_type_pb_1.SecurityQuantityTypeProto.ORIGINAL_FACE_VALUE)
|
|
88
94
|
.setAssetClass("Bond")
|
|
89
95
|
.setIssuerName("Test Issuer")
|
|
90
|
-
.
|
|
91
|
-
.setCouponFrequency(coupon_frequency_pb_1.CouponFrequencyProto.SEMIANNUALLY)
|
|
92
|
-
.setCouponType(coupon_type_pb_1.CouponTypeProto.FIXED)
|
|
93
|
-
.setMaturityDate(new local_date_pb_1.LocalDateProto().setYear(2026).setMonth(1).setDay(1))
|
|
94
|
-
.setIssueDate(new local_date_pb_1.LocalDateProto().setYear(2021).setMonth(1).setDay(1))
|
|
96
|
+
.setBondDetails(bond)
|
|
95
97
|
.setDescription("Test security"));
|
|
96
98
|
}
|
|
97
99
|
function dummyTransactionType() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction_constructor.test.js","sourceRoot":"","sources":["transaction_constructor.test.ts"],"names":[],"mappings":";;;;;AAAA,iCAAkC;AAClC,gEAAwC;AACxC,yDAAqD;AACrD,oGAAkG;AAClG,+FAA6F;AAC7F,oEAA4C;AAE5C,
|
|
1
|
+
{"version":3,"file":"transaction_constructor.test.js","sourceRoot":"","sources":["transaction_constructor.test.ts"],"names":[],"mappings":";;;;;AAAA,iCAAkC;AAClC,gEAAwC;AACxC,yDAAqD;AACrD,oGAAkG;AAClG,+FAA6F;AAC7F,oEAA4C;AAE5C,iFAAkG;AAClG,iFAA+E;AAC/E,uFAAqF;AACrF,6GAA0G;AAC1G,iGAA+F;AAC/F,uFAAqF;AACrF,wCAAqC;AAErC,2CAAqC;AACrC,gEAA6D;AAE7D,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;IACtD,0BAA0B,EAAE,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,SAAS,0BAA0B;;IAC/B,mBAAmB;IACnB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,IAAI,oBAAO,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,oBAAO,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAA,+BAAc,GAAE,CAAC;IACnC,MAAM,eAAe,GAAG,oBAAoB,EAAE,CAAC;IAE/C,uDAAuD;IACvD,MAAM,WAAW,GAAG,IAAI,qBAAW,CAAC;QAChC,SAAS;QACT,cAAc;QACd,QAAQ;QACR,KAAK;QACL,QAAQ;QACR,eAAe;QACf,SAAS;QACT,QAAQ;KACX,CAAC,CAAC;IAEH,4CAA4C;IAE5C,gDAAgD;IAChD,MAAM,wBAAwB,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,CAAC;IACrE,MAAM,CAAC,wBAAwB,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3E,MAAM,CAAC,wBAAwB,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrE,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAEnE,0DAA0D;IAC1D,MAAM,6BAA6B,GAAG,WAAW,CAAC,iBAAiB,EAAE,CAAC,MAAM,EAAE,CAAC;IAC/E,MAAM,CAAC,6BAA6B,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC;IACrF,MAAM,CAAC,6BAA6B,CAAC,QAAQ,EAAE,KAAK,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/E,MAAM,CAAC,6BAA6B,CAAC,OAAO,EAAE,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;IAE7E,uEAAuE;IACvE,MAAM,mBAAmB,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;IAClD,MAAM,YAAY,GAAG,mBAAmB,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;IACjE,mDAAmD;IACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACvE,MAAM,CAAC,QAAQ,GAAG,IAAI,EAAE,wBAAwB,QAAQ,+BAA+B,CAAC,CAAC;IAEzF,iEAAiE;IACjE,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,MAAA,UAAU,CAAC,QAAQ,EAAE,0CAAE,0BAA0B,EAAE,CAAC;IACvE,MAAM,CAAC,UAAU,KAAK,OAAO,EAAE,gCAAgC,UAAU,GAAG,CAAC,CAAC;IAE9E,iEAAiE;IACjE,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,2BAA2B,CAAC,CAAC;IAElH,sFAAsF;IACtF,MAAM,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE,wBAAwB,WAAW,CAAC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtI,MAAM,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC,KAAK,KAAK,0CAAoB,CAAC,GAAG,EAAE,qCAAqC,CAAC,CAAC;IAEnH,oEAAoE;IACpE,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,mCAAmC,WAAW,CAAC,YAAY,EAAE,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAChK,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,SAAS,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,4BAA4B,CAAC,CAAC;IAErH,gEAAgE;IAChE,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE,kCAAkC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACnI,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,4BAA4B,CAAC,CAAC;IAEjF,yDAAyD;IACzD,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE,KAAK,wCAAmB,CAAC,QAAQ,EAAE,0BAA0B,WAAW,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;AAC1I,CAAC;AAED,SAAS,aAAa;IAClB,MAAM,IAAI,GAAG,IAAI,8BAAgB,EAAE;SAC9B,YAAY,CAAC,IAAI,oCAAiB,EAAE,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC;SAC3E,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;SACpC,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,CAAC;IAC5E,OAAO,kBAAQ,CAAC,MAAM,CAAC,IAAI,2BAAa,EAAE;SACrC,cAAc,CAAC,UAAU,CAAC;SAC1B,UAAU,CAAC,OAAO,CAAC;SACnB,OAAO,CAAC,WAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;SACpC,eAAe,CAAC,qDAAyB,CAAC,mBAAmB,CAAC;SAC9D,aAAa,CAAC,MAAM,CAAC;SACrB,aAAa,CAAC,aAAa,CAAC;SAC5B,cAAc,CAAC,IAAI,CAAC;SACpB,cAAc,CAAC,eAAe,CAAC,CACnC,CAAC;AACN,CAAC;AAED,SAAS,oBAAoB;IACzB,OAAO,IAAI,kCAAe,CAAC,0CAAoB,CAAC,GAAG,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -5,7 +5,7 @@ import { TransactionTypeProto } from '../../../fintekkers/models/transaction/tra
|
|
|
5
5
|
import { PositionStatusProto } from '../../../fintekkers/models/position/position_status_pb';
|
|
6
6
|
import Security from '../security/security';
|
|
7
7
|
import Portfolio from '../portfolio/portfolio';
|
|
8
|
-
import { SecurityProto } from '../../../fintekkers/models/security/security_pb';
|
|
8
|
+
import { SecurityProto, BondDetailsProto } from '../../../fintekkers/models/security/security_pb';
|
|
9
9
|
import { LocalDateProto } from '../../../fintekkers/models/util/local_date_pb';
|
|
10
10
|
import { DecimalValueProto } from '../../../fintekkers/models/util/decimal_value_pb';
|
|
11
11
|
import { SecurityQuantityTypeProto } from '../../../fintekkers/models/security/security_quantity_type_pb';
|
|
@@ -89,19 +89,21 @@ function testTransactionConstructor(): void {
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
function dummySecurity(): Security {
|
|
92
|
+
const bond = new BondDetailsProto()
|
|
93
|
+
.setFaceValue(new DecimalValueProto().setArbitraryPrecisionValue('1000.00'))
|
|
94
|
+
.setCouponRate(new DecimalValueProto().setArbitraryPrecisionValue('0.05'))
|
|
95
|
+
.setCouponFrequency(CouponFrequencyProto.SEMIANNUALLY)
|
|
96
|
+
.setCouponType(CouponTypeProto.FIXED)
|
|
97
|
+
.setMaturityDate(new LocalDateProto().setYear(2026).setMonth(1).setDay(1))
|
|
98
|
+
.setIssueDate(new LocalDateProto().setYear(2021).setMonth(1).setDay(1));
|
|
92
99
|
return Security.create(new SecurityProto()
|
|
93
100
|
.setObjectClass('Security')
|
|
94
101
|
.setVersion('0.0.1')
|
|
95
102
|
.setUuid(UUID.random().toUUIDProto())
|
|
96
|
-
.setFaceValue(new DecimalValueProto().setArbitraryPrecisionValue('1000.00'))
|
|
97
103
|
.setQuantityType(SecurityQuantityTypeProto.ORIGINAL_FACE_VALUE)
|
|
98
104
|
.setAssetClass("Bond")
|
|
99
105
|
.setIssuerName("Test Issuer")
|
|
100
|
-
.
|
|
101
|
-
.setCouponFrequency(CouponFrequencyProto.SEMIANNUALLY)
|
|
102
|
-
.setCouponType(CouponTypeProto.FIXED)
|
|
103
|
-
.setMaturityDate(new LocalDateProto().setYear(2026).setMonth(1).setDay(1))
|
|
104
|
-
.setIssueDate(new LocalDateProto().setYear(2021).setMonth(1).setDay(1))
|
|
106
|
+
.setBondDetails(bond)
|
|
105
107
|
.setDescription("Test security")
|
|
106
108
|
);
|
|
107
109
|
}
|
|
@@ -2,6 +2,20 @@ import { LocalTimestampProto } from '../../../fintekkers/models/util/local_times
|
|
|
2
2
|
import { DateTime } from 'luxon';
|
|
3
3
|
declare class ZonedDateTime {
|
|
4
4
|
private proto;
|
|
5
|
+
/**
|
|
6
|
+
* Wraps a LocalTimestampProto.
|
|
7
|
+
*
|
|
8
|
+
* Throws if `time_zone` is empty/whitespace — luxon's DateTime would
|
|
9
|
+
* otherwise silently produce an invalid DateTime (isValid=false,
|
|
10
|
+
* year=NaN), which propagates as silent corruption rather than a clear
|
|
11
|
+
* failure. See second-brain#276 for the original report from
|
|
12
|
+
* backend-dev-ledger during #268 verification.
|
|
13
|
+
*
|
|
14
|
+
* Callers with optional/unset timestamps should gate
|
|
15
|
+
* `new ZonedDateTime(parent.getAsOf())` with a `parent.hasAsOf()`
|
|
16
|
+
* check at the call site rather than relying on the constructor to
|
|
17
|
+
* substitute a default.
|
|
18
|
+
*/
|
|
5
19
|
constructor(proto: LocalTimestampProto);
|
|
6
20
|
getTimezone(): string;
|
|
7
21
|
getSeconds(): number;
|
|
@@ -5,7 +5,27 @@ const local_timestamp_pb_1 = require("../../../fintekkers/models/util/local_time
|
|
|
5
5
|
const timestamp_pb_1 = require("google-protobuf/google/protobuf/timestamp_pb");
|
|
6
6
|
const luxon_1 = require("luxon");
|
|
7
7
|
class ZonedDateTime {
|
|
8
|
+
/**
|
|
9
|
+
* Wraps a LocalTimestampProto.
|
|
10
|
+
*
|
|
11
|
+
* Throws if `time_zone` is empty/whitespace — luxon's DateTime would
|
|
12
|
+
* otherwise silently produce an invalid DateTime (isValid=false,
|
|
13
|
+
* year=NaN), which propagates as silent corruption rather than a clear
|
|
14
|
+
* failure. See second-brain#276 for the original report from
|
|
15
|
+
* backend-dev-ledger during #268 verification.
|
|
16
|
+
*
|
|
17
|
+
* Callers with optional/unset timestamps should gate
|
|
18
|
+
* `new ZonedDateTime(parent.getAsOf())` with a `parent.hasAsOf()`
|
|
19
|
+
* check at the call site rather than relying on the constructor to
|
|
20
|
+
* substitute a default.
|
|
21
|
+
*/
|
|
8
22
|
constructor(proto) {
|
|
23
|
+
const tz = proto.getTimeZone();
|
|
24
|
+
if (!tz || tz.trim().length === 0) {
|
|
25
|
+
throw new Error("LocalTimestampProto.time_zone is required but was empty. "
|
|
26
|
+
+ "Producers must set time_zone (e.g. \"UTC\" or \"America/New_York\") "
|
|
27
|
+
+ "when populating LocalTimestampProto. See second-brain#276.");
|
|
28
|
+
}
|
|
9
29
|
this.proto = proto;
|
|
10
30
|
}
|
|
11
31
|
getTimezone() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime.js","sourceRoot":"","sources":["datetime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"datetime.js","sourceRoot":"","sources":["datetime.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,4 +50,42 @@ test('test the date time', () => __awaiter(void 0, void 0, void 0, function* ()
|
|
|
50
50
|
//Expect timestamp match
|
|
51
51
|
expect(timestampStr).toMatch(/^[0-9]{4}\/[0-9]{2}\/[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$/);
|
|
52
52
|
}));
|
|
53
|
+
// second-brain#276 — lock in that the ZonedDateTime constructor throws on
|
|
54
|
+
// empty time_zone. Pre-fix: luxon's DateTime silently produced
|
|
55
|
+
// isValid=false / year=NaN, indistinguishable from a real value at most
|
|
56
|
+
// call sites until much later. Now: loud failure at construction.
|
|
57
|
+
describe('ZonedDateTime constructor — second-brain#276', () => {
|
|
58
|
+
test('throws when time_zone is empty (proto3 default)', () => {
|
|
59
|
+
const proto = new local_timestamp_pb_1.LocalTimestampProto();
|
|
60
|
+
const ts = new timestamp_pb_js_1.Timestamp();
|
|
61
|
+
ts.setSeconds(1700000000);
|
|
62
|
+
proto.setTimestamp(ts);
|
|
63
|
+
// time_zone left at the proto3 default ""
|
|
64
|
+
expect(() => new datetime_1.ZonedDateTime(proto)).toThrow(/time_zone is required/);
|
|
65
|
+
});
|
|
66
|
+
test('throws when time_zone is whitespace-only', () => {
|
|
67
|
+
const proto = new local_timestamp_pb_1.LocalTimestampProto();
|
|
68
|
+
const ts = new timestamp_pb_js_1.Timestamp();
|
|
69
|
+
ts.setSeconds(1700000000);
|
|
70
|
+
proto.setTimestamp(ts);
|
|
71
|
+
proto.setTimeZone(' ');
|
|
72
|
+
expect(() => new datetime_1.ZonedDateTime(proto)).toThrow(/time_zone is required/);
|
|
73
|
+
});
|
|
74
|
+
test('throws on fully-default LocalTimestampProto', () => {
|
|
75
|
+
// No timestamp, no time_zone — wholly default instance.
|
|
76
|
+
expect(() => new datetime_1.ZonedDateTime(new local_timestamp_pb_1.LocalTimestampProto()))
|
|
77
|
+
.toThrow(/time_zone is required/);
|
|
78
|
+
});
|
|
79
|
+
test('happy path with UTC still constructs successfully', () => {
|
|
80
|
+
const proto = new local_timestamp_pb_1.LocalTimestampProto();
|
|
81
|
+
const ts = new timestamp_pb_js_1.Timestamp();
|
|
82
|
+
ts.setSeconds(1700000000);
|
|
83
|
+
proto.setTimestamp(ts);
|
|
84
|
+
proto.setTimeZone('UTC');
|
|
85
|
+
const zdt = new datetime_1.ZonedDateTime(proto);
|
|
86
|
+
const dt = zdt.toDateTime();
|
|
87
|
+
expect(dt.isValid).toBe(true);
|
|
88
|
+
expect(dt.year).toBe(2023);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
53
91
|
//# sourceMappingURL=datetime.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"datetime.test.js","sourceRoot":"","sources":["datetime.test.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,2EAA0E;AAC1E,iFAAsH;AACtH,2FAAqF;AACrF,mDAAgD;AAChD,yCAA2C;AAC3C,mEAA6D;AAC7D,2FAAuF;AACvF,qFAA4E;AAC5E,wEAAwE;AAExE,IAAI,CAAC,oBAAoB,EAAE,GAAS,EAAE;IAClC,MAAM,mBAAmB,GAAG,IAAI,wCAAmB,EAAE,CAAC;IACtD,MAAM,SAAS,GAAG,IAAI,2BAAS,EAAE,CAAC;IAClC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,kBAAkB;IACpD,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB;IAC7C,mBAAmB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAEhD,oBAAoB;IAChB,mBAAmB,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,IAAI,wBAAa,CAAC,mBAAmB,CAAC,CAAC;IAEnD,IAAI,kBAAkB,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;IACrD,MAAM,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IACnD,MAAM,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAEjD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,IAAI,YAAG,EAAE,CAAC;IAC5B,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACvC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,IAAI,2BAAa,EAAE,CAAC;IAErC,iBAAiB;IACjB,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC3B,QAAQ,CAAC,eAAe,CAAC,+BAAiB,CAAC,YAAY,CAAC,CAAC;IACzD,QAAQ,CAAC,eAAe,CAAC,+BAAiB,CAAC,WAAW,CAAC,CAAC;IAExD,aAAa;IACb,MAAM,MAAM,GAAG,IAAI,gCAAa,EAAE,CAAC;IACnC,MAAM,CAAC,QAAQ,CAAC,qBAAU,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAE3B,MAAM,GAAG,GAAG,IAAI,mBAAQ,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,YAAY,GAAG,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAEjD,wBAAwB;IACxB,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,2DAA2D,CAAC,CAAC;AAC9F,CAAC,CAAA,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"datetime.test.js","sourceRoot":"","sources":["datetime.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,4 +48,50 @@ test('test the date time', async () => {
|
|
|
48
48
|
|
|
49
49
|
//Expect timestamp match
|
|
50
50
|
expect(timestampStr).toMatch(/^[0-9]{4}\/[0-9]{2}\/[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$/);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
// second-brain#276 — lock in that the ZonedDateTime constructor throws on
|
|
54
|
+
// empty time_zone. Pre-fix: luxon's DateTime silently produced
|
|
55
|
+
// isValid=false / year=NaN, indistinguishable from a real value at most
|
|
56
|
+
// call sites until much later. Now: loud failure at construction.
|
|
57
|
+
|
|
58
|
+
describe('ZonedDateTime constructor — second-brain#276', () => {
|
|
59
|
+
test('throws when time_zone is empty (proto3 default)', () => {
|
|
60
|
+
const proto = new LocalTimestampProto();
|
|
61
|
+
const ts = new Timestamp();
|
|
62
|
+
ts.setSeconds(1_700_000_000);
|
|
63
|
+
proto.setTimestamp(ts);
|
|
64
|
+
// time_zone left at the proto3 default ""
|
|
65
|
+
|
|
66
|
+
expect(() => new ZonedDateTime(proto)).toThrow(/time_zone is required/);
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
test('throws when time_zone is whitespace-only', () => {
|
|
70
|
+
const proto = new LocalTimestampProto();
|
|
71
|
+
const ts = new Timestamp();
|
|
72
|
+
ts.setSeconds(1_700_000_000);
|
|
73
|
+
proto.setTimestamp(ts);
|
|
74
|
+
proto.setTimeZone(' ');
|
|
75
|
+
|
|
76
|
+
expect(() => new ZonedDateTime(proto)).toThrow(/time_zone is required/);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
test('throws on fully-default LocalTimestampProto', () => {
|
|
80
|
+
// No timestamp, no time_zone — wholly default instance.
|
|
81
|
+
expect(() => new ZonedDateTime(new LocalTimestampProto()))
|
|
82
|
+
.toThrow(/time_zone is required/);
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
test('happy path with UTC still constructs successfully', () => {
|
|
86
|
+
const proto = new LocalTimestampProto();
|
|
87
|
+
const ts = new Timestamp();
|
|
88
|
+
ts.setSeconds(1_700_000_000);
|
|
89
|
+
proto.setTimestamp(ts);
|
|
90
|
+
proto.setTimeZone('UTC');
|
|
91
|
+
|
|
92
|
+
const zdt = new ZonedDateTime(proto);
|
|
93
|
+
const dt = zdt.toDateTime();
|
|
94
|
+
expect(dt.isValid).toBe(true);
|
|
95
|
+
expect(dt.year).toBe(2023);
|
|
96
|
+
});
|
|
51
97
|
});
|