@fintekkers/ledger-models 0.2.4 → 0.3.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/identifier/identifier_type_pb.d.ts +1 -0
- package/node/fintekkers/models/security/identifier/identifier_type_pb.js +1 -0
- package/node/fintekkers/models/security/security_pb.d.ts +42 -123
- package/node/fintekkers/models/security/security_pb.js +279 -974
- package/node/fintekkers/requests/security/query_security_request_pb.d.ts +3 -0
- package/node/fintekkers/requests/security/query_security_request_pb.js +31 -1
- package/node/wrappers/models/security/identifier.test.js +2 -0
- package/node/wrappers/models/security/identifier.test.js.map +1 -1
- package/node/wrappers/models/security/identifier.test.ts +2 -0
- package/node/wrappers/models/security/security-roundtrip.test.js +96 -12
- package/node/wrappers/models/security/security-roundtrip.test.js.map +1 -1
- package/node/wrappers/models/security/security-roundtrip.test.ts +97 -0
- package/node/wrappers/models/security/security.d.ts +29 -5
- package/node/wrappers/models/security/security.js +66 -10
- package/node/wrappers/models/security/security.js.map +1 -1
- package/node/wrappers/models/security/security.ts +70 -11
- package/package.json +1 -1
- package/node/fintekkers/models/security/security_id_pb.d.ts +0 -31
- package/node/fintekkers/models/security/security_id_pb.js +0 -199
|
@@ -30,6 +30,8 @@ export class QuerySecurityRequestProto extends jspb.Message {
|
|
|
30
30
|
setAsOf(value?: fintekkers_models_util_local_timestamp_pb.LocalTimestampProto): QuerySecurityRequestProto;
|
|
31
31
|
getNameFilter(): string;
|
|
32
32
|
setNameFilter(value: string): QuerySecurityRequestProto;
|
|
33
|
+
getLookthrough(): boolean;
|
|
34
|
+
setLookthrough(value: boolean): QuerySecurityRequestProto;
|
|
33
35
|
|
|
34
36
|
serializeBinary(): Uint8Array;
|
|
35
37
|
toObject(includeInstance?: boolean): QuerySecurityRequestProto.AsObject;
|
|
@@ -49,5 +51,6 @@ export namespace QuerySecurityRequestProto {
|
|
|
49
51
|
searchSecurityInput?: fintekkers_models_position_position_filter_pb.PositionFilterProto.AsObject,
|
|
50
52
|
asOf?: fintekkers_models_util_local_timestamp_pb.LocalTimestampProto.AsObject,
|
|
51
53
|
nameFilter: string,
|
|
54
|
+
lookthrough: boolean,
|
|
52
55
|
}
|
|
53
56
|
}
|
|
@@ -94,7 +94,8 @@ proto.fintekkers.requests.security.QuerySecurityRequestProto.toObject = function
|
|
|
94
94
|
fintekkers_models_util_uuid_pb.UUIDProto.toObject, includeInstance),
|
|
95
95
|
searchSecurityInput: (f = msg.getSearchSecurityInput()) && fintekkers_models_position_position_filter_pb.PositionFilterProto.toObject(includeInstance, f),
|
|
96
96
|
asOf: (f = msg.getAsOf()) && fintekkers_models_util_local_timestamp_pb.LocalTimestampProto.toObject(includeInstance, f),
|
|
97
|
-
nameFilter: jspb.Message.getFieldWithDefault(msg, 24, "")
|
|
97
|
+
nameFilter: jspb.Message.getFieldWithDefault(msg, 24, ""),
|
|
98
|
+
lookthrough: jspb.Message.getBooleanFieldWithDefault(msg, 25, false)
|
|
98
99
|
};
|
|
99
100
|
|
|
100
101
|
if (includeInstance) {
|
|
@@ -158,6 +159,10 @@ proto.fintekkers.requests.security.QuerySecurityRequestProto.deserializeBinaryFr
|
|
|
158
159
|
var value = /** @type {string} */ (reader.readString());
|
|
159
160
|
msg.setNameFilter(value);
|
|
160
161
|
break;
|
|
162
|
+
case 25:
|
|
163
|
+
var value = /** @type {boolean} */ (reader.readBool());
|
|
164
|
+
msg.setLookthrough(value);
|
|
165
|
+
break;
|
|
161
166
|
default:
|
|
162
167
|
reader.skipField();
|
|
163
168
|
break;
|
|
@@ -232,6 +237,13 @@ proto.fintekkers.requests.security.QuerySecurityRequestProto.serializeBinaryToWr
|
|
|
232
237
|
f
|
|
233
238
|
);
|
|
234
239
|
}
|
|
240
|
+
f = message.getLookthrough();
|
|
241
|
+
if (f) {
|
|
242
|
+
writer.writeBool(
|
|
243
|
+
25,
|
|
244
|
+
f
|
|
245
|
+
);
|
|
246
|
+
}
|
|
235
247
|
};
|
|
236
248
|
|
|
237
249
|
|
|
@@ -401,4 +413,22 @@ proto.fintekkers.requests.security.QuerySecurityRequestProto.prototype.setNameFi
|
|
|
401
413
|
};
|
|
402
414
|
|
|
403
415
|
|
|
416
|
+
/**
|
|
417
|
+
* optional bool lookthrough = 25;
|
|
418
|
+
* @return {boolean}
|
|
419
|
+
*/
|
|
420
|
+
proto.fintekkers.requests.security.QuerySecurityRequestProto.prototype.getLookthrough = function() {
|
|
421
|
+
return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 25, false));
|
|
422
|
+
};
|
|
423
|
+
|
|
424
|
+
|
|
425
|
+
/**
|
|
426
|
+
* @param {boolean} value
|
|
427
|
+
* @return {!proto.fintekkers.requests.security.QuerySecurityRequestProto} returns this
|
|
428
|
+
*/
|
|
429
|
+
proto.fintekkers.requests.security.QuerySecurityRequestProto.prototype.setLookthrough = function(value) {
|
|
430
|
+
return jspb.Message.setProto3BooleanField(this, 25, value);
|
|
431
|
+
};
|
|
432
|
+
|
|
433
|
+
|
|
404
434
|
goog.object.extend(exports, proto.fintekkers.requests.security);
|
|
@@ -99,6 +99,7 @@ describe('Identifier.getAllTypeNames', () => {
|
|
|
99
99
|
// OSI = 4;
|
|
100
100
|
// FIGI = 5;
|
|
101
101
|
// SERIES_ID = 6;
|
|
102
|
+
// INDEX_NAME = 7;
|
|
102
103
|
// CASH = 50;
|
|
103
104
|
expect(identifier_1.Identifier.getAllTypeNames()).toEqual([
|
|
104
105
|
'EXCH_TICKER',
|
|
@@ -107,6 +108,7 @@ describe('Identifier.getAllTypeNames', () => {
|
|
|
107
108
|
'OSI',
|
|
108
109
|
'FIGI',
|
|
109
110
|
'SERIES_ID',
|
|
111
|
+
'INDEX_NAME',
|
|
110
112
|
'CASH',
|
|
111
113
|
]);
|
|
112
114
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identifier.test.js","sourceRoot":"","sources":["identifier.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"identifier.test.js","sourceRoot":"","sources":["identifier.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -116,6 +116,7 @@ describe('Identifier.getAllTypeNames', () => {
|
|
|
116
116
|
// OSI = 4;
|
|
117
117
|
// FIGI = 5;
|
|
118
118
|
// SERIES_ID = 6;
|
|
119
|
+
// INDEX_NAME = 7;
|
|
119
120
|
// CASH = 50;
|
|
120
121
|
expect(Identifier.getAllTypeNames()).toEqual([
|
|
121
122
|
'EXCH_TICKER',
|
|
@@ -124,6 +125,7 @@ describe('Identifier.getAllTypeNames', () => {
|
|
|
124
125
|
'OSI',
|
|
125
126
|
'FIGI',
|
|
126
127
|
'SERIES_ID',
|
|
128
|
+
'INDEX_NAME',
|
|
127
129
|
'CASH',
|
|
128
130
|
]);
|
|
129
131
|
});
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
/**
|
|
4
7
|
* ISSUE #7: SecurityProto round-trip serialization tests for all 6 security types.
|
|
@@ -6,6 +9,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
9
|
* For each type: construct → serialize to bytes → deserialize → verify all fields match.
|
|
7
10
|
*/
|
|
8
11
|
const security_pb_1 = require("../../../fintekkers/models/security/security_pb");
|
|
12
|
+
const security_pb_2 = require("../../../fintekkers/models/security/security_pb");
|
|
13
|
+
const security_1 = __importDefault(require("./security"));
|
|
14
|
+
const uuid_1 = require("../utils/uuid");
|
|
15
|
+
const datetime_1 = require("../utils/datetime");
|
|
9
16
|
const product_type_pb_1 = require("../../../fintekkers/models/security/product_type_pb");
|
|
10
17
|
const coupon_frequency_pb_1 = require("../../../fintekkers/models/security/coupon_frequency_pb");
|
|
11
18
|
const coupon_type_pb_1 = require("../../../fintekkers/models/security/coupon_type_pb");
|
|
@@ -26,7 +33,7 @@ function makeIdentifier(type, value) {
|
|
|
26
33
|
}
|
|
27
34
|
describe('SecurityProto Round-Trip Serialization — All 6 Security Types', () => {
|
|
28
35
|
test('BOND_SECURITY: all bond fields survive round-trip', () => {
|
|
29
|
-
const original = new
|
|
36
|
+
const original = new security_pb_2.SecurityProto();
|
|
30
37
|
original.setObjectClass('Security');
|
|
31
38
|
original.setVersion('0.0.1');
|
|
32
39
|
original.setProductType(product_type_pb_1.ProductTypeProto.TREASURY_NOTE);
|
|
@@ -43,7 +50,7 @@ describe('SecurityProto Round-Trip Serialization — All 6 Security Types', () =
|
|
|
43
50
|
original.setDatedDate(makeDate(2020, 1, 15));
|
|
44
51
|
original.setMaturityDate(makeDate(2030, 1, 15));
|
|
45
52
|
const bytes = original.serializeBinary();
|
|
46
|
-
const parsed =
|
|
53
|
+
const parsed = security_pb_2.SecurityProto.deserializeBinary(bytes);
|
|
47
54
|
expect(parsed.getProductType()).toBe(product_type_pb_1.ProductTypeProto.TREASURY_NOTE);
|
|
48
55
|
expect(parsed.getAssetClass()).toBe('Fixed Income');
|
|
49
56
|
expect(parsed.getIssuerName()).toBe('US Treasury');
|
|
@@ -62,7 +69,7 @@ describe('SecurityProto Round-Trip Serialization — All 6 Security Types', () =
|
|
|
62
69
|
expect(parsed.getIdentifier().getIdentifierType()).toBe(identifier_type_pb_1.IdentifierTypeProto.CUSIP);
|
|
63
70
|
});
|
|
64
71
|
test('TIPS: bond fields + base_cpi + inflation_index_type survive round-trip', () => {
|
|
65
|
-
const original = new
|
|
72
|
+
const original = new security_pb_2.SecurityProto();
|
|
66
73
|
original.setObjectClass('Security');
|
|
67
74
|
original.setVersion('0.0.1');
|
|
68
75
|
original.setProductType(product_type_pb_1.ProductTypeProto.TIPS);
|
|
@@ -76,7 +83,7 @@ describe('SecurityProto Round-Trip Serialization — All 6 Security Types', () =
|
|
|
76
83
|
original.setBaseCpi(makeDecimal('256.394'));
|
|
77
84
|
original.setInflationIndexType(index_type_pb_1.IndexTypeProto.CPI_U);
|
|
78
85
|
const bytes = original.serializeBinary();
|
|
79
|
-
const parsed =
|
|
86
|
+
const parsed = security_pb_2.SecurityProto.deserializeBinary(bytes);
|
|
80
87
|
expect(parsed.getProductType()).toBe(product_type_pb_1.ProductTypeProto.TIPS);
|
|
81
88
|
expect(parsed.getCouponRate().getArbitraryPrecisionValue()).toBe('0.625');
|
|
82
89
|
expect(parsed.getCouponType()).toBe(coupon_type_pb_1.CouponTypeProto.FIXED);
|
|
@@ -87,7 +94,7 @@ describe('SecurityProto Round-Trip Serialization — All 6 Security Types', () =
|
|
|
87
94
|
expect(parsed.getInflationIndexType()).toBe(index_type_pb_1.IndexTypeProto.CPI_U);
|
|
88
95
|
});
|
|
89
96
|
test('FRN: spread + reference_rate_index + reset_frequency survive round-trip', () => {
|
|
90
|
-
const original = new
|
|
97
|
+
const original = new security_pb_2.SecurityProto();
|
|
91
98
|
original.setObjectClass('Security');
|
|
92
99
|
original.setVersion('0.0.1');
|
|
93
100
|
original.setProductType(product_type_pb_1.ProductTypeProto.TREASURY_FRN);
|
|
@@ -101,7 +108,7 @@ describe('SecurityProto Round-Trip Serialization — All 6 Security Types', () =
|
|
|
101
108
|
original.setReferenceRateIndex(index_type_pb_1.IndexTypeProto.T_BILL_13_WEEK);
|
|
102
109
|
// Note: setResetFrequency (field 92) not yet in generated JS — codegen needs update
|
|
103
110
|
const bytes = original.serializeBinary();
|
|
104
|
-
const parsed =
|
|
111
|
+
const parsed = security_pb_2.SecurityProto.deserializeBinary(bytes);
|
|
105
112
|
expect(parsed.getProductType()).toBe(product_type_pb_1.ProductTypeProto.TREASURY_FRN);
|
|
106
113
|
expect(parsed.getCouponType()).toBe(coupon_type_pb_1.CouponTypeProto.FLOAT);
|
|
107
114
|
expect(parsed.getCouponFrequency()).toBe(coupon_frequency_pb_1.CouponFrequencyProto.QUARTERLY);
|
|
@@ -111,7 +118,7 @@ describe('SecurityProto Round-Trip Serialization — All 6 Security Types', () =
|
|
|
111
118
|
expect(parsed.getReferenceRateIndex()).toBe(index_type_pb_1.IndexTypeProto.T_BILL_13_WEEK);
|
|
112
119
|
});
|
|
113
120
|
test('EQUITY_SECURITY: identifier + asset_class survive round-trip', () => {
|
|
114
|
-
const original = new
|
|
121
|
+
const original = new security_pb_2.SecurityProto();
|
|
115
122
|
original.setObjectClass('Security');
|
|
116
123
|
original.setVersion('0.0.1');
|
|
117
124
|
original.setProductType(product_type_pb_1.ProductTypeProto.COMMON_STOCK);
|
|
@@ -121,7 +128,7 @@ describe('SecurityProto Round-Trip Serialization — All 6 Security Types', () =
|
|
|
121
128
|
original.setIdentifier(makeIdentifier(identifier_type_pb_1.IdentifierTypeProto.EXCH_TICKER, 'AAPL'));
|
|
122
129
|
original.setDescription('Apple Inc. Common Stock');
|
|
123
130
|
const bytes = original.serializeBinary();
|
|
124
|
-
const parsed =
|
|
131
|
+
const parsed = security_pb_2.SecurityProto.deserializeBinary(bytes);
|
|
125
132
|
expect(parsed.getProductType()).toBe(product_type_pb_1.ProductTypeProto.COMMON_STOCK);
|
|
126
133
|
expect(parsed.getAssetClass()).toBe('Equity');
|
|
127
134
|
expect(parsed.getIssuerName()).toBe('Apple Inc.');
|
|
@@ -131,7 +138,7 @@ describe('SecurityProto Round-Trip Serialization — All 6 Security Types', () =
|
|
|
131
138
|
expect(parsed.getIdentifier().getIdentifierType()).toBe(identifier_type_pb_1.IdentifierTypeProto.EXCH_TICKER);
|
|
132
139
|
});
|
|
133
140
|
test('CASH_SECURITY: cash_id + settlement fields survive round-trip', () => {
|
|
134
|
-
const original = new
|
|
141
|
+
const original = new security_pb_2.SecurityProto();
|
|
135
142
|
original.setObjectClass('Security');
|
|
136
143
|
original.setVersion('0.0.1');
|
|
137
144
|
original.setProductType(product_type_pb_1.ProductTypeProto.CURRENCY);
|
|
@@ -142,7 +149,7 @@ describe('SecurityProto Round-Trip Serialization — All 6 Security Types', () =
|
|
|
142
149
|
original.setDescription('US Dollar');
|
|
143
150
|
original.setIdentifier(makeIdentifier(identifier_type_pb_1.IdentifierTypeProto.CASH, 'USD'));
|
|
144
151
|
const bytes = original.serializeBinary();
|
|
145
|
-
const parsed =
|
|
152
|
+
const parsed = security_pb_2.SecurityProto.deserializeBinary(bytes);
|
|
146
153
|
expect(parsed.getProductType()).toBe(product_type_pb_1.ProductTypeProto.CURRENCY);
|
|
147
154
|
expect(parsed.getAssetClass()).toBe('Cash');
|
|
148
155
|
expect(parsed.getCashId()).toBe('USD');
|
|
@@ -151,7 +158,7 @@ describe('SecurityProto Round-Trip Serialization — All 6 Security Types', () =
|
|
|
151
158
|
expect(parsed.getIdentifier().getIdentifierType()).toBe(identifier_type_pb_1.IdentifierTypeProto.CASH);
|
|
152
159
|
});
|
|
153
160
|
test('INDEX_SECURITY: index_type + inflation_index_type survive round-trip', () => {
|
|
154
|
-
const original = new
|
|
161
|
+
const original = new security_pb_2.SecurityProto();
|
|
155
162
|
original.setObjectClass('Security');
|
|
156
163
|
original.setVersion('0.0.1');
|
|
157
164
|
original.setProductType(product_type_pb_1.ProductTypeProto.EQUITY_INDEX);
|
|
@@ -161,7 +168,7 @@ describe('SecurityProto Round-Trip Serialization — All 6 Security Types', () =
|
|
|
161
168
|
original.setIndexType(index_type_pb_1.IndexTypeProto.CPI_U);
|
|
162
169
|
original.setIdentifier(makeIdentifier(identifier_type_pb_1.IdentifierTypeProto.CUSIP, 'CPI-U'));
|
|
163
170
|
const bytes = original.serializeBinary();
|
|
164
|
-
const parsed =
|
|
171
|
+
const parsed = security_pb_2.SecurityProto.deserializeBinary(bytes);
|
|
165
172
|
expect(parsed.getProductType()).toBe(product_type_pb_1.ProductTypeProto.EQUITY_INDEX);
|
|
166
173
|
expect(parsed.getAssetClass()).toBe('Index');
|
|
167
174
|
expect(parsed.getIssuerName()).toBe('Bureau of Labor Statistics');
|
|
@@ -170,4 +177,81 @@ describe('SecurityProto Round-Trip Serialization — All 6 Security Types', () =
|
|
|
170
177
|
expect(parsed.getIdentifier().getIdentifierValue()).toBe('CPI-U');
|
|
171
178
|
});
|
|
172
179
|
});
|
|
180
|
+
describe('v0.2.5: Security link helpers + IndexDetailsProto.constituents', () => {
|
|
181
|
+
test('linkOf populates uuid, as_of and sets is_link=true', () => {
|
|
182
|
+
const uuid = uuid_1.UUID.random();
|
|
183
|
+
const asOf = datetime_1.ZonedDateTime.now();
|
|
184
|
+
const link = security_1.default.linkOf(uuid, asOf);
|
|
185
|
+
expect(link.getIsLink()).toBe(true);
|
|
186
|
+
expect(link.getUuid()).toBeDefined();
|
|
187
|
+
expect(link.getAsOf()).toBeDefined();
|
|
188
|
+
expect(link.getAssetClass()).toBe(''); // no other fields populated
|
|
189
|
+
});
|
|
190
|
+
test('linkOfLatest skips as_of', () => {
|
|
191
|
+
const uuid = uuid_1.UUID.random();
|
|
192
|
+
const link = security_1.default.linkOfLatest(uuid);
|
|
193
|
+
expect(link.getIsLink()).toBe(true);
|
|
194
|
+
expect(link.getUuid()).toBeDefined();
|
|
195
|
+
expect(link.getAsOf()).toBeUndefined();
|
|
196
|
+
});
|
|
197
|
+
test('linkOf requires asOf (throws when called without it)', () => {
|
|
198
|
+
const uuid = uuid_1.UUID.random();
|
|
199
|
+
expect(() => security_1.default.linkOf(uuid, undefined)).toThrow(/asOf is required/);
|
|
200
|
+
});
|
|
201
|
+
test('Security.isLink() reads the proto flag', () => {
|
|
202
|
+
const full = new security_pb_2.SecurityProto();
|
|
203
|
+
const wrapperFull = new security_1.default(full);
|
|
204
|
+
expect(wrapperFull.isLink()).toBe(false);
|
|
205
|
+
const link = security_1.default.linkOf(uuid_1.UUID.random(), datetime_1.ZonedDateTime.now());
|
|
206
|
+
const wrapperLink = new security_1.default(link);
|
|
207
|
+
expect(wrapperLink.isLink()).toBe(true);
|
|
208
|
+
});
|
|
209
|
+
test('Accessors throw on link wrappers', () => {
|
|
210
|
+
const link = security_1.default.linkOf(uuid_1.UUID.random(), datetime_1.ZonedDateTime.now());
|
|
211
|
+
const wrapper = new security_1.default(link);
|
|
212
|
+
expect(() => wrapper.getAssetClass()).toThrow(/link-mode/);
|
|
213
|
+
expect(() => wrapper.getIssuerName()).toThrow(/link-mode/);
|
|
214
|
+
expect(() => wrapper.getProductType()).toThrow(/link-mode/);
|
|
215
|
+
});
|
|
216
|
+
test('Link round-trips via serializeBinary preserving uuid + as_of + is_link', () => {
|
|
217
|
+
const uuid = uuid_1.UUID.random();
|
|
218
|
+
const asOf = datetime_1.ZonedDateTime.now();
|
|
219
|
+
const link = security_1.default.linkOf(uuid, asOf);
|
|
220
|
+
const bytes = link.serializeBinary();
|
|
221
|
+
const parsed = security_pb_2.SecurityProto.deserializeBinary(bytes);
|
|
222
|
+
expect(parsed.getIsLink()).toBe(true);
|
|
223
|
+
expect(parsed.getUuid()).toBeDefined();
|
|
224
|
+
const parsedBytes = Array.from(parsed.getUuid().getRawUuid_asU8());
|
|
225
|
+
expect(parsedBytes).toEqual(uuid.toBytes());
|
|
226
|
+
expect(parsed.getAsOf().getTimeZone()).toBe(asOf.toProto().getTimeZone());
|
|
227
|
+
});
|
|
228
|
+
test('IndexDetailsProto.constituents round-trip with each constituent in link mode', () => {
|
|
229
|
+
const asOf = datetime_1.ZonedDateTime.now();
|
|
230
|
+
const c1 = security_1.default.linkOf(uuid_1.UUID.random(), asOf);
|
|
231
|
+
const c2 = security_1.default.linkOf(uuid_1.UUID.random(), asOf);
|
|
232
|
+
const details = new security_pb_1.IndexDetailsProto();
|
|
233
|
+
details.setIndexType(index_type_pb_1.IndexTypeProto.CPI_U);
|
|
234
|
+
details.setConstituentsList([c1, c2]);
|
|
235
|
+
const original = new security_pb_2.SecurityProto();
|
|
236
|
+
original.setProductType(product_type_pb_1.ProductTypeProto.EQUITY_INDEX);
|
|
237
|
+
original.setIndexDetails(details);
|
|
238
|
+
const parsed = security_pb_2.SecurityProto.deserializeBinary(original.serializeBinary());
|
|
239
|
+
const parsedDetails = parsed.getIndexDetails();
|
|
240
|
+
expect(parsedDetails.getConstituentsList().length).toBe(2);
|
|
241
|
+
expect(parsedDetails.getConstituentsList()[0].getIsLink()).toBe(true);
|
|
242
|
+
expect(parsedDetails.getConstituentsList()[0].getAsOf()).toBeDefined();
|
|
243
|
+
});
|
|
244
|
+
test('Wire compat: SecurityIdProto-shaped bytes (uuid at tag 1) parse as SecurityProto', () => {
|
|
245
|
+
// Pre-v0.2.5, legs were SecurityIdProto (uuid at tag 1). We rebuild that
|
|
246
|
+
// wire shape by serializing a SecurityProto with only uuid set — same
|
|
247
|
+
// bytes — and confirm round-trip under the new type.
|
|
248
|
+
const uuid = uuid_1.UUID.random();
|
|
249
|
+
const legacy = new security_pb_2.SecurityProto();
|
|
250
|
+
legacy.setUuid(uuid.toUUIDProto());
|
|
251
|
+
const legacyBytes = legacy.serializeBinary();
|
|
252
|
+
const parsed = security_pb_2.SecurityProto.deserializeBinary(legacyBytes);
|
|
253
|
+
const parsedBytes = Array.from(parsed.getUuid().getRawUuid_asU8());
|
|
254
|
+
expect(parsedBytes).toEqual(uuid.toBytes());
|
|
255
|
+
});
|
|
256
|
+
});
|
|
173
257
|
//# sourceMappingURL=security-roundtrip.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security-roundtrip.test.js","sourceRoot":"","sources":["security-roundtrip.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"security-roundtrip.test.js","sourceRoot":"","sources":["security-roundtrip.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* For each type: construct → serialize to bytes → deserialize → verify all fields match.
|
|
5
5
|
*/
|
|
6
|
+
import { IndexDetailsProto } from '../../../fintekkers/models/security/security_pb';
|
|
6
7
|
import { SecurityProto } from '../../../fintekkers/models/security/security_pb';
|
|
8
|
+
import Security from './security';
|
|
9
|
+
import { UUID } from '../utils/uuid';
|
|
10
|
+
import { ZonedDateTime } from '../utils/datetime';
|
|
7
11
|
import { ProductTypeProto } from "../../../fintekkers/models/security/product_type_pb";
|
|
8
12
|
import { CouponFrequencyProto } from '../../../fintekkers/models/security/coupon_frequency_pb';
|
|
9
13
|
import { CouponTypeProto } from '../../../fintekkers/models/security/coupon_type_pb';
|
|
@@ -190,3 +194,96 @@ describe('SecurityProto Round-Trip Serialization — All 6 Security Types', () =
|
|
|
190
194
|
expect(parsed.getIdentifier()!.getIdentifierValue()).toBe('CPI-U');
|
|
191
195
|
});
|
|
192
196
|
});
|
|
197
|
+
|
|
198
|
+
describe('v0.2.5: Security link helpers + IndexDetailsProto.constituents', () => {
|
|
199
|
+
|
|
200
|
+
test('linkOf populates uuid, as_of and sets is_link=true', () => {
|
|
201
|
+
const uuid = UUID.random();
|
|
202
|
+
const asOf = ZonedDateTime.now();
|
|
203
|
+
const link = Security.linkOf(uuid, asOf);
|
|
204
|
+
expect(link.getIsLink()).toBe(true);
|
|
205
|
+
expect(link.getUuid()).toBeDefined();
|
|
206
|
+
expect(link.getAsOf()).toBeDefined();
|
|
207
|
+
expect(link.getAssetClass()).toBe(''); // no other fields populated
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
test('linkOfLatest skips as_of', () => {
|
|
211
|
+
const uuid = UUID.random();
|
|
212
|
+
const link = Security.linkOfLatest(uuid);
|
|
213
|
+
expect(link.getIsLink()).toBe(true);
|
|
214
|
+
expect(link.getUuid()).toBeDefined();
|
|
215
|
+
expect(link.getAsOf()).toBeUndefined();
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
test('linkOf requires asOf (throws when called without it)', () => {
|
|
219
|
+
const uuid = UUID.random();
|
|
220
|
+
expect(() => Security.linkOf(uuid, undefined as any)).toThrow(/asOf is required/);
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
test('Security.isLink() reads the proto flag', () => {
|
|
224
|
+
const full = new SecurityProto();
|
|
225
|
+
const wrapperFull = new Security(full);
|
|
226
|
+
expect(wrapperFull.isLink()).toBe(false);
|
|
227
|
+
|
|
228
|
+
const link = Security.linkOf(UUID.random(), ZonedDateTime.now());
|
|
229
|
+
const wrapperLink = new Security(link);
|
|
230
|
+
expect(wrapperLink.isLink()).toBe(true);
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
test('Accessors throw on link wrappers', () => {
|
|
234
|
+
const link = Security.linkOf(UUID.random(), ZonedDateTime.now());
|
|
235
|
+
const wrapper = new Security(link);
|
|
236
|
+
expect(() => wrapper.getAssetClass()).toThrow(/link-mode/);
|
|
237
|
+
expect(() => wrapper.getIssuerName()).toThrow(/link-mode/);
|
|
238
|
+
expect(() => wrapper.getProductType()).toThrow(/link-mode/);
|
|
239
|
+
});
|
|
240
|
+
|
|
241
|
+
test('Link round-trips via serializeBinary preserving uuid + as_of + is_link', () => {
|
|
242
|
+
const uuid = UUID.random();
|
|
243
|
+
const asOf = ZonedDateTime.now();
|
|
244
|
+
const link = Security.linkOf(uuid, asOf);
|
|
245
|
+
|
|
246
|
+
const bytes = link.serializeBinary();
|
|
247
|
+
const parsed = SecurityProto.deserializeBinary(bytes);
|
|
248
|
+
|
|
249
|
+
expect(parsed.getIsLink()).toBe(true);
|
|
250
|
+
expect(parsed.getUuid()).toBeDefined();
|
|
251
|
+
const parsedBytes = Array.from(parsed.getUuid()!.getRawUuid_asU8());
|
|
252
|
+
expect(parsedBytes).toEqual(uuid.toBytes());
|
|
253
|
+
expect(parsed.getAsOf()!.getTimeZone()).toBe(asOf.toProto().getTimeZone());
|
|
254
|
+
});
|
|
255
|
+
|
|
256
|
+
test('IndexDetailsProto.constituents round-trip with each constituent in link mode', () => {
|
|
257
|
+
const asOf = ZonedDateTime.now();
|
|
258
|
+
const c1 = Security.linkOf(UUID.random(), asOf);
|
|
259
|
+
const c2 = Security.linkOf(UUID.random(), asOf);
|
|
260
|
+
|
|
261
|
+
const details = new IndexDetailsProto();
|
|
262
|
+
details.setIndexType(IndexTypeProto.CPI_U);
|
|
263
|
+
details.setConstituentsList([c1, c2]);
|
|
264
|
+
|
|
265
|
+
const original = new SecurityProto();
|
|
266
|
+
original.setProductType(ProductTypeProto.EQUITY_INDEX);
|
|
267
|
+
original.setIndexDetails(details);
|
|
268
|
+
|
|
269
|
+
const parsed = SecurityProto.deserializeBinary(original.serializeBinary());
|
|
270
|
+
const parsedDetails = parsed.getIndexDetails()!;
|
|
271
|
+
expect(parsedDetails.getConstituentsList().length).toBe(2);
|
|
272
|
+
expect(parsedDetails.getConstituentsList()[0].getIsLink()).toBe(true);
|
|
273
|
+
expect(parsedDetails.getConstituentsList()[0].getAsOf()).toBeDefined();
|
|
274
|
+
});
|
|
275
|
+
|
|
276
|
+
test('Wire compat: SecurityIdProto-shaped bytes (uuid at tag 1) parse as SecurityProto', () => {
|
|
277
|
+
// Pre-v0.2.5, legs were SecurityIdProto (uuid at tag 1). We rebuild that
|
|
278
|
+
// wire shape by serializing a SecurityProto with only uuid set — same
|
|
279
|
+
// bytes — and confirm round-trip under the new type.
|
|
280
|
+
const uuid = UUID.random();
|
|
281
|
+
const legacy = new SecurityProto();
|
|
282
|
+
legacy.setUuid(uuid.toUUIDProto());
|
|
283
|
+
|
|
284
|
+
const legacyBytes = legacy.serializeBinary();
|
|
285
|
+
const parsed = SecurityProto.deserializeBinary(legacyBytes);
|
|
286
|
+
const parsedBytes = Array.from(parsed.getUuid()!.getRawUuid_asU8());
|
|
287
|
+
expect(parsedBytes).toEqual(uuid.toBytes());
|
|
288
|
+
});
|
|
289
|
+
});
|
|
@@ -7,6 +7,31 @@ import { LocalDate } from "../utils/date";
|
|
|
7
7
|
declare class Security {
|
|
8
8
|
proto: SecurityProto;
|
|
9
9
|
constructor(proto: SecurityProto);
|
|
10
|
+
/**
|
|
11
|
+
* Build a SecurityProto link reference (is_link=true) with uuid and as_of
|
|
12
|
+
* populated. Use this whenever you embed a Security inside another message
|
|
13
|
+
* that itself carries an as_of (Position, Transaction, Price, etc.) — the
|
|
14
|
+
* link MUST carry the same as_of as the parent so the resolver hydrates
|
|
15
|
+
* the correct point-in-time vintage. See docs/adr/is_link_pattern.md.
|
|
16
|
+
*
|
|
17
|
+
* @param uuid The Security UUID to reference.
|
|
18
|
+
* @param asOf The as-of timestamp; required. For "always latest" semantics
|
|
19
|
+
* use linkOfLatest(uuid) instead.
|
|
20
|
+
*/
|
|
21
|
+
static linkOf(uuid: UUID, asOf: ZonedDateTime): SecurityProto;
|
|
22
|
+
/**
|
|
23
|
+
* Build a SecurityProto link reference (is_link=true) with only uuid set.
|
|
24
|
+
* Resolution returns the latest version. Explicit escape hatch — most
|
|
25
|
+
* callers should prefer linkOf(uuid, asOf).
|
|
26
|
+
*/
|
|
27
|
+
static linkOfLatest(uuid: UUID): SecurityProto;
|
|
28
|
+
private static _uuidToProto;
|
|
29
|
+
private static _zonedDateTimeToProto;
|
|
30
|
+
/**
|
|
31
|
+
* Throws if this Security is in link mode. Use to guard accessors that
|
|
32
|
+
* would otherwise return proto3 default values on a link reference.
|
|
33
|
+
*/
|
|
34
|
+
private assertNotLink;
|
|
10
35
|
/**
|
|
11
36
|
* Factory method to create the appropriate Security subclass based on security type
|
|
12
37
|
*/
|
|
@@ -64,11 +89,10 @@ declare class Security {
|
|
|
64
89
|
*/
|
|
65
90
|
getMaturityDate(): LocalDate;
|
|
66
91
|
/**
|
|
67
|
-
* Returns the
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
* (e.g. when JS codegen hasn't been updated).
|
|
92
|
+
* Returns the canonical bond_details sub-message if set, else undefined.
|
|
93
|
+
* v0.3.0 collapsed the prior 3-arm bond/tips/frn oneof into a single
|
|
94
|
+
* top-level bond_details — TIPS and FRN extras now live in their own
|
|
95
|
+
* tips_extension / frn_extension fields.
|
|
72
96
|
*/
|
|
73
97
|
protected getBondLikeDetails(): any | undefined;
|
|
74
98
|
getIssuerName(): string;
|