@fintekkers/ledger-models 0.1.78 → 0.1.80

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.
@@ -16,6 +16,9 @@ var serialization_1 = require("../utils/serialization");
16
16
  var wrappers_pb_1 = require("google-protobuf/google/protobuf/wrappers_pb");
17
17
  var protoEnum_1 = require("../utils/protoEnum");
18
18
  var field_1 = require("./field");
19
+ var strategy_pb_1 = require("../../../fintekkers/models/strategy/strategy_pb");
20
+ var price_pb_1 = require("../../../fintekkers/models/price/price_pb");
21
+ var tenor_pb_1 = require("../../../fintekkers/models/security/tenor_pb");
19
22
  var Position = /** @class */ (function () {
20
23
  function Position(positionProto) {
21
24
  this.proto = positionProto;
@@ -49,7 +52,18 @@ var Position = /** @class */ (function () {
49
52
  var proto = protoEnum_1.ProtoEnum.fromEnumName(fieldName, tmpField.getEnumValue());
50
53
  return proto;
51
54
  }
55
+ else if (tmpField.getEnumValue() == 0 && !tmpField.getStringValue() &&
56
+ !tmpField.getFieldValuePacked()) {
57
+ console.log("Warning: this position has an undefined enum value, which should be fixed in upstream data");
58
+ var fieldName = new field_1.Field(fieldToGet.getField()).getName();
59
+ var proto = protoEnum_1.ProtoEnum.fromEnumName(fieldName, 0);
60
+ return proto;
61
+ }
52
62
  var unpackedValue = Position.unpackField(tmpField);
63
+ if (field_pb_1.FieldProto.PRICE == fieldToGet.getField()
64
+ || field_pb_1.FieldProto.TENOR == fieldToGet.getField()) {
65
+ return unpackedValue; //instanceof PriceProto || TenorProto
66
+ }
53
67
  if (field_pb_1.FieldProto.SECURITY == fieldToGet.getField()) {
54
68
  return new security_1.default(unpackedValue);
55
69
  }
@@ -102,6 +116,7 @@ var Position = /** @class */ (function () {
102
116
  switch (fieldToUnpack.getField()) {
103
117
  case field_pb_1.FieldProto.PORTFOLIO_ID:
104
118
  case field_pb_1.FieldProto.SECURITY_ID:
119
+ case field_pb_1.FieldProto.PRICE_ID:
105
120
  case field_pb_1.FieldProto.ID:
106
121
  return uuid_pb_1.UUIDProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
107
122
  case field_pb_1.FieldProto.AS_OF:
@@ -112,25 +127,36 @@ var Position = /** @class */ (function () {
112
127
  case field_pb_1.FieldProto.SETTLEMENT_DATE:
113
128
  case field_pb_1.FieldProto.TAX_LOT_OPEN_DATE:
114
129
  case field_pb_1.FieldProto.TAX_LOT_CLOSE_DATE:
130
+ case field_pb_1.FieldProto.EFFECTIVE_DATE:
115
131
  return local_date_pb_1.LocalDateProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
116
132
  case field_pb_1.FieldProto.IDENTIFIER:
117
133
  return identifier_pb_1.IdentifierProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
134
+ case field_pb_1.FieldProto.STRATEGY:
135
+ return strategy_pb_1.StrategyProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
136
+ case field_pb_1.FieldProto.TENOR:
137
+ return tenor_pb_1.TenorProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
138
+ case field_pb_1.FieldProto.PRICE:
139
+ return price_pb_1.PriceProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
118
140
  case field_pb_1.FieldProto.TRANSACTION_TYPE:
119
141
  case field_pb_1.FieldProto.POSITION_STATUS:
120
- // Assuming ProtoEnum is properly defined elsewhere
121
- // const descriptor = FieldProto.DESCRIPTOR.valuesByNumber[fieldToUnpack.field];
122
- return null; //new ProtoEnum(descriptor, fieldToUnpack.enumValue);
142
+ return fieldToUnpack;
123
143
  case field_pb_1.FieldProto.PORTFOLIO_NAME:
124
144
  case field_pb_1.FieldProto.SECURITY_DESCRIPTION:
145
+ case field_pb_1.FieldProto.SECURITY_ISSUER_NAME:
146
+ case field_pb_1.FieldProto.ADJUSTED_TENOR:
125
147
  case field_pb_1.FieldProto.PRODUCT_TYPE:
148
+ case field_pb_1.FieldProto.PRODUCT_CLASS:
126
149
  case field_pb_1.FieldProto.ASSET_CLASS:
127
150
  return wrappers_pb_1.StringValue.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
128
151
  case field_pb_1.FieldProto.PORTFOLIO:
129
- return fieldToUnpack.getFieldValuePacked();
130
152
  case field_pb_1.FieldProto.SECURITY:
153
+ case field_pb_1.FieldProto.CASH_IMPACT_SECURITY:
154
+ return fieldToUnpack.getFieldValuePacked();
155
+ case field_pb_1.FieldProto.IS_CANCELLED:
156
+ console.log("Need to check that IS_CANCELLED IS SUPPORTED CORRECTLY");
131
157
  return fieldToUnpack.getFieldValuePacked();
132
158
  default:
133
- throw new Error("Field not found. Could not unpack ".concat(field_pb_1.FieldProto[fieldToUnpack.getField()]));
159
+ throw new Error("Field not found. Could not unpack ".concat(field_pb_1.FieldProto[fieldToUnpack.getField()], ". Mapping missing"));
134
160
  }
135
161
  };
136
162
  return Position;
@@ -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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"}
@@ -48,6 +48,10 @@ var portfolio_pb_1 = require("../../../fintekkers/models/portfolio/portfolio_pb"
48
48
  var position_1 = require("./position");
49
49
  var date_1 = require("../utils/date");
50
50
  var position_status_pb_1 = require("../../../fintekkers/models/position/position_status_pb");
51
+ var transaction_type_pb_1 = require("../../../fintekkers/models/transaction/transaction_type_pb");
52
+ var price_pb_1 = require("../../../fintekkers/models/price/price_pb");
53
+ var tenor_pb_1 = require("../../../fintekkers/models/security/tenor_pb");
54
+ var tenor_type_pb_1 = require("../../../fintekkers/models/security/tenor_type_pb");
51
55
  test('test the position wrapper', function () { return __awaiter(void 0, void 0, void 0, function () {
52
56
  var isTrue;
53
57
  return __generator(this, function (_a) {
@@ -62,6 +66,10 @@ test('test the position wrapper', function () { return __awaiter(void 0, void 0,
62
66
  expect(isTrue).toBe(true);
63
67
  return [4 /*yield*/, testJsonSerialization()];
64
68
  case 3:
69
+ isTrue = _a.sent();
70
+ expect(isTrue).toBe(true);
71
+ return [4 /*yield*/, testDeSerializationWithUnknownProto()];
72
+ case 4:
65
73
  isTrue = _a.sent();
66
74
  expect(isTrue).toBe(true);
67
75
  return [2 /*return*/];
@@ -95,18 +103,16 @@ function testEnumSerialization() {
95
103
  }
96
104
  function testJsonSerialization() {
97
105
  return __awaiter(this, void 0, void 0, function () {
98
- var security, portfolio, tradeDate, productType, id, tradeDatePacked, idPacked, positionProto, position, position2, tradeDatePosition;
106
+ var tradeDate, productType, id, tradeDatePacked, idPacked, positionProto, position, position2, tradeDatePosition;
99
107
  return __generator(this, function (_a) {
100
- security = new security_pb_1.SecurityProto().setAssetClass("Test");
101
- portfolio = new portfolio_pb_1.PortfolioProto().setPortfolioName("Test portfolio");
102
108
  tradeDate = date_1.LocalDate.today().toDate();
103
109
  productType = "Test product type";
104
110
  id = new uuid_1.UUID(uuid_1.UUID.random().toBytes());
105
111
  tradeDatePacked = new any_pb_1.Any();
106
- tradeDatePacked.setTypeUrl("Doesn't matter");
112
+ tradeDatePacked.setTypeUrl("DUMMYTYPE_DATE");
107
113
  tradeDatePacked.setValue(date_1.LocalDate.from(tradeDate).toProto().serializeBinary());
108
114
  idPacked = new any_pb_1.Any();
109
- idPacked.setTypeUrl("Doesn't matter");
115
+ idPacked.setTypeUrl("DUMMYTYPE_ID");
110
116
  idPacked.setValue(id.toUUIDProto().serializeBinary());
111
117
  positionProto = new position_pb_1.PositionProto();
112
118
  positionProto.setFieldsList([
@@ -114,6 +120,7 @@ function testJsonSerialization() {
114
120
  new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.TRADE_DATE).setFieldValuePacked(tradeDatePacked),
115
121
  new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.POSITION_STATUS).setEnumValue(position_status_pb_1.PositionStatusProto.EXECUTED),
116
122
  new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.PRODUCT_TYPE).setStringValue(productType),
123
+ new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.SECURITY_DESCRIPTION).setStringValue("Dummy"),
117
124
  new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.ID).setFieldValuePacked(idPacked),
118
125
  ]);
119
126
  position = new position_1.Position(positionProto);
@@ -123,15 +130,16 @@ function testJsonSerialization() {
123
130
  expect(tradeDate.getMonth()).toBe(tradeDatePosition.getMonth());
124
131
  expect(tradeDate.getDay()).toBe(tradeDatePosition.getDay());
125
132
  expect(tradeDate.getMonth()).toBe(tradeDatePosition.getMonth());
133
+ expect(position2.getFieldValue(field_pb_1.FieldProto.SECURITY_DESCRIPTION)).toBe("Dummy");
126
134
  return [2 /*return*/, true];
127
135
  });
128
136
  });
129
137
  }
130
138
  function testSerialization() {
131
139
  return __awaiter(this, void 0, void 0, function () {
132
- var _a, position, tradeDate, security, portfolio, productType, id, tradeDatePosition, securityPosition, portfolioPosition, positionID;
140
+ var _a, position, tradeDate, security, portfolio, productType, id, tradeDatePosition, securityPosition, portfolioPosition, positionID, price, tenor;
133
141
  return __generator(this, function (_b) {
134
- _a = getPosition(), position = _a.position, tradeDate = _a.tradeDate, security = _a.security, portfolio = _a.portfolio, productType = _a.productType, id = _a.id;
142
+ _a = getPosition(false), position = _a.position, tradeDate = _a.tradeDate, security = _a.security, portfolio = _a.portfolio, productType = _a.productType, id = _a.id;
135
143
  tradeDatePosition = position.getFieldValue(field_pb_1.FieldProto.TRADE_DATE);
136
144
  expect(tradeDate.getFullYear()).toBe(tradeDatePosition.getFullYear());
137
145
  expect(tradeDate.getMonth()).toBe(tradeDatePosition.getMonth());
@@ -144,32 +152,70 @@ function testSerialization() {
144
152
  positionID = position.getFieldValue(field_pb_1.FieldProto.ID);
145
153
  expect(positionID.toString()).toBe(id.toString());
146
154
  expect(position.getFieldValue(field_pb_1.FieldProto.POSITION_STATUS).toString()).toBe("EXECUTED");
155
+ expect(position.getMeasureValue(measure_pb_1.MeasureProto.DIRECTED_QUANTITY)).toBe(1);
156
+ price = position.getFieldValue(field_pb_1.FieldProto.PRICE);
157
+ expect(price.getPrice().getArbitraryPrecisionValue()).toBe("1.0");
158
+ tenor = position.getFieldValue(field_pb_1.FieldProto.TENOR);
159
+ expect(tenor.getTermValue()).toBe("3M");
147
160
  return [2 /*return*/, true];
148
161
  });
149
162
  });
150
163
  }
151
- function getPosition() {
164
+ function testDeSerializationWithUnknownProto() {
165
+ return __awaiter(this, void 0, void 0, function () {
166
+ var position;
167
+ return __generator(this, function (_a) {
168
+ position = getPosition(true).position;
169
+ expect(position.getFieldValue(field_pb_1.FieldProto.POSITION_STATUS).toString()).toBe("UNKNOWN");
170
+ return [2 /*return*/, true];
171
+ });
172
+ });
173
+ }
174
+ function getPosition(includeUnknownEnumValue) {
152
175
  var security = new security_pb_1.SecurityProto().setAssetClass("Test");
153
176
  var portfolio = new portfolio_pb_1.PortfolioProto().setPortfolioName("Test portfolio");
154
177
  var tradeDate = date_1.LocalDate.today().toDate();
155
178
  var productType = "Test product type";
156
179
  var id = new uuid_1.UUID(uuid_1.UUID.random().toBytes());
180
+ var price = new price_pb_1.PriceProto()
181
+ .setPrice(new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue("1.0"))
182
+ .setUuid(id.toUUIDProto())
183
+ .setSecurity(security);
184
+ var tenor = new tenor_pb_1.TenorProto()
185
+ .setTenorType(tenor_type_pb_1.TenorTypeProto.TERM)
186
+ .setTermValue("3M");
187
+ ;
157
188
  var measure = measure_pb_1.MeasureProto.DIRECTED_QUANTITY;
158
189
  var measureValue = new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue("1.0");
159
190
  var tradeDatePacked = new any_pb_1.Any();
160
- tradeDatePacked.setTypeUrl("Doesn't matter");
191
+ tradeDatePacked.setTypeUrl("DUMMYTYPE_DATE");
161
192
  tradeDatePacked.setValue(date_1.LocalDate.from(tradeDate).toProto().serializeBinary());
162
193
  var idPacked = new any_pb_1.Any();
163
- idPacked.setTypeUrl("Doesn't matter");
194
+ idPacked.setTypeUrl("DUMMYTYPE_ID");
164
195
  idPacked.setValue(id.toUUIDProto().serializeBinary());
196
+ var pricePacked = new any_pb_1.Any();
197
+ pricePacked.setTypeUrl("DUMMYTYPE_PRICE");
198
+ pricePacked.setValue(price.serializeBinary());
199
+ var tenorPacked = new any_pb_1.Any();
200
+ tenorPacked.setTypeUrl("DUMMYTYPE_TENOR");
201
+ tenorPacked.setValue(tenor.serializeBinary());
202
+ var positionStatus = includeUnknownEnumValue ?
203
+ new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.POSITION_STATUS).setEnumValue(position_status_pb_1.PositionStatusProto.UNKNOWN) :
204
+ new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.POSITION_STATUS).setEnumValue(position_status_pb_1.PositionStatusProto.EXECUTED);
165
205
  var positionProto = new position_pb_1.PositionProto();
166
206
  positionProto.setFieldsList([
167
207
  new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.SECURITY).setFieldValuePacked(security),
168
208
  new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.PORTFOLIO).setFieldValuePacked(portfolio),
169
209
  new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.TRADE_DATE).setFieldValuePacked(tradeDatePacked),
170
- new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.POSITION_STATUS).setEnumValue(position_status_pb_1.PositionStatusProto.EXECUTED),
210
+ positionStatus,
211
+ new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.TRANSACTION_TYPE).setEnumValue(transaction_type_pb_1.TransactionTypeProto.BUY),
212
+ new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.TENOR).setFieldValuePacked(tenorPacked),
171
213
  new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.PRODUCT_TYPE).setStringValue(productType),
172
214
  new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.ID).setFieldValuePacked(idPacked),
215
+ new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.PRICE).setFieldValuePacked(pricePacked)
216
+ ]);
217
+ positionProto.setMeasuresList([
218
+ new position_util_pb_1.MeasureMapEntry().setMeasure(measure).setMeasureDecimalValue(measureValue)
173
219
  ]);
174
220
  var position = new position_1.Position(positionProto);
175
221
  return { position: position, tradeDate: tradeDate, security: security, portfolio: portfolio, productType: productType, id: id };
@@ -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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"}
@@ -1,8 +1,6 @@
1
1
  import { UUID } from '../utils/uuid';
2
2
  import { Any } from 'google-protobuf/google/protobuf/any_pb';
3
3
 
4
- import assert = require('assert');
5
-
6
4
  import { DecimalValueProto } from '../../../fintekkers/models/util/decimal_value_pb';
7
5
  import { PositionProto } from '../../../fintekkers/models/position/position_pb';
8
6
  import { FieldMapEntry, MeasureMapEntry } from '../../../fintekkers/models/position/position_util_pb';
@@ -14,6 +12,10 @@ import { Position } from './position';
14
12
  import { LocalDate } from '../utils/date';
15
13
  import { PositionStatusProto } from '../../../fintekkers/models/position/position_status_pb';
16
14
  import { ProtoEnum } from '../utils/protoEnum';
15
+ import { TransactionTypeProto } from '../../../fintekkers/models/transaction/transaction_type_pb';
16
+ import { PriceProto } from '../../../fintekkers/models/price/price_pb';
17
+ import { TenorProto } from '../../../fintekkers/models/security/tenor_pb';
18
+ import { TenorTypeProto } from '../../../fintekkers/models/security/tenor_type_pb';
17
19
 
18
20
  test('test the position wrapper', async () => {
19
21
  let isTrue = await testEnumSerialization();
@@ -25,6 +27,8 @@ test('test the position wrapper', async () => {
25
27
  isTrue = await testJsonSerialization();
26
28
  expect(isTrue).toBe(true);
27
29
 
30
+ isTrue = await testDeSerializationWithUnknownProto();
31
+ expect(isTrue).toBe(true);
28
32
  });
29
33
 
30
34
  async function testEnumSerialization(): Promise<boolean> {
@@ -53,20 +57,17 @@ async function testEnumSerialization(): Promise<boolean> {
53
57
  return true;
54
58
  }
55
59
 
56
-
57
60
  async function testJsonSerialization(): Promise<boolean> {
58
- let security = new SecurityProto().setAssetClass("Test");
59
- let portfolio = new PortfolioProto().setPortfolioName("Test portfolio");
60
61
  let tradeDate = LocalDate.today().toDate();
61
62
  let productType = "Test product type";
62
63
  let id = new UUID(UUID.random().toBytes());
63
64
 
64
65
  const tradeDatePacked = new Any();
65
- tradeDatePacked.setTypeUrl(`Doesn't matter`);
66
+ tradeDatePacked.setTypeUrl(`DUMMYTYPE_DATE`);
66
67
  tradeDatePacked.setValue(LocalDate.from(tradeDate).toProto().serializeBinary());
67
68
 
68
69
  const idPacked = new Any();
69
- idPacked.setTypeUrl(`Doesn't matter`);
70
+ idPacked.setTypeUrl(`DUMMYTYPE_ID`);
70
71
  idPacked.setValue(id.toUUIDProto().serializeBinary());
71
72
 
72
73
  let positionProto = new PositionProto();
@@ -75,25 +76,27 @@ async function testJsonSerialization(): Promise<boolean> {
75
76
  new FieldMapEntry().setField(FieldProto.TRADE_DATE).setFieldValuePacked(tradeDatePacked),
76
77
  new FieldMapEntry().setField(FieldProto.POSITION_STATUS).setEnumValue(PositionStatusProto.EXECUTED),
77
78
  new FieldMapEntry().setField(FieldProto.PRODUCT_TYPE).setStringValue(productType),
79
+ new FieldMapEntry().setField(FieldProto.SECURITY_DESCRIPTION).setStringValue("Dummy"),
78
80
  new FieldMapEntry().setField(FieldProto.ID).setFieldValuePacked(idPacked),
79
81
  ]);
80
82
  let position = new Position(positionProto);
81
83
 
82
84
  let position2 = Position.fromJSON(position.toJSON());
83
85
 
84
-
85
86
  let tradeDatePosition = position2.getFieldValue(FieldProto.TRADE_DATE);
86
87
  expect(tradeDate.getFullYear()).toBe(tradeDatePosition.getFullYear());
87
88
  expect(tradeDate.getMonth()).toBe(tradeDatePosition.getMonth());
88
89
  expect(tradeDate.getDay()).toBe(tradeDatePosition.getDay());
89
90
  expect(tradeDate.getMonth()).toBe(tradeDatePosition.getMonth());
90
91
 
92
+ expect(position2.getFieldValue(FieldProto.SECURITY_DESCRIPTION)).toBe("Dummy");
93
+
91
94
  return true;
92
95
  }
93
96
 
94
97
 
95
98
  async function testSerialization(): Promise<boolean> {
96
- let { position, tradeDate, security, portfolio, productType, id } = getPosition();
99
+ let { position, tradeDate, security, portfolio, productType, id } = getPosition(false);
97
100
 
98
101
  let tradeDatePosition = position.getFieldValue(FieldProto.TRADE_DATE);
99
102
  expect(tradeDate.getFullYear()).toBe(tradeDatePosition.getFullYear());
@@ -113,36 +116,80 @@ async function testSerialization(): Promise<boolean> {
113
116
 
114
117
  expect(position.getFieldValue(FieldProto.POSITION_STATUS).toString()).toBe("EXECUTED");
115
118
 
119
+ expect(position.getMeasureValue(MeasureProto.DIRECTED_QUANTITY)).toBe(1);
120
+
121
+ let price: PriceProto = position.getFieldValue(FieldProto.PRICE);
122
+ expect(price.getPrice().getArbitraryPrecisionValue()).toBe("1.0");
123
+
124
+ let tenor: TenorProto = position.getFieldValue(FieldProto.TENOR);
125
+ expect(tenor.getTermValue()).toBe("3M");
126
+
127
+ return true;
128
+ }
129
+
130
+ async function testDeSerializationWithUnknownProto(): Promise<boolean> {
131
+ let { position } = getPosition(true);
132
+
133
+ expect(position.getFieldValue(FieldProto.POSITION_STATUS).toString()).toBe("UNKNOWN");
116
134
  return true;
117
135
  }
118
136
 
119
- function getPosition() {
137
+ function getPosition(includeUnknownEnumValue: boolean) {
120
138
  let security = new SecurityProto().setAssetClass("Test");
121
139
  let portfolio = new PortfolioProto().setPortfolioName("Test portfolio");
122
140
  let tradeDate = LocalDate.today().toDate();
123
141
  let productType = "Test product type";
124
142
  let id = new UUID(UUID.random().toBytes());
125
143
 
144
+ let price = new PriceProto()
145
+ .setPrice(new DecimalValueProto().setArbitraryPrecisionValue("1.0"))
146
+ .setUuid(id.toUUIDProto())
147
+ .setSecurity(security);
148
+
149
+ let tenor = new TenorProto()
150
+ .setTenorType(TenorTypeProto.TERM)
151
+ .setTermValue("3M");;
152
+
126
153
  let measure = MeasureProto.DIRECTED_QUANTITY;
127
154
  let measureValue = new DecimalValueProto().setArbitraryPrecisionValue("1.0");
128
155
 
129
156
  const tradeDatePacked = new Any();
130
- tradeDatePacked.setTypeUrl(`Doesn't matter`);
157
+ tradeDatePacked.setTypeUrl(`DUMMYTYPE_DATE`);
131
158
  tradeDatePacked.setValue(LocalDate.from(tradeDate).toProto().serializeBinary());
132
159
 
133
160
  const idPacked = new Any();
134
- idPacked.setTypeUrl(`Doesn't matter`);
161
+ idPacked.setTypeUrl(`DUMMYTYPE_ID`);
135
162
  idPacked.setValue(id.toUUIDProto().serializeBinary());
136
163
 
164
+ const pricePacked = new Any();
165
+ pricePacked.setTypeUrl(`DUMMYTYPE_PRICE`);
166
+ pricePacked.setValue(price.serializeBinary());
167
+
168
+ const tenorPacked = new Any();
169
+ tenorPacked.setTypeUrl(`DUMMYTYPE_TENOR`);
170
+ tenorPacked.setValue(tenor.serializeBinary());
171
+
172
+ let positionStatus = includeUnknownEnumValue ?
173
+ new FieldMapEntry().setField(FieldProto.POSITION_STATUS).setEnumValue(PositionStatusProto.UNKNOWN) :
174
+ new FieldMapEntry().setField(FieldProto.POSITION_STATUS).setEnumValue(PositionStatusProto.EXECUTED);
175
+
137
176
  let positionProto = new PositionProto();
138
177
  positionProto.setFieldsList([
139
178
  new FieldMapEntry().setField(FieldProto.SECURITY).setFieldValuePacked(security),
140
179
  new FieldMapEntry().setField(FieldProto.PORTFOLIO).setFieldValuePacked(portfolio),
141
180
  new FieldMapEntry().setField(FieldProto.TRADE_DATE).setFieldValuePacked(tradeDatePacked),
142
- new FieldMapEntry().setField(FieldProto.POSITION_STATUS).setEnumValue(PositionStatusProto.EXECUTED),
181
+ positionStatus,
182
+ new FieldMapEntry().setField(FieldProto.TRANSACTION_TYPE).setEnumValue(TransactionTypeProto.BUY),
183
+ new FieldMapEntry().setField(FieldProto.TENOR).setFieldValuePacked(tenorPacked),
143
184
  new FieldMapEntry().setField(FieldProto.PRODUCT_TYPE).setStringValue(productType),
144
185
  new FieldMapEntry().setField(FieldProto.ID).setFieldValuePacked(idPacked),
186
+ new FieldMapEntry().setField(FieldProto.PRICE).setFieldValuePacked(pricePacked)
187
+ ]);
188
+
189
+ positionProto.setMeasuresList([
190
+ new MeasureMapEntry().setMeasure(measure).setMeasureDecimalValue(measureValue)
145
191
  ]);
192
+
146
193
  let position = new Position(positionProto);
147
194
  return { position, tradeDate, security, portfolio, productType, id };
148
195
  }
@@ -16,6 +16,9 @@ import { ProtoEnum } from "../utils/protoEnum";
16
16
  import { Field } from "./field";
17
17
  import { UUID } from "../utils/uuid";
18
18
  import { ZonedDateTime } from "../utils/datetime";
19
+ import { StrategyProto } from "../../../fintekkers/models/strategy/strategy_pb";
20
+ import { PriceProto } from "../../../fintekkers/models/price/price_pb";
21
+ import { TenorProto } from "../../../fintekkers/models/security/tenor_pb";
19
22
 
20
23
  export class Position {
21
24
  proto: PositionProto;
@@ -44,7 +47,7 @@ export class Position {
44
47
  return this.getField(new FieldMapEntry().setField(field));
45
48
  }
46
49
 
47
- public getField(fieldToGet: FieldMapEntry): string | ProtoEnum | Security | Portfolio | UUID | Date | ZonedDateTime | number {
50
+ public getField(fieldToGet: FieldMapEntry): string | ProtoEnum | Security | Portfolio | UUID | Date | ZonedDateTime | number | PriceProto {
48
51
  for (const tmpField of this.proto.getFieldsList()) {
49
52
  if (tmpField.getField() === fieldToGet.getField()) {
50
53
 
@@ -56,10 +59,21 @@ export class Position {
56
59
  let fieldName: string = new Field(fieldToGet.getField()).getName();
57
60
  let proto: ProtoEnum = ProtoEnum.fromEnumName(fieldName, tmpField.getEnumValue());
58
61
  return proto;
62
+ } else if (tmpField.getEnumValue() == 0 && !tmpField.getStringValue() &&
63
+ !tmpField.getFieldValuePacked()) {
64
+ console.log("Warning: this position has an undefined enum value, which should be fixed in upstream data");
65
+ let fieldName: string = new Field(fieldToGet.getField()).getName();
66
+ let proto: ProtoEnum = ProtoEnum.fromEnumName(fieldName, 0);
67
+ return proto;
59
68
  }
60
69
 
61
70
  const unpackedValue = Position.unpackField(tmpField);
62
71
 
72
+ if (FieldProto.PRICE == fieldToGet.getField()
73
+ || FieldProto.TENOR == fieldToGet.getField()) {
74
+ return unpackedValue; //instanceof PriceProto || TenorProto
75
+ }
76
+
63
77
  if (FieldProto.SECURITY == fieldToGet.getField()) {
64
78
  return new Security(unpackedValue);
65
79
  }
@@ -123,6 +137,7 @@ export class Position {
123
137
  switch (fieldToUnpack.getField()) {
124
138
  case FieldProto.PORTFOLIO_ID:
125
139
  case FieldProto.SECURITY_ID:
140
+ case FieldProto.PRICE_ID:
126
141
  case FieldProto.ID:
127
142
  return UUIDProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
128
143
  case FieldProto.AS_OF:
@@ -133,25 +148,36 @@ export class Position {
133
148
  case FieldProto.SETTLEMENT_DATE:
134
149
  case FieldProto.TAX_LOT_OPEN_DATE:
135
150
  case FieldProto.TAX_LOT_CLOSE_DATE:
151
+ case FieldProto.EFFECTIVE_DATE:
136
152
  return LocalDateProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
137
153
  case FieldProto.IDENTIFIER:
138
154
  return IdentifierProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
155
+ case FieldProto.STRATEGY:
156
+ return StrategyProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
157
+ case FieldProto.TENOR:
158
+ return TenorProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
159
+ case FieldProto.PRICE:
160
+ return PriceProto.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
139
161
  case FieldProto.TRANSACTION_TYPE:
140
162
  case FieldProto.POSITION_STATUS:
141
- // Assuming ProtoEnum is properly defined elsewhere
142
- // const descriptor = FieldProto.DESCRIPTOR.valuesByNumber[fieldToUnpack.field];
143
- return null; //new ProtoEnum(descriptor, fieldToUnpack.enumValue);
163
+ return fieldToUnpack;
144
164
  case FieldProto.PORTFOLIO_NAME:
145
165
  case FieldProto.SECURITY_DESCRIPTION:
166
+ case FieldProto.SECURITY_ISSUER_NAME:
167
+ case FieldProto.ADJUSTED_TENOR:
146
168
  case FieldProto.PRODUCT_TYPE:
169
+ case FieldProto.PRODUCT_CLASS:
147
170
  case FieldProto.ASSET_CLASS:
148
171
  return StringValue.deserializeBinary(fieldToUnpack.getFieldValuePacked().getValue());
149
172
  case FieldProto.PORTFOLIO:
150
- return fieldToUnpack.getFieldValuePacked();
151
173
  case FieldProto.SECURITY:
174
+ case FieldProto.CASH_IMPACT_SECURITY:
175
+ return fieldToUnpack.getFieldValuePacked();
176
+ case FieldProto.IS_CANCELLED:
177
+ console.log("Need to check that IS_CANCELLED IS SUPPORTED CORRECTLY");
152
178
  return fieldToUnpack.getFieldValuePacked();
153
179
  default:
154
- throw new Error(`Field not found. Could not unpack ${FieldProto[fieldToUnpack.getField()]}`);
180
+ throw new Error(`Field not found. Could not unpack ${FieldProto[fieldToUnpack.getField()]}. Mapping missing`);
155
181
  }
156
182
  }
157
183
  }
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ProtoSerializationUtil = void 0;
4
+ var identifier_pb_1 = require("../../../fintekkers/models/security/identifier/identifier_pb");
4
5
  var decimal_value_pb_1 = require("../../../fintekkers/models/util/decimal_value_pb");
5
6
  var local_date_pb_1 = require("../../../fintekkers/models/util/local_date_pb");
6
7
  var local_timestamp_pb_1 = require("../../../fintekkers/models/util/local_timestamp_pb");
7
8
  var uuid_pb_1 = require("../../../fintekkers/models/util/uuid_pb");
8
9
  var datetime_1 = require("./datetime");
10
+ var protoEnum_1 = require("./protoEnum");
9
11
  var uuid_1 = require("./uuid");
10
12
  var wrappers_pb_1 = require("google-protobuf/google/protobuf/wrappers_pb");
11
13
  var ProtoSerializationUtil = /** @class */ (function () {
@@ -44,8 +46,8 @@ var ProtoSerializationUtil = /** @class */ (function () {
44
46
  if (obj instanceof local_timestamp_pb_1.LocalTimestampProto) {
45
47
  return new datetime_1.ZonedDateTime(obj);
46
48
  }
47
- if (obj.enum_name && obj.enum_name === "TRANSACTION_TYPE") {
48
- return null; // new TransactionType(obj.enum_value);
49
+ if (obj instanceof identifier_pb_1.IdentifierProto) {
50
+ return obj.getIdentifierType() + ":" + obj.getIdentifierValue();
49
51
  }
50
52
  if (obj instanceof decimal_value_pb_1.DecimalValueProto) {
51
53
  return parseFloat(obj.getArbitraryPrecisionValue());
@@ -53,6 +55,9 @@ var ProtoSerializationUtil = /** @class */ (function () {
53
55
  if (obj instanceof wrappers_pb_1.StringValue) {
54
56
  return obj.toString();
55
57
  }
58
+ if (obj !== null && 'enum_name' in obj && typeof obj.enum_name !== 'undefined' && obj.enum_name !== null) {
59
+ return new protoEnum_1.ProtoEnum(obj.descriptor, obj.enum_value);
60
+ }
56
61
  throw new Error("Could not deserialize object of type ".concat(typeof obj, ". Value: ").concat(obj));
57
62
  };
58
63
  return ProtoSerializationUtil;
@@ -1 +1 @@
1
- {"version":3,"file":"serialization.js","sourceRoot":"","sources":["serialization.ts"],"names":[],"mappings":";;;AAAA,qFAAqF;AACrF,+EAA+E;AAC/E,yFAAyF;AACzF,mEAAoE;AACpE,uCAA2C;AAC3C,+BAA8B;AAC9B,2EAA0E;AAE1E;IAAA;IAgDA,CAAC;IA/CQ,gCAAS,GAAhB,UAAiB,GAAQ;QACvB,IAAI,GAAG,YAAY,WAAI,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,GAAG,YAAY,IAAI,EAAE,CAAC;YACxB,OAAO,IAAI,8BAAc,EAAE;iBACxB,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;iBAC1B,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;iBAC5B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,GAAG,YAAY,wBAAa,EAAE,CAAC;YACjC,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,oCAAiB,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,GAAG,YAAY,MAAM,EAAE,CAAC;YAC1B,OAAO,yBAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,6CAAsC,OAAO,GAAG,sBAAY,GAAG,CAAE,CAAC,CAAC;IACrF,CAAC;IAEM,kCAAW,GAAlB,UAAmB,GAAQ;QACzB,IAAI,GAAG,YAAY,mBAAS,EAAE,CAAC;YAC7B,OAAO,WAAI,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,GAAG,YAAY,8BAAc,EAAE,CAAC;YAClC,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,GAAG,YAAY,wCAAmB,EAAE,CAAC;YACvC,OAAO,IAAI,wBAAa,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,SAAS,KAAK,kBAAkB,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC,CAAA,uCAAuC;QACrD,CAAC;QACD,IAAI,GAAG,YAAY,oCAAiB,EAAE,CAAC;YACrC,OAAO,UAAU,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,GAAG,YAAY,yBAAW,EAAE,CAAC;YAC/B,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,+CAAwC,OAAO,GAAG,sBAAY,GAAG,CAAE,CAAC,CAAC;IACvF,CAAC;IACH,6BAAC;AAAD,CAAC,AAhDD,IAgDC;AAhDY,wDAAsB"}
1
+ {"version":3,"file":"serialization.js","sourceRoot":"","sources":["serialization.ts"],"names":[],"mappings":";;;AACA,8FAA+F;AAC/F,qFAAqF;AACrF,+EAA+E;AAC/E,yFAAyF;AACzF,mEAAoE;AAEpE,uCAA2C;AAC3C,yCAAwC;AACxC,+BAA8B;AAC9B,2EAA0E;AAG1E;IAAA;IAmDA,CAAC;IAlDQ,gCAAS,GAAhB,UAAiB,GAAQ;QACvB,IAAI,GAAG,YAAY,WAAI,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;QAC3B,CAAC;QACD,IAAI,GAAG,YAAY,IAAI,EAAE,CAAC;YACxB,OAAO,IAAI,8BAAc,EAAE;iBACxB,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;iBAC1B,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;iBAC5B,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,IAAI,GAAG,YAAY,wBAAa,EAAE,CAAC;YACjC,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,oCAAiB,EAAE,CAAC,0BAA0B,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,GAAG,YAAY,MAAM,EAAE,CAAC;YAC1B,OAAO,yBAAW,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,6CAAsC,OAAO,GAAG,sBAAY,GAAG,CAAE,CAAC,CAAC;IACrF,CAAC;IAEM,kCAAW,GAAlB,UAAmB,GAAQ;QACzB,IAAI,GAAG,YAAY,mBAAS,EAAE,CAAC;YAC7B,OAAO,WAAI,CAAC,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,GAAG,YAAY,8BAAc,EAAE,CAAC;YAClC,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,GAAG,YAAY,wCAAmB,EAAE,CAAC;YACvC,OAAO,IAAI,wBAAa,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,GAAG,YAAY,+BAAe,EAAE,CAAC;YACnC,OAAO,GAAG,CAAC,iBAAiB,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAClE,CAAC;QACD,IAAI,GAAG,YAAY,oCAAiB,EAAE,CAAC;YACrC,OAAO,UAAU,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,GAAG,YAAY,yBAAW,EAAE,CAAC;YAC/B,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;QACD,IAAI,GAAG,KAAK,IAAI,IAAI,WAAW,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,WAAW,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YACzG,OAAO,IAAI,qBAAS,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,+CAAwC,OAAO,GAAG,sBAAY,GAAG,CAAE,CAAC,CAAC;IACvF,CAAC;IACH,6BAAC;AAAD,CAAC,AAnDD,IAmDC;AAnDY,wDAAsB"}
@@ -1,10 +1,15 @@
1
+ import { PriceProto } from "../../../fintekkers/models/price/price_pb";
2
+ import { IdentifierProto } from "../../../fintekkers/models/security/identifier/identifier_pb";
1
3
  import { DecimalValueProto } from "../../../fintekkers/models/util/decimal_value_pb";
2
4
  import { LocalDateProto } from "../../../fintekkers/models/util/local_date_pb";
3
5
  import { LocalTimestampProto } from "../../../fintekkers/models/util/local_timestamp_pb";
4
6
  import { UUIDProto } from "../../../fintekkers/models/util/uuid_pb";
7
+ import { TransactionType } from "../transaction/transaction_type";
5
8
  import { ZonedDateTime } from "./datetime";
9
+ import { ProtoEnum } from "./protoEnum";
6
10
  import { UUID } from "./uuid";
7
11
  import { StringValue } from 'google-protobuf/google/protobuf/wrappers_pb';
12
+ import { Any } from 'google-protobuf/google/protobuf/any_pb';
8
13
 
9
14
  export class ProtoSerializationUtil {
10
15
  static serialize(obj: any) { //}: UUIDProto | LocalDateProto | LocalTimestampProto | DecimalValueProto | StringValue {
@@ -42,8 +47,8 @@ export class ProtoSerializationUtil {
42
47
  if (obj instanceof LocalTimestampProto) {
43
48
  return new ZonedDateTime(obj);
44
49
  }
45
- if (obj.enum_name && obj.enum_name === "TRANSACTION_TYPE") {
46
- return null;// new TransactionType(obj.enum_value);
50
+ if (obj instanceof IdentifierProto) {
51
+ return obj.getIdentifierType() + ":" + obj.getIdentifierValue();
47
52
  }
48
53
  if (obj instanceof DecimalValueProto) {
49
54
  return parseFloat(obj.getArbitraryPrecisionValue());
@@ -51,6 +56,9 @@ export class ProtoSerializationUtil {
51
56
  if (obj instanceof StringValue) {
52
57
  return obj.toString();
53
58
  }
59
+ if (obj !== null && 'enum_name' in obj && typeof obj.enum_name !== 'undefined' && obj.enum_name !== null) {
60
+ return new ProtoEnum(obj.descriptor, obj.enum_value);
61
+ }
54
62
 
55
63
  throw new Error(`Could not deserialize object of type ${typeof obj}. Value: ${obj}`);
56
64
  }
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UUID = void 0;
4
- var console_1 = require("console");
5
4
  var uuid_pb_1 = require("../../../fintekkers/models/util/uuid_pb");
6
5
  var uuid = require("uuid");
7
6
  var UUID = /** @class */ (function () {
@@ -43,11 +42,4 @@ var UUID = /** @class */ (function () {
43
42
  return UUID;
44
43
  }());
45
44
  exports.UUID = UUID;
46
- var test_uuid_bytes = [217, 98, 253, 240, 51, 225, 77, 157, 153, 155, 126, 195, 80, 240, 203, 119];
47
- var test_uuid = new UUID(test_uuid_bytes);
48
- (0, console_1.assert)(test_uuid.toString() == 'd962fdf0-33e1-4d9d-999b-7ec350f0cb77');
49
- var test_uuid_bytes_copy = UUID.fromString(test_uuid.toString());
50
- (0, console_1.assert)(test_uuid_bytes.length === test_uuid_bytes_copy.length &&
51
- test_uuid_bytes.every(function (value, index) { return value === test_uuid_bytes_copy[index]; }));
52
- (0, console_1.assert)(UUID.random().toString().length == 36);
53
45
  //# sourceMappingURL=uuid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"uuid.js","sourceRoot":"","sources":["uuid.ts"],"names":[],"mappings":";;;AAAA,mCAAiC;AACjC,mEAAoE;AACpE,2BAA6B;AAE7B;IAGE,cAAY,KAAe;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,uBAAQ,GAAR;QACE,IAAM,SAAS,GAAe,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,sBAAO,GAAP;QACE,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,0BAAW,GAAX;QACE,IAAM,QAAQ,GAAG,IAAI,mBAAS,EAAE,CAAC;QACjC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,qBAAM,GAAN,UAAO,KAAW;QAChB,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IAC5C,CAAC;IAEM,WAAM,GAAb;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEM,gBAAW,GAAlB,UAAmB,UAAsB;QACvC,IAAM,KAAK,GAAa,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,UAAA,IAAI,IAAI,OAAA,IAAI,EAAJ,CAAI,CAAC,CAAC;QAC7D,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAEM,eAAU,GAAjB,UAAkB,UAAkB;QAClC,gEAAgE;QAChE,IAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAE/C,oEAAoE;QACpE,IAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAE7C,sDAAsD;QACtD,IAAM,KAAK,GAAG,SAAU,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAnB,CAAmB,CAAC,CAAC;QAE7D,OAAO,KAAK,CAAC;IACf,CAAC;IACH,WAAC;AAAD,CAAC,AAhDD,IAgDC;AAcQ,oBAAI;AAZb,IAAM,eAAe,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACrG,IAAM,SAAS,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC;AAC5C,IAAA,gBAAM,EAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,sCAAsC,CAAC,CAAC;AACvE,IAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;AAEnE,IAAA,gBAAM,EACJ,eAAe,CAAC,MAAM,KAAK,oBAAoB,CAAC,MAAM;IACtD,eAAe,CAAC,KAAK,CAAC,UAAC,KAAK,EAAE,KAAK,IAAK,OAAA,KAAK,KAAK,oBAAoB,CAAC,KAAK,CAAC,EAArC,CAAqC,CAAC,CAC/E,CAAC;AAEF,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"uuid.js","sourceRoot":"","sources":["uuid.ts"],"names":[],"mappings":";;;AACA,mEAAoE;AACpE,2BAA6B;AAE7B;IAGE,cAAY,KAAe;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,uBAAQ,GAAR;QACE,IAAM,SAAS,GAAe,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,sBAAO,GAAP;QACE,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,0BAAW,GAAX;QACE,IAAM,QAAQ,GAAG,IAAI,mBAAS,EAAE,CAAC;QACjC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACpD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,qBAAM,GAAN,UAAO,KAAW;QAChB,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IAC5C,CAAC;IAEM,WAAM,GAAb;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACzB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,CAAC;IAEM,gBAAW,GAAlB,UAAmB,UAAsB;QACvC,IAAM,KAAK,GAAa,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,UAAA,IAAI,IAAI,OAAA,IAAI,EAAJ,CAAI,CAAC,CAAC;QAC7D,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAEM,eAAU,GAAjB,UAAkB,UAAkB;QAClC,gEAAgE;QAChE,IAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAE/C,oEAAoE;QACpE,IAAM,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAE7C,sDAAsD;QACtD,IAAM,KAAK,GAAG,SAAU,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,EAAnB,CAAmB,CAAC,CAAC;QAE7D,OAAO,KAAK,CAAC;IACf,CAAC;IACH,WAAC;AAAD,CAAC,AAhDD,IAgDC;AAEQ,oBAAI"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var assert = require("assert");
4
+ var uuid_1 = require("./uuid");
5
+ test('test packing/unpacking string', function () {
6
+ testString();
7
+ });
8
+ function testString() {
9
+ var test_uuid_bytes = [217, 98, 253, 240, 51, 225, 77, 157, 153, 155, 126, 195, 80, 240, 203, 119];
10
+ var test_uuid = new uuid_1.UUID(test_uuid_bytes);
11
+ assert(test_uuid.toString() == 'd962fdf0-33e1-4d9d-999b-7ec350f0cb77');
12
+ var test_uuid_bytes_copy = uuid_1.UUID.fromString(test_uuid.toString());
13
+ assert(test_uuid_bytes.length === test_uuid_bytes_copy.length &&
14
+ test_uuid_bytes.every(function (value, index) { return value === test_uuid_bytes_copy[index]; }));
15
+ assert(uuid_1.UUID.random().toString().length == 36);
16
+ }
17
+ //# sourceMappingURL=uuid.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuid.test.js","sourceRoot":"","sources":["uuid.test.ts"],"names":[],"mappings":";;AAAA,+BAAkC;AAClC,+BAA8B;AAE9B,IAAI,CAAC,+BAA+B,EAAE;IACpC,UAAU,EAAE,CAAC;AACf,CAAC,CAAC,CAAC;AAEH,SAAS,UAAU;IACjB,IAAM,eAAe,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACrG,IAAM,SAAS,GAAG,IAAI,WAAI,CAAC,eAAe,CAAC,CAAC;IAC5C,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,sCAAsC,CAAC,CAAC;IACvE,IAAM,oBAAoB,GAAG,WAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEnE,MAAM,CACJ,eAAe,CAAC,MAAM,KAAK,oBAAoB,CAAC,MAAM;QACtD,eAAe,CAAC,KAAK,CAAC,UAAC,KAAK,EAAE,KAAK,IAAK,OAAA,KAAK,KAAK,oBAAoB,CAAC,KAAK,CAAC,EAArC,CAAqC,CAAC,CAC/E,CAAC;IAEF,MAAM,CAAC,WAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,21 @@
1
+ import assert = require('assert');
2
+ import { UUID } from './uuid';
3
+
4
+ test('test packing/unpacking string', () => {
5
+ testString();
6
+ });
7
+
8
+ function testString() {
9
+ const test_uuid_bytes = [217, 98, 253, 240, 51, 225, 77, 157, 153, 155, 126, 195, 80, 240, 203, 119];
10
+ const test_uuid = new UUID(test_uuid_bytes);
11
+ assert(test_uuid.toString() == 'd962fdf0-33e1-4d9d-999b-7ec350f0cb77');
12
+ const test_uuid_bytes_copy = UUID.fromString(test_uuid.toString());
13
+
14
+ assert(
15
+ test_uuid_bytes.length === test_uuid_bytes_copy.length &&
16
+ test_uuid_bytes.every((value, index) => value === test_uuid_bytes_copy[index])
17
+ );
18
+
19
+ assert(UUID.random().toString().length == 36);
20
+ }
21
+
@@ -52,16 +52,4 @@ class UUID {
52
52
  }
53
53
  }
54
54
 
55
- const test_uuid_bytes = [217, 98, 253, 240, 51, 225, 77, 157, 153, 155, 126, 195, 80, 240, 203, 119];
56
- const test_uuid = new UUID(test_uuid_bytes);
57
- assert(test_uuid.toString() == 'd962fdf0-33e1-4d9d-999b-7ec350f0cb77');
58
- const test_uuid_bytes_copy = UUID.fromString(test_uuid.toString());
59
-
60
- assert(
61
- test_uuid_bytes.length === test_uuid_bytes_copy.length &&
62
- test_uuid_bytes.every((value, index) => value === test_uuid_bytes_copy[index])
63
- );
64
-
65
- assert(UUID.random().toString().length == 36);
66
-
67
55
  export { UUID };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fintekkers/ledger-models",
3
3
  "todo": "Replace the version with build script version number",
4
- "version": "0.1.78",
4
+ "version": "0.1.80",
5
5
  "description": "ledger model protos ",
6
6
  "authors": [
7
7
  "David Doherty",