@fintekkers/ledger-models 0.1.68 → 0.1.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node/wrappers/models/portfolio/portfolio.js.map +1 -1
- package/node/wrappers/models/position/position.js +121 -99
- package/node/wrappers/models/position/position.js.map +1 -1
- package/node/wrappers/models/position/position.test.js +74 -6
- package/node/wrappers/models/position/position.test.js.map +1 -1
- package/node/wrappers/models/position/position.test.ts +43 -9
- package/node/wrappers/models/position/position.ts +151 -127
- package/node/wrappers/models/security/security.js +3 -2
- package/node/wrappers/models/security/security.js.map +1 -1
- package/node/wrappers/models/security/security.ts +3 -2
- package/node/wrappers/models/transaction/transaction.js +5 -3
- package/node/wrappers/models/transaction/transaction.js.map +1 -1
- package/node/wrappers/models/transaction/transaction.ts +9 -3
- package/node/wrappers/models/transaction/transaction_type.js.map +1 -1
- package/node/wrappers/models/utils/date.js +5 -1
- package/node/wrappers/models/utils/date.js.map +1 -1
- package/node/wrappers/models/utils/date.ts +5 -1
- package/node/wrappers/models/utils/requestcontext.js.map +1 -1
- package/node/wrappers/models/utils/serialization.js.map +1 -1
- package/node/wrappers/models/utils/serialization.test.js.map +1 -1
- package/node/wrappers/models/utils/serialization.test.ts +1 -1
- package/node/wrappers/models/utils/serialization.util.js.map +1 -1
- package/node/wrappers/services/position-service/PositionService.js +4 -3
- package/node/wrappers/services/position-service/PositionService.js.map +1 -1
- package/node/wrappers/services/position-service/PositionService.ts +11 -11
- package/node/wrappers/services/position-service/position.test.js +15 -19
- package/node/wrappers/services/position-service/position.test.js.map +1 -1
- package/node/wrappers/services/position-service/position.test.ts +20 -18
- package/node/wrappers/services/security-service/security.maturityLadder.test.js +19 -10
- package/node/wrappers/services/security-service/security.maturityLadder.test.js.map +1 -1
- package/node/wrappers/services/security-service/security.maturityLadder.test.ts +18 -19
- package/node/wrappers/services/transaction-service/transaction.search.test.js +87 -0
- package/node/wrappers/services/transaction-service/transaction.search.test.js.map +1 -0
- package/node/wrappers/services/transaction-service/transaction.search.test.ts +55 -0
- package/node/wrappers/services/transaction-service/transaction.test.js +75 -30
- package/node/wrappers/services/transaction-service/transaction.test.js.map +1 -1
- package/node/wrappers/services/transaction-service/transaction.test.ts +61 -34
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portfolio.js","sourceRoot":"","sources":["portfolio.ts"],"names":[],"mappings":";;AACA,yEAA0E;AAC1E,8CAAkD;AAClD,sCAAqC;AAErC;IAGI,mBAAY,KAAqB;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,+BAA+B;IAC/B,yBAAyB;IACzB,IAAI;IAEJ,yBAAK,GAAL;QACI,OAAO,WAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,2BAAO,GAAP;QACI,OAAO,IAAI,wBAAa,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,oCAAgB,GAAhB;QACI,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;IACzC,CAAC;IAED,6BAAS,GAAT;QACI,OAAO,CAAC,qBAAU,CAAC,EAAE,EAAE,qBAAU,CAAC,SAAS,EAAE,qBAAU,CAAC,YAAY,EAAE,qBAAU,CAAC,cAAc,CAAC,CAAC;IACrG,CAAC;IAED,4BAAQ,GAAR,UAAS,KAAiB;QACtB,QAAQ,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"portfolio.js","sourceRoot":"","sources":["portfolio.ts"],"names":[],"mappings":";;AACA,yEAA0E;AAC1E,8CAAkD;AAClD,sCAAqC;AAErC;IAGI,mBAAY,KAAqB;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,+BAA+B;IAC/B,yBAAyB;IACzB,IAAI;IAEJ,yBAAK,GAAL;QACI,OAAO,WAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,2BAAO,GAAP;QACI,OAAO,IAAI,wBAAa,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,oCAAgB,GAAhB;QACI,OAAO,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC;IACzC,CAAC;IAED,6BAAS,GAAT;QACI,OAAO,CAAC,qBAAU,CAAC,EAAE,EAAE,qBAAU,CAAC,SAAS,EAAE,qBAAU,CAAC,YAAY,EAAE,qBAAU,CAAC,cAAc,CAAC,CAAC;IACrG,CAAC;IAED,4BAAQ,GAAR,UAAS,KAAiB;QACtB,QAAQ,KAAK,EAAE,CAAC;YACZ,KAAK,qBAAU,CAAC,EAAE,CAAC;YACnB,KAAK,qBAAU,CAAC,YAAY;gBACxB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;YACxB,KAAK,qBAAU,CAAC,KAAK;gBACjB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,KAAK,qBAAU,CAAC,cAAc;gBAC1B,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACnC;gBACI,MAAM,IAAI,KAAK,CAAC,iDAA0C,KAAK,CAAE,CAAC,CAAC;QAC3E,CAAC;IACL,CAAC;IACL,gBAAC;AAAD,CAAC,AAxCD,IAwCC;AAGD,kBAAe,SAAS,CAAC"}
|
|
@@ -1,108 +1,130 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// Note: Some classes and functions have been omitted or simplified due to lack of context.
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Position = void 0;
|
|
5
|
+
var field_pb_1 = require("../../../fintekkers/models/position/field_pb");
|
|
6
|
+
var position_util_pb_1 = require("../../../fintekkers/models/position/position_util_pb");
|
|
7
|
+
var uuid_pb_1 = require("../../../fintekkers/models/util/uuid_pb");
|
|
8
|
+
var local_timestamp_pb_1 = require("../../../fintekkers/models/util/local_timestamp_pb");
|
|
9
|
+
var local_date_pb_1 = require("../../../fintekkers/models/util/local_date_pb");
|
|
10
|
+
var identifier_pb_1 = require("../../../fintekkers/models/security/identifier/identifier_pb");
|
|
11
|
+
var measure_pb_1 = require("../../../fintekkers/models/position/measure_pb");
|
|
12
|
+
var serialization_1 = require("../utils/serialization");
|
|
13
|
+
var security_pb_1 = require("../../../fintekkers/models/security/security_pb");
|
|
14
|
+
var portfolio_pb_1 = require("../../../fintekkers/models/portfolio/portfolio_pb");
|
|
15
|
+
var wrappers_pb_1 = require("google-protobuf/google/protobuf/wrappers_pb");
|
|
4
16
|
var Position = /** @class */ (function () {
|
|
5
17
|
function Position(positionProto) {
|
|
6
|
-
this.
|
|
7
|
-
//For each field, put into a map
|
|
8
|
-
this.
|
|
9
|
-
|
|
10
|
-
});
|
|
18
|
+
this.proto = positionProto;
|
|
19
|
+
// //For each field, put into a map
|
|
20
|
+
// this.proto.getFieldsList().forEach(field => {
|
|
21
|
+
// console.log(field);
|
|
22
|
+
// });
|
|
11
23
|
}
|
|
24
|
+
Position.prototype.getFieldValue = function (field) {
|
|
25
|
+
return this.getField(new position_util_pb_1.FieldMapEntry().setField(field));
|
|
26
|
+
};
|
|
27
|
+
Position.prototype.getField = function (fieldToGet) {
|
|
28
|
+
for (var _i = 0, _a = this.proto.getFieldsList(); _i < _a.length; _i++) {
|
|
29
|
+
var tmpField = _a[_i];
|
|
30
|
+
if (tmpField.getField() === fieldToGet.getField()) {
|
|
31
|
+
var unpackedValue = Position.unpackField(tmpField);
|
|
32
|
+
if (unpackedValue.type === "enum") {
|
|
33
|
+
throw new Error("Doh");
|
|
34
|
+
// const descriptor = FieldProto.DESCRIPTOR.valuesByNumber[fieldToGet.field];
|
|
35
|
+
// return new ProtoEnum(descriptor, unpackedValue.enumValue);
|
|
36
|
+
}
|
|
37
|
+
if (typeof unpackedValue === "string" || typeof unpackedValue === "number") {
|
|
38
|
+
return unpackedValue;
|
|
39
|
+
}
|
|
40
|
+
return serialization_1.ProtoSerializationUtil.deserialize(unpackedValue);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
throw new Error("Could not find field in position");
|
|
44
|
+
};
|
|
45
|
+
Position.prototype.getMeasureValue = function (measure) {
|
|
46
|
+
return this.getMeasure(new position_util_pb_1.MeasureMapEntry().setMeasure(measure));
|
|
47
|
+
};
|
|
48
|
+
Position.prototype.getMeasure = function (measureToGet) {
|
|
49
|
+
for (var _i = 0, _a = this.proto.getMeasuresList(); _i < _a.length; _i++) {
|
|
50
|
+
var tmpMeasure = _a[_i];
|
|
51
|
+
if (tmpMeasure.getMeasure() === measureToGet.getMeasure()) {
|
|
52
|
+
return serialization_1.ProtoSerializationUtil.deserialize(tmpMeasure.getMeasureDecimalValue());
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
throw new Error("Could not find measure in position");
|
|
56
|
+
};
|
|
57
|
+
Position.prototype.getFieldDisplay = function (fieldToGet) {
|
|
58
|
+
var fieldValue = this.getField(fieldToGet);
|
|
59
|
+
return fieldValue.toString();
|
|
60
|
+
};
|
|
61
|
+
Position.prototype.getMeasures = function () {
|
|
62
|
+
return this.proto.getMeasuresList();
|
|
63
|
+
};
|
|
64
|
+
Position.prototype.getFields = function () {
|
|
65
|
+
return this.proto.getFieldsList();
|
|
66
|
+
};
|
|
67
|
+
Position.prototype.toString = function () {
|
|
68
|
+
var output = "";
|
|
69
|
+
for (var _i = 0, _a = this.getFields(); _i < _a.length; _i++) {
|
|
70
|
+
var field = _a[_i];
|
|
71
|
+
output += "".concat(field_pb_1.FieldProto[field.getField()], ",");
|
|
72
|
+
output += "".concat(this.getFieldDisplay(field), ";");
|
|
73
|
+
}
|
|
74
|
+
for (var _b = 0, _c = this.getMeasures(); _b < _c.length; _b++) {
|
|
75
|
+
var measure = _c[_b];
|
|
76
|
+
output += "".concat(measure_pb_1.MeasureProto[measure.getMeasure()], ",");
|
|
77
|
+
var tmp = this.getMeasure(measure);
|
|
78
|
+
output += "".concat(tmp.toString(), ";");
|
|
79
|
+
}
|
|
80
|
+
return output;
|
|
81
|
+
};
|
|
82
|
+
// private static wrapStringToAny(myString: string): Any {
|
|
83
|
+
// const myAny = new Any();
|
|
84
|
+
// myAny.pack(wrappers.StringValue.create({ value: myString }));
|
|
85
|
+
// return myAny;
|
|
86
|
+
// }
|
|
87
|
+
// private static packField(fieldToPack: any): Any {
|
|
88
|
+
// const myAny = new Any();
|
|
89
|
+
// myAny.pack(fieldToPack);
|
|
90
|
+
// return myAny;
|
|
91
|
+
// }
|
|
92
|
+
Position.unpackField = function (fieldToUnpack) {
|
|
93
|
+
switch (fieldToUnpack.getField()) {
|
|
94
|
+
case field_pb_1.FieldProto.PORTFOLIO_ID:
|
|
95
|
+
case field_pb_1.FieldProto.SECURITY_ID:
|
|
96
|
+
case field_pb_1.FieldProto.ID:
|
|
97
|
+
return uuid_pb_1.UUIDProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
98
|
+
case field_pb_1.FieldProto.AS_OF:
|
|
99
|
+
return local_timestamp_pb_1.LocalTimestampProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
100
|
+
case field_pb_1.FieldProto.TRADE_DATE:
|
|
101
|
+
case field_pb_1.FieldProto.MATURITY_DATE:
|
|
102
|
+
case field_pb_1.FieldProto.ISSUE_DATE:
|
|
103
|
+
case field_pb_1.FieldProto.SETTLEMENT_DATE:
|
|
104
|
+
case field_pb_1.FieldProto.TAX_LOT_OPEN_DATE:
|
|
105
|
+
case field_pb_1.FieldProto.TAX_LOT_CLOSE_DATE:
|
|
106
|
+
return local_date_pb_1.LocalDateProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
107
|
+
case field_pb_1.FieldProto.IDENTIFIER:
|
|
108
|
+
return identifier_pb_1.IdentifierProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
109
|
+
case field_pb_1.FieldProto.TRANSACTION_TYPE:
|
|
110
|
+
case field_pb_1.FieldProto.POSITION_STATUS:
|
|
111
|
+
// Assuming ProtoEnum is properly defined elsewhere
|
|
112
|
+
// const descriptor = FieldProto.DESCRIPTOR.valuesByNumber[fieldToUnpack.field];
|
|
113
|
+
return null; //new ProtoEnum(descriptor, fieldToUnpack.enumValue);
|
|
114
|
+
case field_pb_1.FieldProto.PORTFOLIO_NAME:
|
|
115
|
+
case field_pb_1.FieldProto.SECURITY_DESCRIPTION:
|
|
116
|
+
case field_pb_1.FieldProto.PRODUCT_TYPE:
|
|
117
|
+
case field_pb_1.FieldProto.ASSET_CLASS:
|
|
118
|
+
return wrappers_pb_1.StringValue.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
119
|
+
case field_pb_1.FieldProto.PORTFOLIO:
|
|
120
|
+
return portfolio_pb_1.PortfolioProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
121
|
+
case field_pb_1.FieldProto.SECURITY:
|
|
122
|
+
return security_pb_1.SecurityProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
|
|
123
|
+
default:
|
|
124
|
+
throw new Error("Field not found. Could not unpack ".concat(field_pb_1.FieldProto[fieldToUnpack.getField()]));
|
|
125
|
+
}
|
|
126
|
+
};
|
|
12
127
|
return Position;
|
|
13
128
|
}());
|
|
14
|
-
|
|
15
|
-
// this.positionProto.getFieldsList()
|
|
16
|
-
// return this.get_field(new FieldMapEntry({ field }));
|
|
17
|
-
// }
|
|
18
|
-
// get_field(field_to_get: FieldMapEntry): any {
|
|
19
|
-
// for (const tmp_field of this.positionProto.fields) {
|
|
20
|
-
// if (tmp_field.field === field_to_get.field) {
|
|
21
|
-
// if (FieldProto.PORTFOLIO === field_to_get.field) {
|
|
22
|
-
// return new Portfolio(Position.unpack_field(tmp_field));
|
|
23
|
-
// }
|
|
24
|
-
// if (FieldProto.SECURITY === field_to_get.field) {
|
|
25
|
-
// return new Security(Position.unpack_field(tmp_field));
|
|
26
|
-
// }
|
|
27
|
-
// const unpacked_value = Position.unpack_field(tmp_field);
|
|
28
|
-
// if (unpacked_value instanceof ProtoEnum) {
|
|
29
|
-
// const descriptor = FieldProto.DESCRIPTOR.valuesByNumber[field_to_get.field];
|
|
30
|
-
// return new ProtoEnum(descriptor, unpacked_value.enumValue);
|
|
31
|
-
// }
|
|
32
|
-
// if (
|
|
33
|
-
// typeof unpacked_value === 'string' ||
|
|
34
|
-
// typeof unpacked_value === 'number' ||
|
|
35
|
-
// typeof unpacked_value === 'boolean'
|
|
36
|
-
// ) {
|
|
37
|
-
// return unpacked_value;
|
|
38
|
-
// }
|
|
39
|
-
// return ProtoSerializationUtil.deserialize(unpacked_value);
|
|
40
|
-
// }
|
|
41
|
-
// }
|
|
42
|
-
// throw new Error('Could not find field in position');
|
|
43
|
-
// }
|
|
44
|
-
// get_measure_value(measure: MeasureProto): Decimal {
|
|
45
|
-
// return this.get_measure(new MeasureMapEntry({ measure }));
|
|
46
|
-
// }
|
|
47
|
-
// get_measure(measure_to_get: MeasureMapEntry): Decimal {
|
|
48
|
-
// for (const tmp_measure of this.positionProto.measures) {
|
|
49
|
-
// if (tmp_measure.measure === measure_to_get.measure) {
|
|
50
|
-
// return ProtoSerializationUtil.deserialize(Position.unpack_measure(tmp_measure));
|
|
51
|
-
// }
|
|
52
|
-
// }
|
|
53
|
-
// throw new Error('Could not find measure in position');
|
|
54
|
-
// }
|
|
55
|
-
// get_field_display(field_to_get: FieldMapEntry): string {
|
|
56
|
-
// const field_value = this.get_field(new FieldMapEntry(field_to_get));
|
|
57
|
-
// return field_value.toString();
|
|
58
|
-
// }
|
|
59
|
-
// get_measures(): MeasureMapEntry[] {
|
|
60
|
-
// return this.positionProto.measures;
|
|
61
|
-
// }
|
|
62
|
-
// get_fields(): FieldMapEntry[] {
|
|
63
|
-
// return this.positionProto.fields;
|
|
64
|
-
// }
|
|
65
|
-
// toString(): string {
|
|
66
|
-
// const out: string[] = [];
|
|
67
|
-
// for (const field of this.get_fields()) {
|
|
68
|
-
// out.push(FieldProto.Name(field.field));
|
|
69
|
-
// out.push(',');
|
|
70
|
-
// out.push(this.get_field_display(field.field));
|
|
71
|
-
// out.push(';');
|
|
72
|
-
// }
|
|
73
|
-
// for (const measure of this.get_measures()) {
|
|
74
|
-
// out.push(MeasureProto.Name(measure.measure));
|
|
75
|
-
// out.push(',');
|
|
76
|
-
// const tmp: Decimal = this.get_measure(measure.measure);
|
|
77
|
-
// out.push(tmp.toString());
|
|
78
|
-
// out.push(';');
|
|
79
|
-
// }
|
|
80
|
-
// return out.join('');
|
|
81
|
-
// }
|
|
82
|
-
// static wrap_string_to_any(my_string: string): Any {
|
|
83
|
-
// const my_any = new Any();
|
|
84
|
-
// my_any.pack(new wrappers.StringValue({ value: my_string }));
|
|
85
|
-
// return my_any;
|
|
86
|
-
// }
|
|
87
|
-
// static pack_field(field_to_pack: any): Any {
|
|
88
|
-
// if (field_to_pack instanceof LocalDateProto) {
|
|
89
|
-
// const my_any = new Any();
|
|
90
|
-
// my_any.pack(field_to_pack);
|
|
91
|
-
// return my_any;
|
|
92
|
-
// }
|
|
93
|
-
// // Handle other cases as needed
|
|
94
|
-
// return null;
|
|
95
|
-
// }
|
|
96
|
-
// static unpack_field(field_to_unpack: FieldMapEntry): any {
|
|
97
|
-
// // Implement the unpack_field function to convert field_to_unpack to TypeScript equivalent.
|
|
98
|
-
// // This involves handling various field types and unwrapping values.
|
|
99
|
-
// throw new Error('Not implemented yet');
|
|
100
|
-
// }
|
|
101
|
-
// // Define the class for ProtoEnum, and implement unpack_measure similarly to unpack_field.
|
|
102
|
-
// }
|
|
103
|
-
// // The following imports should be included in the TypeScript code as needed:
|
|
104
|
-
// // - FieldProto, MeasureProto, PositionProto, FieldMapEntry, MeasureMapEntry, PortfolioProto
|
|
105
|
-
// // - SecurityProto, IdentifierProto, LocalDateProto, LocalTimestampProto, UUIDProto
|
|
106
|
-
// // - ProtoSerializationUtil, ProtoEnum, wrappers_pb2, Any, Decimal, StringIO
|
|
107
|
-
// // - Implement missing classes and functions as needed.
|
|
129
|
+
exports.Position = Position;
|
|
108
130
|
//# sourceMappingURL=position.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.js","sourceRoot":"","sources":["position.ts"],"names":[],"mappings":";AAAA,2FAA2F
|
|
1
|
+
{"version":3,"file":"position.js","sourceRoot":"","sources":["position.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,83 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
2
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
var local_date_pb_1 = require("../../../fintekkers/models/util/local_date_pb");
|
|
40
|
+
var serialization_1 = require("../utils/serialization");
|
|
41
|
+
var uuid_1 = require("../utils/uuid");
|
|
42
|
+
var any_pb_1 = require("google-protobuf/google/protobuf/any_pb");
|
|
43
|
+
var decimal_value_pb_1 = require("../../../fintekkers/models/util/decimal_value_pb");
|
|
3
44
|
var position_pb_1 = require("../../../fintekkers/models/position/position_pb");
|
|
4
45
|
var position_util_pb_1 = require("../../../fintekkers/models/position/position_util_pb");
|
|
5
46
|
var field_pb_1 = require("../../../fintekkers/models/position/field_pb");
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
47
|
+
var measure_pb_1 = require("../../../fintekkers/models/position/measure_pb");
|
|
48
|
+
var security_pb_1 = require("../../../fintekkers/models/security/security_pb");
|
|
49
|
+
var portfolio_pb_1 = require("../../../fintekkers/models/portfolio/portfolio_pb");
|
|
50
|
+
var hardcoded_position_1 = require("./hardcoded.position");
|
|
51
|
+
test('test the position wrapper', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
52
|
+
return __generator(this, function (_a) {
|
|
53
|
+
return [2 /*return*/];
|
|
54
|
+
});
|
|
55
|
+
}); });
|
|
9
56
|
function testSerialization() {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
57
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
58
|
+
var fields, security, portfolio, tradeDate, productType, id, measure, measureValue, anyMessage, typeUrl, binaryMessage, positionProto, position;
|
|
59
|
+
return __generator(this, function (_a) {
|
|
60
|
+
fields = [field_pb_1.FieldProto.ID, field_pb_1.FieldProto.TRADE_DATE, field_pb_1.FieldProto.PRODUCT_TYPE, field_pb_1.FieldProto.PORTFOLIO, field_pb_1.FieldProto.SECURITY];
|
|
61
|
+
security = new security_pb_1.SecurityProto().setAssetClass("Test");
|
|
62
|
+
portfolio = new portfolio_pb_1.PortfolioProto().setPortfolioName("Test portfolio");
|
|
63
|
+
tradeDate = new local_date_pb_1.LocalDateProto().setDay(3).setMonth(1).setYear(2024);
|
|
64
|
+
productType = "Test product type";
|
|
65
|
+
id = new uuid_1.UUID(uuid_1.UUID.random().toBytes());
|
|
66
|
+
measure = measure_pb_1.MeasureProto.DIRECTED_QUANTITY;
|
|
67
|
+
measureValue = new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue("1.0");
|
|
68
|
+
serialization_1.ProtoSerializationUtil.serialize;
|
|
69
|
+
anyMessage = new any_pb_1.Any();
|
|
70
|
+
typeUrl = "Doesn't matter?";
|
|
71
|
+
binaryMessage = security.serializeBinary();
|
|
72
|
+
anyMessage.setTypeUrl(typeUrl);
|
|
73
|
+
anyMessage.setValue(binaryMessage);
|
|
74
|
+
positionProto = new position_pb_1.PositionProto();
|
|
75
|
+
positionProto.addFields(new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.SECURITY).setFieldValuePacked(anyMessage));
|
|
76
|
+
position = new hardcoded_position_1.Position(positionProto);
|
|
77
|
+
position.getFieldValue(field_pb_1.FieldProto.SECURITY);
|
|
78
|
+
return [2 /*return*/, true];
|
|
79
|
+
});
|
|
80
|
+
});
|
|
13
81
|
}
|
|
14
82
|
function pack() {
|
|
15
83
|
var message = new position_pb_1.PositionProto();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"position.test.js","sourceRoot":"","sources":["position.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"position.test.js","sourceRoot":"","sources":["position.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+EAA+E;AAE/E,wDAAgE;AAChE,sCAAqC;AACrC,iEAA6D;AAS7D,qFAAqF;AAErF,+EAAsH;AACtH,yFAAqF;AACrF,yEAA0E;AAK1E,6EAA8E;AAC9E,+EAAgF;AAChF,kFAAmF;AACnF,2DAAgD;AAIhD,IAAI,CAAC,2BAA2B,EAAE;;;;KAIjC,CAAC,CAAC;AAEH,SAAe,iBAAiB;;;;YACxB,MAAM,GAAG,CAAC,qBAAU,CAAC,EAAE,EAAE,qBAAU,CAAC,UAAU,EAAE,qBAAU,CAAC,YAAY,EAAE,qBAAU,CAAC,SAAS,EAAE,qBAAU,CAAC,QAAQ,CAAC,CAAC;YAEpH,QAAQ,GAAG,IAAI,2BAAa,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YACrD,SAAS,GAAG,IAAI,6BAAc,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;YACpE,SAAS,GAAG,IAAI,8BAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACrE,WAAW,GAAG,mBAAmB,CAAC;YAClC,EAAE,GAAG,IAAI,WAAI,CAAC,WAAI,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAEvC,OAAO,GAAG,yBAAY,CAAC,iBAAiB,CAAC;YACzC,YAAY,GAAG,IAAI,oCAAiB,EAAE,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;YAG7E,sCAAsB,CAAC,SAAS,CAAA;YAC1B,UAAU,GAAG,IAAI,YAAG,EAAE,CAAC;YACvB,OAAO,GAAG,iBAAiB,CAAC;YAC5B,aAAa,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;YACjD,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC/B,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAE/B,aAAa,GAAG,IAAI,2BAAa,EAAE,CAAC;YACxC,aAAa,CAAC,SAAS,CAAC,IAAI,gCAAa,EAAE,CAAC,QAAQ,CAAC,qBAAU,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;YAEvG,QAAQ,GAAG,IAAI,6BAAQ,CAAC,aAAa,CAAC,CAAC;YAE3C,QAAQ,CAAC,aAAa,CAAC,qBAAU,CAAC,QAAQ,CAAC,CAAC;YAE5C,sBAAO,IAAI,EAAC;;;CACf;AAED,SAAS,IAAI;IACT,IAAM,OAAO,GAAG,IAAI,2BAAa,EAAE,CAAC;IAEpC,sDAAsD;IACtD,qCAAqC;IACrC,8BAA8B;IAC9B,iFAAiF;IAEjF,8BAA8B;IAE9B,8CAA8C;IAC9C,gDAAgD;IAEhD,mCAAmC;IACnC,2EAA2E;IAC3E,oEAAoE;IAEpE,sCAAsC;IACtC,iFAAiF;IACjF,gEAAgE;IAChE,IAAI;AAER,CAAC;AAED,SAAS,aAAa;IAClB,IAAI,KAAK,GAAG,IAAI,gCAAa,EAAE;SAC1B,QAAQ,CAAC,qBAAU,CAAC,gBAAgB,CAAC,CAAC;IAC3C,uBAAuB;IAEvB,OAAO,IAAI,2BAAa,EAAE,CAAC;IAE3B,yBAAyB;IACzB,0FAA0F;IAC1F,0EAA0E;IAC1E,gDAAgD;IAChD,8EAA8E;IAC9E,iFAAiF;AACrF,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { LocalDateProto } from '../../../fintekkers/models/util/local_date_pb';
|
|
|
2
2
|
import { UUIDProto } from '../../../fintekkers/models/util/uuid_pb';
|
|
3
3
|
import { ProtoSerializationUtil } from '../utils/serialization';
|
|
4
4
|
import { UUID } from '../utils/uuid';
|
|
5
|
+
import { Any } from 'google-protobuf/google/protobuf/any_pb';
|
|
5
6
|
|
|
6
7
|
import assert = require('assert');
|
|
7
8
|
import Transaction from '../transaction/transaction';
|
|
@@ -12,21 +13,54 @@ import { LocalTimestampProto } from '../../../fintekkers/models/util/local_times
|
|
|
12
13
|
import { Timestamp } from 'google-protobuf/google/protobuf/timestamp_pb';
|
|
13
14
|
import { DecimalValueProto } from '../../../fintekkers/models/util/decimal_value_pb';
|
|
14
15
|
import { PriceProto } from '../../../fintekkers/models/price/price_pb';
|
|
15
|
-
import { PositionProto } from '../../../fintekkers/models/position/position_pb';
|
|
16
|
+
import { PositionProto, PositionTypeProto, PositionViewProto } from '../../../fintekkers/models/position/position_pb';
|
|
16
17
|
import { FieldMapEntry } from '../../../fintekkers/models/position/position_util_pb';
|
|
17
18
|
import { FieldProto } from '../../../fintekkers/models/position/field_pb';
|
|
19
|
+
import { PositionService } from '../../services/position-service/PositionService';
|
|
20
|
+
import { PositionFilter } from './positionfilter';
|
|
21
|
+
import { QueryPositionRequestProto } from '../../../fintekkers/requests/position/query_position_request_pb';
|
|
22
|
+
import { ZonedDateTime } from '../utils/datetime';
|
|
23
|
+
import { MeasureProto } from '../../../fintekkers/models/position/measure_pb';
|
|
24
|
+
import { SecurityProto } from '../../../fintekkers/models/security/security_pb';
|
|
25
|
+
import { PortfolioProto } from '../../../fintekkers/models/portfolio/portfolio_pb';
|
|
26
|
+
import { Position } from './hardcoded.position';
|
|
18
27
|
|
|
19
28
|
|
|
20
29
|
|
|
21
|
-
test('test the position wrapper', () => {
|
|
22
|
-
testSerialization();
|
|
23
|
-
|
|
30
|
+
test('test the position wrapper', async () => {
|
|
31
|
+
// const isTrue = await testSerialization();
|
|
32
|
+
// expect(isTrue).toBe(true);
|
|
24
33
|
|
|
25
|
-
|
|
26
|
-
const transaction = dummyPosition();
|
|
34
|
+
});
|
|
27
35
|
|
|
28
|
-
|
|
29
|
-
|
|
36
|
+
async function testSerialization(): Promise<boolean> {
|
|
37
|
+
let fields = [FieldProto.ID, FieldProto.TRADE_DATE, FieldProto.PRODUCT_TYPE, FieldProto.PORTFOLIO, FieldProto.SECURITY];
|
|
38
|
+
|
|
39
|
+
let security = new SecurityProto().setAssetClass("Test");
|
|
40
|
+
let portfolio = new PortfolioProto().setPortfolioName("Test portfolio");
|
|
41
|
+
let tradeDate = new LocalDateProto().setDay(3).setMonth(1).setYear(2024);
|
|
42
|
+
let productType = "Test product type";
|
|
43
|
+
let id = new UUID(UUID.random().toBytes());
|
|
44
|
+
|
|
45
|
+
let measure = MeasureProto.DIRECTED_QUANTITY;
|
|
46
|
+
let measureValue = new DecimalValueProto().setArbitraryPrecisionValue("1.0");
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
ProtoSerializationUtil.serialize
|
|
50
|
+
const anyMessage = new Any();
|
|
51
|
+
const typeUrl = `Doesn't matter?`;
|
|
52
|
+
const binaryMessage = security.serializeBinary();
|
|
53
|
+
anyMessage.setTypeUrl(typeUrl);
|
|
54
|
+
anyMessage.setValue(binaryMessage);
|
|
55
|
+
|
|
56
|
+
let positionProto = new PositionProto();
|
|
57
|
+
positionProto.addFields(new FieldMapEntry().setField(FieldProto.SECURITY).setFieldValuePacked(anyMessage));
|
|
58
|
+
|
|
59
|
+
let position = new Position(positionProto);
|
|
60
|
+
|
|
61
|
+
position.getFieldValue(FieldProto.SECURITY);
|
|
62
|
+
|
|
63
|
+
return true;
|
|
30
64
|
}
|
|
31
65
|
|
|
32
66
|
function pack() {
|
|
@@ -56,7 +90,7 @@ function pack() {
|
|
|
56
90
|
function dummyPosition() {
|
|
57
91
|
let field = new FieldMapEntry()
|
|
58
92
|
.setField(FieldProto.TRANSACTION_TYPE);
|
|
59
|
-
|
|
93
|
+
// .setFieldValuePacked
|
|
60
94
|
|
|
61
95
|
return new PositionProto();
|
|
62
96
|
|