@fintekkers/ledger-models 0.1.115 → 0.1.117

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/node/wrappers/models/position/position.d.ts +3 -1
  2. package/node/wrappers/models/position/position.js +21 -4
  3. package/node/wrappers/models/position/position.js.map +1 -1
  4. package/node/wrappers/models/position/position.test.js +25 -3
  5. package/node/wrappers/models/position/position.test.js.map +1 -1
  6. package/node/wrappers/models/position/position.test.ts +32 -4
  7. package/node/wrappers/models/position/position.ts +23 -6
  8. package/node/wrappers/models/position/positionfilter.d.ts +2 -0
  9. package/node/wrappers/models/position/positionfilter.js +9 -0
  10. package/node/wrappers/models/position/positionfilter.js.map +1 -1
  11. package/node/wrappers/models/position/positionfilter.test.d.ts +1 -0
  12. package/node/wrappers/models/position/positionfilter.test.js +132 -0
  13. package/node/wrappers/models/position/positionfilter.test.js.map +1 -0
  14. package/node/wrappers/models/position/positionfilter.test.ts +161 -0
  15. package/node/wrappers/models/position/positionfilter.ts +11 -0
  16. package/node/wrappers/models/security/coupon_type.test.js +1 -1
  17. package/node/wrappers/models/security/coupon_type.test.js.map +1 -1
  18. package/node/wrappers/models/security/coupon_type.test.ts +1 -1
  19. package/node/wrappers/models/security/identifier.d.ts +29 -0
  20. package/node/wrappers/models/security/identifier.js +51 -0
  21. package/node/wrappers/models/security/identifier.js.map +1 -0
  22. package/node/wrappers/models/security/identifier.test.d.ts +1 -0
  23. package/node/wrappers/models/security/identifier.test.js +55 -0
  24. package/node/wrappers/models/security/identifier.test.js.map +1 -0
  25. package/node/wrappers/models/security/identifier.test.ts +65 -0
  26. package/node/wrappers/models/security/identifier.ts +58 -0
  27. package/node/wrappers/models/security/term.test.js +6 -0
  28. package/node/wrappers/models/security/term.test.js.map +1 -1
  29. package/node/wrappers/models/security/term.test.ts +7 -0
  30. package/node/wrappers/models/utils/date.test.js +1 -1
  31. package/node/wrappers/models/utils/date.test.ts +1 -1
  32. package/node/wrappers/models/utils/serialization.d.ts +4 -2
  33. package/node/wrappers/models/utils/serialization.js +5 -1
  34. package/node/wrappers/models/utils/serialization.js.map +1 -1
  35. package/node/wrappers/models/utils/serialization.ts +7 -3
  36. package/node/wrappers/models/utils/serialization.util.d.ts +5 -2
  37. package/node/wrappers/models/utils/serialization.util.js +24 -1
  38. package/node/wrappers/models/utils/serialization.util.js.map +1 -1
  39. package/node/wrappers/models/utils/serialization.util.test.js.map +1 -1
  40. package/node/wrappers/models/utils/serialization.util.test.ts +3 -3
  41. package/node/wrappers/models/utils/serialization.util.ts +39 -14
  42. package/package.json +1 -1
@@ -9,6 +9,8 @@ import { ProtoEnum } from "../utils/protoEnum";
9
9
  import { UUID } from "../utils/uuid";
10
10
  import { ZonedDateTime } from "../utils/datetime";
11
11
  import { PriceProto } from "../../../fintekkers/models/price/price_pb";
12
+ import { Tenor } from "../security/term";
13
+ import { Identifier } from "../security/identifier";
12
14
  export declare class Position {
13
15
  proto: PositionProto;
14
16
  constructor(positionProto: PositionProto);
@@ -21,7 +23,7 @@ export declare class Position {
21
23
  */
22
24
  static fromJSON(json: any): Position;
23
25
  getFieldValue(field: FieldProto): any;
24
- getField(fieldToGet: FieldMapEntry): string | ProtoEnum | Security | Portfolio | UUID | Date | ZonedDateTime | number | PriceProto;
26
+ getField(fieldToGet: FieldMapEntry): string | ProtoEnum | Security | Identifier | Portfolio | UUID | Date | ZonedDateTime | number | PriceProto | Tenor;
25
27
  getMeasureValue(measure: MeasureProto): Decimal;
26
28
  private getMeasure;
27
29
  getFieldDisplay(fieldToGet: FieldMapEntry): string;
@@ -27,6 +27,7 @@ const tenor_pb_1 = require("../../../fintekkers/models/security/tenor_pb");
27
27
  const portfolio_pb_1 = require("../../../fintekkers/models/portfolio/portfolio_pb");
28
28
  const security_pb_1 = require("../../../fintekkers/models/security/security_pb");
29
29
  const wrappers_pb_1 = require("google-protobuf/google/protobuf/wrappers_pb");
30
+ const term_1 = require("../security/term");
30
31
  class Position {
31
32
  constructor(positionProto) {
32
33
  this.proto = positionProto;
@@ -67,9 +68,19 @@ class Position {
67
68
  return proto;
68
69
  }
69
70
  const unpackedValue = Position.unpackField(tmpField);
70
- if (field_pb_1.FieldProto.PRICE == fieldToGet.getField()
71
- || field_pb_1.FieldProto.TENOR == fieldToGet.getField()) {
72
- return unpackedValue; //instanceof PriceProto || TenorProto
71
+ if (field_pb_1.FieldProto.PRICE == fieldToGet.getField()) {
72
+ return unpackedValue; //instanceof PriceProto
73
+ }
74
+ if (field_pb_1.FieldProto.TENOR == fieldToGet.getField()) {
75
+ const tenorProto = unpackedValue;
76
+ const tenorType = tenorProto.getTenorType();
77
+ const termValue = tenorProto.getTermValue();
78
+ if (termValue && termValue.length > 0) {
79
+ return new term_1.Tenor(tenorType, termValue);
80
+ }
81
+ else {
82
+ return new term_1.Tenor(tenorType);
83
+ }
73
84
  }
74
85
  if (field_pb_1.FieldProto.SECURITY == fieldToGet.getField()) {
75
86
  return security_1.default.create(unpackedValue);
@@ -120,7 +131,10 @@ class Position {
120
131
  return value.toString();
121
132
  }
122
133
  else if (value instanceof Date) {
123
- return `${value.getFullYear()}/${value.getMonth()}/${value.getDay()}`;
134
+ const year = value.getFullYear();
135
+ const month = String(value.getMonth() + 1).padStart(2, '0'); // getMonth() returns 0-11, so add 1
136
+ const day = String(value.getDate()).padStart(2, '0'); // getDate() returns day of month (1-31)
137
+ return `${year}-${month}-${day}`;
124
138
  }
125
139
  else if (value instanceof datetime_1.ZonedDateTime) {
126
140
  const tmpDateTime = value.toDateTime();
@@ -129,6 +143,9 @@ class Position {
129
143
  else if (value instanceof protoEnum_1.ProtoEnum) {
130
144
  return value.toString();
131
145
  }
146
+ else if (value instanceof term_1.Tenor) {
147
+ return value.toString();
148
+ }
132
149
  break;
133
150
  default:
134
151
  return "Can't display this field: " + fieldToGet.getField();
@@ -1 +1 @@
1
- {"version":3,"file":"position.js","sourceRoot":"","sources":["position.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"position.js","sourceRoot":"","sources":["position.ts"],"names":[],"mappings":"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"}
@@ -94,6 +94,23 @@ function testJsonSerialization() {
94
94
  return true;
95
95
  });
96
96
  }
97
+ test('test testTenorSerialization', () => __awaiter(void 0, void 0, void 0, function* () {
98
+ let isTrue = yield testTenorSerialization();
99
+ expect(isTrue).toBe(true);
100
+ }));
101
+ function testTenorSerialization() {
102
+ return __awaiter(this, void 0, void 0, function* () {
103
+ let { position, tenor } = getPosition(false);
104
+ console.log("tenor", tenor);
105
+ let tenorPosition = position.getFieldValue(field_pb_1.FieldProto.TENOR);
106
+ // tenorPosition is now a Tenor wrapper, not TenorProto
107
+ expect(tenorPosition.getTenorDescription()).toBe(tenor.getTermValue());
108
+ let tenorFieldDisplay = position.getFieldDisplay(new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.TENOR));
109
+ // The field display should be the Tenor wrapper's toString(), which returns something like "TERM: 3M"
110
+ expect(tenorFieldDisplay).toBe(tenorPosition.toString());
111
+ return true;
112
+ });
113
+ }
97
114
  function testSerialization() {
98
115
  var _a;
99
116
  return __awaiter(this, void 0, void 0, function* () {
@@ -101,7 +118,12 @@ function testSerialization() {
101
118
  let tradeDatePosition = position.getFieldValue(field_pb_1.FieldProto.TRADE_DATE);
102
119
  expect(tradeDate.getFullYear()).toBe(tradeDatePosition.getFullYear());
103
120
  expect(tradeDate.getMonth()).toBe(tradeDatePosition.getMonth());
104
- expect(tradeDate.getDay()).toBe(tradeDatePosition.getDay());
121
+ expect(tradeDate.getDate()).toBe(tradeDatePosition.getDate());
122
+ let tradeDateFieldDisplay = position.getFieldDisplay(new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.TRADE_DATE));
123
+ const year = tradeDate.getFullYear();
124
+ const month = String(tradeDate.getMonth() + 1).padStart(2, '0');
125
+ const day = String(tradeDate.getDate()).padStart(2, '0');
126
+ expect(tradeDateFieldDisplay).toBe(`${year}-${month}-${day}`);
105
127
  let securityPosition = position.getFieldValue(field_pb_1.FieldProto.SECURITY);
106
128
  expect(securityPosition.getAssetClass()).toBe(security.getAssetClass());
107
129
  let portfolioPosition = position.getFieldValue(field_pb_1.FieldProto.PORTFOLIO);
@@ -114,7 +136,7 @@ function testSerialization() {
114
136
  let price = position.getFieldValue(field_pb_1.FieldProto.PRICE);
115
137
  expect((_a = price.getPrice()) === null || _a === void 0 ? void 0 : _a.getArbitraryPrecisionValue()).toBe("1.0");
116
138
  let tenor = position.getFieldValue(field_pb_1.FieldProto.TENOR);
117
- expect(tenor.getTermValue()).toBe("3M");
139
+ expect(tenor.getTenorDescription()).toBe("3M");
118
140
  return true;
119
141
  });
120
142
  }
@@ -178,6 +200,6 @@ function getPosition(includeUnknownEnumValue) {
178
200
  new position_util_pb_1.MeasureMapEntry().setMeasure(measure).setMeasureDecimalValue(measureValue)
179
201
  ]);
180
202
  let position = new position_1.Position(positionProto);
181
- return { position, tradeDate, security, portfolio, productType, id };
203
+ return { position, tradeDate, security, portfolio, productType, id, tenor };
182
204
  }
183
205
  //# sourceMappingURL=position.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"position.test.js","sourceRoot":"","sources":["position.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"position.test.js","sourceRoot":"","sources":["position.test.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ import { TransactionTypeProto } from '../../../fintekkers/models/transaction/tra
16
16
  import { PriceProto } from '../../../fintekkers/models/price/price_pb';
17
17
  import { TenorProto } from '../../../fintekkers/models/security/tenor_pb';
18
18
  import { TenorTypeProto } from '../../../fintekkers/models/security/tenor_type_pb';
19
+ import { Tenor } from '../security/term';
19
20
 
20
21
  test('test the enum Serialization', async () => {
21
22
  let isTrue = await testEnumSerialization();
@@ -102,13 +103,40 @@ async function testJsonSerialization(): Promise<boolean> {
102
103
  }
103
104
 
104
105
 
106
+ test('test testTenorSerialization', async () => {
107
+ let isTrue = await testTenorSerialization();
108
+ expect(isTrue).toBe(true);
109
+ });
110
+
111
+ async function testTenorSerialization(): Promise<boolean> {
112
+ let { position, tenor } = getPosition(false);
113
+
114
+ console.log("tenor", tenor);
115
+ let tenorPosition = position.getFieldValue(FieldProto.TENOR);
116
+ // tenorPosition is now a Tenor wrapper, not TenorProto
117
+ expect(tenorPosition.getTenorDescription()).toBe(tenor.getTermValue());
118
+
119
+ let tenorFieldDisplay = position.getFieldDisplay(new FieldMapEntry().setField(FieldProto.TENOR));
120
+ // The field display should be the Tenor wrapper's toString(), which returns something like "TERM: 3M"
121
+ expect(tenorFieldDisplay).toBe(tenorPosition.toString());
122
+
123
+ return true;
124
+ }
125
+
126
+
105
127
  async function testSerialization(): Promise<boolean> {
106
128
  let { position, tradeDate, security, portfolio, productType, id } = getPosition(false);
107
129
 
108
130
  let tradeDatePosition = position.getFieldValue(FieldProto.TRADE_DATE);
109
131
  expect(tradeDate.getFullYear()).toBe(tradeDatePosition.getFullYear());
110
132
  expect(tradeDate.getMonth()).toBe(tradeDatePosition.getMonth());
111
- expect(tradeDate.getDay()).toBe(tradeDatePosition.getDay());
133
+ expect(tradeDate.getDate()).toBe(tradeDatePosition.getDate());
134
+
135
+ let tradeDateFieldDisplay = position.getFieldDisplay(new FieldMapEntry().setField(FieldProto.TRADE_DATE));
136
+ const year = tradeDate.getFullYear();
137
+ const month = String(tradeDate.getMonth() + 1).padStart(2, '0');
138
+ const day = String(tradeDate.getDate()).padStart(2, '0');
139
+ expect(tradeDateFieldDisplay).toBe(`${year}-${month}-${day}`);
112
140
 
113
141
  let securityPosition: SecurityProto = position.getFieldValue(FieldProto.SECURITY);
114
142
  expect(securityPosition.getAssetClass()).toBe(security.getAssetClass());
@@ -128,8 +156,8 @@ async function testSerialization(): Promise<boolean> {
128
156
  let price: PriceProto = position.getFieldValue(FieldProto.PRICE);
129
157
  expect(price.getPrice()?.getArbitraryPrecisionValue()).toBe("1.0");
130
158
 
131
- let tenor: TenorProto = position.getFieldValue(FieldProto.TENOR);
132
- expect(tenor.getTermValue()).toBe("3M");
159
+ let tenor = position.getFieldValue(FieldProto.TENOR);
160
+ expect(tenor.getTenorDescription()).toBe("3M");
133
161
 
134
162
  return true;
135
163
  }
@@ -206,5 +234,5 @@ function getPosition(includeUnknownEnumValue: boolean) {
206
234
  ]);
207
235
 
208
236
  let position = new Position(positionProto);
209
- return { position, tradeDate, security, portfolio, productType, id };
237
+ return { position, tradeDate, security, portfolio, productType, id, tenor };
210
238
  }
@@ -24,6 +24,8 @@ import { PortfolioProto } from "../../../fintekkers/models/portfolio/portfolio_p
24
24
  import { SecurityProto } from "../../../fintekkers/models/security/security_pb";
25
25
 
26
26
  import { StringValue } from 'google-protobuf/google/protobuf/wrappers_pb';
27
+ import { Tenor } from "../security/term";
28
+ import { Identifier } from "../security/identifier";
27
29
  export class Position {
28
30
  proto: PositionProto;
29
31
 
@@ -51,7 +53,7 @@ export class Position {
51
53
  return this.getField(new FieldMapEntry().setField(field));
52
54
  }
53
55
 
54
- public getField(fieldToGet: FieldMapEntry): string | ProtoEnum | Security | Portfolio | UUID | Date | ZonedDateTime | number | PriceProto {
56
+ public getField(fieldToGet: FieldMapEntry): string | ProtoEnum | Security | Identifier | Portfolio | UUID | Date | ZonedDateTime | number | PriceProto | Tenor {
55
57
  for (const tmpField of this.proto.getFieldsList()) {
56
58
  if (tmpField.getField() === fieldToGet.getField()) {
57
59
 
@@ -73,9 +75,19 @@ export class Position {
73
75
 
74
76
  const unpackedValue = Position.unpackField(tmpField);
75
77
 
76
- if (FieldProto.PRICE == fieldToGet.getField()
77
- || FieldProto.TENOR == fieldToGet.getField()) {
78
- return unpackedValue; //instanceof PriceProto || TenorProto
78
+ if (FieldProto.PRICE == fieldToGet.getField()) {
79
+ return unpackedValue; //instanceof PriceProto
80
+ }
81
+
82
+ if (FieldProto.TENOR == fieldToGet.getField()) {
83
+ const tenorProto = unpackedValue as TenorProto;
84
+ const tenorType = tenorProto.getTenorType();
85
+ const termValue = tenorProto.getTermValue();
86
+ if (termValue && termValue.length > 0) {
87
+ return new Tenor(tenorType, termValue);
88
+ } else {
89
+ return new Tenor(tenorType);
90
+ }
79
91
  }
80
92
 
81
93
  if (FieldProto.SECURITY == fieldToGet.getField()) {
@@ -86,7 +98,7 @@ export class Position {
86
98
  return new Portfolio(unpackedValue);
87
99
  }
88
100
 
89
- return ProtoSerializationUtil.deserialize(unpackedValue);
101
+ return ProtoSerializationUtil.deserialize(unpackedValue) as string | number | Identifier | Date | ZonedDateTime | UUID | ProtoEnum | Security | Tenor | Portfolio | PriceProto;
90
102
  }
91
103
  }
92
104
 
@@ -129,12 +141,17 @@ export class Position {
129
141
  } else if (value instanceof UUID) {
130
142
  return value.toString();
131
143
  } else if (value instanceof Date) {
132
- return `${value.getFullYear()}/${value.getMonth()}/${value.getDay()}`;
144
+ const year = value.getFullYear();
145
+ const month = String(value.getMonth() + 1).padStart(2, '0'); // getMonth() returns 0-11, so add 1
146
+ const day = String(value.getDate()).padStart(2, '0'); // getDate() returns day of month (1-31)
147
+ return `${year}-${month}-${day}`;
133
148
  } else if (value instanceof ZonedDateTime) {
134
149
  const tmpDateTime: DateTime = value.toDateTime();
135
150
  return tmpDateTime.toFormat('yyyy/MM/dd hh:mm:ss');
136
151
  } else if (value instanceof ProtoEnum) {
137
152
  return value.toString();
153
+ } else if (value instanceof Tenor) {
154
+ return value.toString();
138
155
  }
139
156
  break;
140
157
  default:
@@ -1,6 +1,7 @@
1
1
  import { FieldMapEntry, PositionFilterOperator } from '../../../fintekkers/models/position/position_util_pb';
2
2
  import { FieldProto } from '../../../fintekkers/models/position/field_pb';
3
3
  import { PositionFilterProto } from '../../../fintekkers/models/position/position_filter_pb';
4
+ import { Identifier } from '../security/identifier';
4
5
  export declare class PositionFilter {
5
6
  filters: FieldMapEntry[];
6
7
  constructor();
@@ -19,6 +20,7 @@ export declare class PositionFilter {
19
20
  * @param {*} fieldValue The appropriate value for the FieldProto, e.g. FieldProto.ASSET_CLASS would have a string fieldValue
20
21
  */
21
22
  addFilter(field: FieldProto, operator: PositionFilterOperator, fieldValue?: any, fieldValueString?: string): PositionFilter;
23
+ addObjectFilter(field: FieldProto, object: Identifier): PositionFilter;
22
24
  getFilters(): Array<FieldMapEntry>;
23
25
  toProto(): PositionFilterProto;
24
26
  }
@@ -46,6 +46,15 @@ class PositionFilter {
46
46
  this.filters.push(fieldMapEntry);
47
47
  return this;
48
48
  }
49
+ //TODO: Add support for other objects
50
+ addObjectFilter(field, object) {
51
+ const fieldMapEntry = new position_util_pb_1.FieldMapEntry();
52
+ fieldMapEntry.setField(field);
53
+ fieldMapEntry.setOperator(position_util_pb_1.PositionFilterOperator.EQUALS);
54
+ fieldMapEntry.setFieldValuePacked((0, serialization_util_1.pack)(object));
55
+ this.filters.push(fieldMapEntry);
56
+ return this;
57
+ }
49
58
  getFilters() {
50
59
  return this.filters;
51
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"positionfilter.js","sourceRoot":"","sources":["positionfilter.ts"],"names":[],"mappings":";;;AAAA,2FAA6G;AAE7G,oEAAmD;AACnD,+FAA6F;AAE7F,MAAa,cAAc;IAGvB;QACI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,qBAAqB,CAAC,KAAiB,EAAE,gBAAwB;QAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,yCAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACxF,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,KAAiB,EAAE,UAAe;QAC9C,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAoB,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,yCAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACvF,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,KAAiB,EAAE,QAAgC,EAAE,UAAgB,EAAE,gBAAyB;QACtG,MAAM,aAAa,GAAG,IAAI,gCAAa,EAAE,CAAC;QAC1C,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,0BAA0B;QACzD,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEpC,IAAI,gBAAgB;YAChB,aAAa,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;aAC9C,IAAI,UAAU,EAAE,CAAC;YAClB,aAAa,CAAC,mBAAmB,CAAC,IAAA,yBAAI,EAAC,UAAU,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,OAAO;QACH,MAAM,mBAAmB,GAAG,IAAI,wCAAmB,EAAE,CAAC;QACtD,mBAAmB,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACrD,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxC,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,OAAO,mBAAmB,CAAC;IAC/B,CAAC;CACJ;AA5DD,wCA4DC"}
1
+ {"version":3,"file":"positionfilter.js","sourceRoot":"","sources":["positionfilter.ts"],"names":[],"mappings":";;;AAAA,2FAA6G;AAE7G,oEAAmD;AACnD,+FAA6F;AAG7F,MAAa,cAAc;IAGvB;QACI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,qBAAqB,CAAC,KAAiB,EAAE,gBAAwB;QAC7D,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,yCAAsB,CAAC,MAAM,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;IACxF,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,KAAiB,EAAE,UAAe;QAC9C,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAoB,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACJ,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,yCAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACvF,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,KAAiB,EAAE,QAAgC,EAAE,UAAgB,EAAE,gBAAyB;QACtG,MAAM,aAAa,GAAG,IAAI,gCAAa,EAAE,CAAC;QAC1C,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,0BAA0B;QACzD,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAEpC,IAAI,gBAAgB;YAChB,aAAa,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;aAC9C,IAAI,UAAU,EAAE,CAAC;YAClB,aAAa,CAAC,mBAAmB,CAAC,IAAA,yBAAI,EAAC,UAAU,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,qCAAqC;IACrC,eAAe,CAAC,KAAiB,EAAE,MAAkB;QACjD,MAAM,aAAa,GAAG,IAAI,gCAAa,EAAE,CAAC;QAC1C,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9B,aAAa,CAAC,WAAW,CAAC,yCAAsB,CAAC,MAAM,CAAC,CAAC;QACzD,aAAa,CAAC,mBAAmB,CAAC,IAAA,yBAAI,EAAC,MAAM,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,OAAO;QACH,MAAM,mBAAmB,GAAG,IAAI,wCAAmB,EAAE,CAAC;QACtD,mBAAmB,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QACrD,mBAAmB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxC,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,OAAO,mBAAmB,CAAC;IAC/B,CAAC;CACJ;AAtED,wCAsEC"}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assert = require("assert");
4
+ const positionfilter_1 = require("./positionfilter");
5
+ const field_pb_1 = require("../../../fintekkers/models/position/field_pb");
6
+ const position_util_pb_1 = require("../../../fintekkers/models/position/position_util_pb");
7
+ const identifier_1 = require("../security/identifier");
8
+ const identifier_pb_1 = require("../../../fintekkers/models/security/identifier/identifier_pb");
9
+ const identifier_type_pb_1 = require("../../../fintekkers/models/security/identifier/identifier_type_pb");
10
+ const serialization_util_1 = require("../utils/serialization.util");
11
+ test('test PositionFilter.addEqualsStringFilter adds string filter', () => {
12
+ testAddEqualsStringFilter();
13
+ });
14
+ test('test PositionFilter.addEqualsFilter with string', () => {
15
+ testAddEqualsFilterWithString();
16
+ });
17
+ test('test PositionFilter.addFilter with string value', () => {
18
+ testAddFilterWithString();
19
+ });
20
+ test('test PositionFilter.addObjectFilter adds Identifier filter', () => {
21
+ testAddObjectFilter();
22
+ });
23
+ test('test PositionFilter method chaining', () => {
24
+ testMethodChaining();
25
+ });
26
+ test('test PositionFilter.getFilters returns all filters', () => {
27
+ testGetFilters();
28
+ });
29
+ test('test PositionFilter.toProto creates PositionFilterProto', () => {
30
+ testToProto();
31
+ });
32
+ test('test PositionFilter.addFilter throws error when no value provided', () => {
33
+ testAddFilterThrowsError();
34
+ });
35
+ function testAddEqualsStringFilter() {
36
+ const filter = new positionfilter_1.PositionFilter();
37
+ filter.addEqualsStringFilter(field_pb_1.FieldProto.ASSET_CLASS, 'FixedIncome');
38
+ const filters = filter.getFilters();
39
+ assert(filters.length === 1, 'Should have one filter');
40
+ const fieldEntry = filters[0];
41
+ assert(fieldEntry.getField() === field_pb_1.FieldProto.ASSET_CLASS, 'Field should be ASSET_CLASS');
42
+ assert(fieldEntry.getOperator() === position_util_pb_1.PositionFilterOperator.EQUALS, 'Operator should be EQUALS');
43
+ assert(fieldEntry.getStringValue() === 'FixedIncome', 'String value should be "FixedIncome"');
44
+ }
45
+ function testAddEqualsFilterWithString() {
46
+ const filter = new positionfilter_1.PositionFilter();
47
+ filter.addEqualsFilter(field_pb_1.FieldProto.PRODUCT_TYPE, 'Bond');
48
+ const filters = filter.getFilters();
49
+ assert(filters.length === 1, 'Should have one filter');
50
+ const fieldEntry = filters[0];
51
+ assert(fieldEntry.getField() === field_pb_1.FieldProto.PRODUCT_TYPE, 'Field should be PRODUCT_TYPE');
52
+ assert(fieldEntry.getOperator() === position_util_pb_1.PositionFilterOperator.EQUALS, 'Operator should be EQUALS');
53
+ assert(fieldEntry.getStringValue() === 'Bond', 'String value should be "Bond"');
54
+ }
55
+ function testAddFilterWithString() {
56
+ const filter = new positionfilter_1.PositionFilter();
57
+ filter.addFilter(field_pb_1.FieldProto.SECURITY_DESCRIPTION, position_util_pb_1.PositionFilterOperator.EQUALS, null, 'Test Security');
58
+ const filters = filter.getFilters();
59
+ assert(filters.length === 1, 'Should have one filter');
60
+ const fieldEntry = filters[0];
61
+ assert(fieldEntry.getField() === field_pb_1.FieldProto.SECURITY_DESCRIPTION, 'Field should be SECURITY_DESCRIPTION');
62
+ assert(fieldEntry.getOperator() === position_util_pb_1.PositionFilterOperator.EQUALS, 'Operator should be EQUALS');
63
+ assert(fieldEntry.getStringValue() === 'Test Security', 'String value should be "Test Security"');
64
+ }
65
+ function testAddObjectFilter() {
66
+ const identifierProto = new identifier_pb_1.IdentifierProto();
67
+ identifierProto.setIdentifierType(identifier_type_pb_1.IdentifierTypeProto.ISIN);
68
+ identifierProto.setIdentifierValue('US0378331005');
69
+ const identifier = new identifier_1.Identifier(identifierProto);
70
+ const filter = new positionfilter_1.PositionFilter();
71
+ // Test addObjectFilter method which specifically handles Identifier objects
72
+ filter.addObjectFilter(field_pb_1.FieldProto.IDENTIFIER, identifier);
73
+ const filters = filter.getFilters();
74
+ assert(filters.length === 1, 'Should have one filter');
75
+ const fieldEntry = filters[0];
76
+ assert(fieldEntry.getField() === field_pb_1.FieldProto.IDENTIFIER, 'Field should be IDENTIFIER');
77
+ assert(fieldEntry.getOperator() === position_util_pb_1.PositionFilterOperator.EQUALS, 'Operator should be EQUALS');
78
+ let a = fieldEntry.getFieldValuePacked();
79
+ let b = (0, serialization_util_1.unpack)(a);
80
+ assert(b.toString() === identifier.toString(), 'Identifier should be the same');
81
+ // const packedValue = fieldEntry.getFieldValuePacked();
82
+ // assert(packedValue !== null && packedValue !== undefined, 'Should have packed value');
83
+ // assert(packedValue.getTypeUrl().includes('IdentifierProto'), 'Type URL should include IdentifierProto');
84
+ }
85
+ function testMethodChaining() {
86
+ const filter = new positionfilter_1.PositionFilter();
87
+ const result = filter
88
+ .addEqualsStringFilter(field_pb_1.FieldProto.ASSET_CLASS, 'Equity')
89
+ .addEqualsStringFilter(field_pb_1.FieldProto.PRODUCT_TYPE, 'Stock')
90
+ .addEqualsFilter(field_pb_1.FieldProto.SECURITY_DESCRIPTION, 'Apple Inc.');
91
+ assert(result === filter, 'Should return the same instance for chaining');
92
+ const filters = filter.getFilters();
93
+ assert(filters.length === 3, 'Should have three filters');
94
+ assert(filters[0].getField() === field_pb_1.FieldProto.ASSET_CLASS, 'First filter should be ASSET_CLASS');
95
+ assert(filters[1].getField() === field_pb_1.FieldProto.PRODUCT_TYPE, 'Second filter should be PRODUCT_TYPE');
96
+ assert(filters[2].getField() === field_pb_1.FieldProto.SECURITY_DESCRIPTION, 'Third filter should be SECURITY_DESCRIPTION');
97
+ }
98
+ function testGetFilters() {
99
+ const filter = new positionfilter_1.PositionFilter();
100
+ filter.addEqualsStringFilter(field_pb_1.FieldProto.ASSET_CLASS, 'FixedIncome');
101
+ filter.addEqualsStringFilter(field_pb_1.FieldProto.PRODUCT_TYPE, 'Bond');
102
+ const filters = filter.getFilters();
103
+ assert(Array.isArray(filters), 'Should return an array');
104
+ assert(filters.length === 2, 'Should return two filters');
105
+ assert(filters[0].getField() === field_pb_1.FieldProto.ASSET_CLASS, 'First filter should be ASSET_CLASS');
106
+ assert(filters[1].getField() === field_pb_1.FieldProto.PRODUCT_TYPE, 'Second filter should be PRODUCT_TYPE');
107
+ }
108
+ function testToProto() {
109
+ const filter = new positionfilter_1.PositionFilter();
110
+ filter.addEqualsStringFilter(field_pb_1.FieldProto.ASSET_CLASS, 'FixedIncome');
111
+ filter.addEqualsStringFilter(field_pb_1.FieldProto.PRODUCT_TYPE, 'Bond');
112
+ const proto = filter.toProto();
113
+ assert(proto !== null && proto !== undefined, 'Should return a PositionFilterProto');
114
+ assert(proto.getObjectClass() === 'PositionFilter', 'Object class should be "PositionFilter"');
115
+ assert(proto.getVersion() === '0.0.1', 'Version should be "0.0.1"');
116
+ const filtersList = proto.getFiltersList();
117
+ assert(filtersList.length === 2, 'Should have two filters in proto');
118
+ assert(filtersList[0].getField() === field_pb_1.FieldProto.ASSET_CLASS, 'First filter should be ASSET_CLASS');
119
+ assert(filtersList[1].getField() === field_pb_1.FieldProto.PRODUCT_TYPE, 'Second filter should be PRODUCT_TYPE');
120
+ }
121
+ function testAddFilterThrowsError() {
122
+ const filter = new positionfilter_1.PositionFilter();
123
+ try {
124
+ filter.addFilter(field_pb_1.FieldProto.ASSET_CLASS, position_util_pb_1.PositionFilterOperator.EQUALS);
125
+ assert(false, 'Should have thrown an error');
126
+ }
127
+ catch (error) {
128
+ assert(error instanceof Error, 'Should throw Error');
129
+ assert(error.message.includes('Need to provide a string, or object'), 'Error message should mention providing a value');
130
+ }
131
+ }
132
+ //# sourceMappingURL=positionfilter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"positionfilter.test.js","sourceRoot":"","sources":["positionfilter.test.ts"],"names":[],"mappings":"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"}