@fintekkers/ledger-models 0.4.8 → 0.4.10
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.d.ts +8 -0
- package/node/wrappers/models/portfolio/portfolio.js +54 -1
- package/node/wrappers/models/portfolio/portfolio.js.map +1 -1
- package/node/wrappers/models/portfolio/portfolio.ts +34 -1
- package/node/wrappers/models/portfolio-price-transaction.lazy-hydrate.test.d.ts +1 -0
- package/node/wrappers/models/portfolio-price-transaction.lazy-hydrate.test.js +158 -0
- package/node/wrappers/models/portfolio-price-transaction.lazy-hydrate.test.js.map +1 -0
- package/node/wrappers/models/portfolio-price-transaction.lazy-hydrate.test.ts +153 -0
- package/node/wrappers/models/price/Price.d.ts +5 -0
- package/node/wrappers/models/price/Price.js +48 -0
- package/node/wrappers/models/price/Price.js.map +1 -1
- package/node/wrappers/models/price/Price.ts +26 -0
- package/node/wrappers/models/security/security.d.ts +9 -3
- package/node/wrappers/models/security/security.js +57 -15
- package/node/wrappers/models/security/security.js.map +1 -1
- package/node/wrappers/models/security/security.lazy-hydrate.test.d.ts +1 -0
- package/node/wrappers/models/security/security.lazy-hydrate.test.js +127 -0
- package/node/wrappers/models/security/security.lazy-hydrate.test.js.map +1 -0
- package/node/wrappers/models/security/security.lazy-hydrate.test.ts +123 -0
- package/node/wrappers/models/security/security.ts +35 -17
- package/node/wrappers/models/transaction/transaction.d.ts +7 -0
- package/node/wrappers/models/transaction/transaction.js +61 -0
- package/node/wrappers/models/transaction/transaction.js.map +1 -1
- package/node/wrappers/models/transaction/transaction.ts +40 -0
- package/node/wrappers/services/portfolio-service/PortfolioService.js +35 -0
- package/node/wrappers/services/portfolio-service/PortfolioService.js.map +1 -1
- package/node/wrappers/services/portfolio-service/PortfolioService.ts +14 -2
- package/node/wrappers/services/price-service/PriceService.js +10 -0
- package/node/wrappers/services/price-service/PriceService.js.map +1 -1
- package/node/wrappers/services/price-service/PriceService.ts +12 -2
- package/node/wrappers/services/security-service/SecurityService.js +15 -0
- package/node/wrappers/services/security-service/SecurityService.js.map +1 -1
- package/node/wrappers/services/security-service/SecurityService.ts +17 -2
- package/node/wrappers/services/service-client-writethrough.test.d.ts +1 -0
- package/node/wrappers/services/service-client-writethrough.test.js +147 -0
- package/node/wrappers/services/service-client-writethrough.test.js.map +1 -0
- package/node/wrappers/services/service-client-writethrough.test.ts +141 -0
- package/node/wrappers/services/transaction-service/TransactionService.js +36 -0
- package/node/wrappers/services/transaction-service/TransactionService.js.map +1 -1
- package/node/wrappers/services/transaction-service/TransactionService.ts +13 -0
- package/node/wrappers/util/link-cache.d.ts +56 -0
- package/node/wrappers/util/link-cache.js +92 -0
- package/node/wrappers/util/link-cache.js.map +1 -0
- package/node/wrappers/util/link-cache.test.d.ts +1 -0
- package/node/wrappers/util/link-cache.test.js +107 -0
- package/node/wrappers/util/link-cache.test.js.map +1 -0
- package/node/wrappers/util/link-cache.test.ts +112 -0
- package/node/wrappers/util/link-cache.ts +110 -0
- package/node/wrappers/util/link-resolver.js +52 -0
- package/node/wrappers/util/link-resolver.js.map +1 -1
- package/node/wrappers/util/link-resolver.test.js +75 -0
- package/node/wrappers/util/link-resolver.test.js.map +1 -1
- package/node/wrappers/util/link-resolver.test.ts +62 -0
- package/node/wrappers/util/link-resolver.ts +29 -0
- package/package.json +1 -1
|
@@ -0,0 +1,107 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const link_cache_1 = require("./link-cache");
|
|
13
|
+
const datetime_1 = require("../models/utils/datetime");
|
|
14
|
+
const local_timestamp_pb_1 = require("../../fintekkers/models/util/local_timestamp_pb");
|
|
15
|
+
const timestamp_pb_1 = require("google-protobuf/google/protobuf/timestamp_pb");
|
|
16
|
+
const security_pb_1 = require("../../fintekkers/models/security/security_pb");
|
|
17
|
+
function makeAsOf(epochSecondsOffset = 0) {
|
|
18
|
+
const ts = new timestamp_pb_1.Timestamp();
|
|
19
|
+
ts.setSeconds(1700000000 + epochSecondsOffset);
|
|
20
|
+
ts.setNanos(0);
|
|
21
|
+
const proto = new local_timestamp_pb_1.LocalTimestampProto();
|
|
22
|
+
proto.setTimestamp(ts);
|
|
23
|
+
proto.setTimeZone('UTC');
|
|
24
|
+
return new datetime_1.ZonedDateTime(proto);
|
|
25
|
+
}
|
|
26
|
+
function makeSecurityProto(name) {
|
|
27
|
+
const p = new security_pb_1.SecurityProto();
|
|
28
|
+
p.setIssuerName(name);
|
|
29
|
+
return p;
|
|
30
|
+
}
|
|
31
|
+
describe('LinkCache', () => {
|
|
32
|
+
beforeEach(() => {
|
|
33
|
+
link_cache_1.SECURITY.clear();
|
|
34
|
+
link_cache_1.PORTFOLIO.clear();
|
|
35
|
+
link_cache_1.PRICE.clear();
|
|
36
|
+
link_cache_1.TRANSACTION.clear();
|
|
37
|
+
});
|
|
38
|
+
// ---- A. Basic get/put ----
|
|
39
|
+
test('get on empty cache returns undefined', () => {
|
|
40
|
+
expect(link_cache_1.SECURITY.get('uuid-1', makeAsOf())).toBeUndefined();
|
|
41
|
+
});
|
|
42
|
+
test('put then get with matching asOf returns value', () => {
|
|
43
|
+
const asOf = makeAsOf();
|
|
44
|
+
const val = makeSecurityProto('ACME');
|
|
45
|
+
link_cache_1.SECURITY.put('uuid-1', val, asOf);
|
|
46
|
+
expect(link_cache_1.SECURITY.get('uuid-1', asOf)).toBe(val);
|
|
47
|
+
});
|
|
48
|
+
test('get with different asOf returns undefined', () => {
|
|
49
|
+
link_cache_1.SECURITY.put('uuid-1', makeSecurityProto('v1'), makeAsOf(0));
|
|
50
|
+
expect(link_cache_1.SECURITY.get('uuid-1', makeAsOf(10))).toBeUndefined();
|
|
51
|
+
});
|
|
52
|
+
// ---- B. Null asOf semantics ----
|
|
53
|
+
test('null asOf within TTL returns value', () => {
|
|
54
|
+
const cache = new link_cache_1.LinkCache(60000);
|
|
55
|
+
cache.put('uuid-1', makeSecurityProto('v1'), makeAsOf());
|
|
56
|
+
expect(cache.get('uuid-1', null)).toBeDefined();
|
|
57
|
+
});
|
|
58
|
+
test('null asOf past TTL returns undefined', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
59
|
+
const cache = new link_cache_1.LinkCache(50);
|
|
60
|
+
cache.put('uuid-1', makeSecurityProto('v1'), makeAsOf());
|
|
61
|
+
yield new Promise((resolve) => setTimeout(resolve, 100));
|
|
62
|
+
expect(cache.get('uuid-1', null)).toBeUndefined();
|
|
63
|
+
}));
|
|
64
|
+
test('non-null asOf is not subject to TTL', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
65
|
+
const cache = new link_cache_1.LinkCache(50);
|
|
66
|
+
const asOf = makeAsOf();
|
|
67
|
+
const val = makeSecurityProto('v1');
|
|
68
|
+
cache.put('uuid-1', val, asOf);
|
|
69
|
+
yield new Promise((resolve) => setTimeout(resolve, 100));
|
|
70
|
+
// Bitemporal: history doesn't change, exact-asOf reads never expire.
|
|
71
|
+
expect(cache.get('uuid-1', asOf)).toBe(val);
|
|
72
|
+
}));
|
|
73
|
+
// ---- C. Newest-wins merge ----
|
|
74
|
+
test('put with older asOf does not overwrite newer', () => {
|
|
75
|
+
var _a;
|
|
76
|
+
link_cache_1.SECURITY.put('uuid-1', makeSecurityProto('newer'), makeAsOf(100));
|
|
77
|
+
link_cache_1.SECURITY.put('uuid-1', makeSecurityProto('older'), makeAsOf(50));
|
|
78
|
+
expect((_a = link_cache_1.SECURITY.get('uuid-1', makeAsOf(100))) === null || _a === void 0 ? void 0 : _a.getIssuerName()).toBe('newer');
|
|
79
|
+
expect(link_cache_1.SECURITY.get('uuid-1', makeAsOf(50))).toBeUndefined();
|
|
80
|
+
});
|
|
81
|
+
test('put with newer asOf replaces older', () => {
|
|
82
|
+
var _a;
|
|
83
|
+
link_cache_1.SECURITY.put('uuid-1', makeSecurityProto('older'), makeAsOf(50));
|
|
84
|
+
link_cache_1.SECURITY.put('uuid-1', makeSecurityProto('newer'), makeAsOf(100));
|
|
85
|
+
expect((_a = link_cache_1.SECURITY.get('uuid-1', makeAsOf(100))) === null || _a === void 0 ? void 0 : _a.getIssuerName()).toBe('newer');
|
|
86
|
+
});
|
|
87
|
+
// ---- D. Evict & clear ----
|
|
88
|
+
test('evict removes entry', () => {
|
|
89
|
+
link_cache_1.SECURITY.put('uuid-1', makeSecurityProto('v1'), makeAsOf());
|
|
90
|
+
link_cache_1.SECURITY.evict('uuid-1');
|
|
91
|
+
expect(link_cache_1.SECURITY.get('uuid-1', makeAsOf())).toBeUndefined();
|
|
92
|
+
});
|
|
93
|
+
test('clear empties cache', () => {
|
|
94
|
+
link_cache_1.SECURITY.put('a', makeSecurityProto('a'), makeAsOf());
|
|
95
|
+
link_cache_1.SECURITY.put('b', makeSecurityProto('b'), makeAsOf());
|
|
96
|
+
link_cache_1.SECURITY.clear();
|
|
97
|
+
expect(link_cache_1.SECURITY.size()).toBe(0);
|
|
98
|
+
});
|
|
99
|
+
// ---- E. Singleton isolation ----
|
|
100
|
+
test('singletons have independent state', () => {
|
|
101
|
+
link_cache_1.SECURITY.put('uuid-1', makeSecurityProto('sec'), makeAsOf());
|
|
102
|
+
expect(link_cache_1.PORTFOLIO.get('uuid-1', makeAsOf())).toBeUndefined();
|
|
103
|
+
expect(link_cache_1.PRICE.get('uuid-1', makeAsOf())).toBeUndefined();
|
|
104
|
+
expect(link_cache_1.TRANSACTION.get('uuid-1', makeAsOf())).toBeUndefined();
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
//# sourceMappingURL=link-cache.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link-cache.test.js","sourceRoot":"","sources":["link-cache.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { LinkCache, SECURITY, PORTFOLIO, PRICE, TRANSACTION } from './link-cache';
|
|
2
|
+
import { ZonedDateTime } from '../models/utils/datetime';
|
|
3
|
+
import { LocalTimestampProto } from '../../fintekkers/models/util/local_timestamp_pb';
|
|
4
|
+
import { Timestamp } from 'google-protobuf/google/protobuf/timestamp_pb';
|
|
5
|
+
import { SecurityProto } from '../../fintekkers/models/security/security_pb';
|
|
6
|
+
|
|
7
|
+
function makeAsOf(epochSecondsOffset: number = 0): ZonedDateTime {
|
|
8
|
+
const ts = new Timestamp();
|
|
9
|
+
ts.setSeconds(1700000000 + epochSecondsOffset);
|
|
10
|
+
ts.setNanos(0);
|
|
11
|
+
const proto = new LocalTimestampProto();
|
|
12
|
+
proto.setTimestamp(ts);
|
|
13
|
+
proto.setTimeZone('UTC');
|
|
14
|
+
return new ZonedDateTime(proto);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function makeSecurityProto(name: string): SecurityProto {
|
|
18
|
+
const p = new SecurityProto();
|
|
19
|
+
p.setIssuerName(name);
|
|
20
|
+
return p;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
describe('LinkCache', () => {
|
|
24
|
+
beforeEach(() => {
|
|
25
|
+
SECURITY.clear();
|
|
26
|
+
PORTFOLIO.clear();
|
|
27
|
+
PRICE.clear();
|
|
28
|
+
TRANSACTION.clear();
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
// ---- A. Basic get/put ----
|
|
32
|
+
|
|
33
|
+
test('get on empty cache returns undefined', () => {
|
|
34
|
+
expect(SECURITY.get('uuid-1', makeAsOf())).toBeUndefined();
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
test('put then get with matching asOf returns value', () => {
|
|
38
|
+
const asOf = makeAsOf();
|
|
39
|
+
const val = makeSecurityProto('ACME');
|
|
40
|
+
SECURITY.put('uuid-1', val, asOf);
|
|
41
|
+
expect(SECURITY.get('uuid-1', asOf)).toBe(val);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
test('get with different asOf returns undefined', () => {
|
|
45
|
+
SECURITY.put('uuid-1', makeSecurityProto('v1'), makeAsOf(0));
|
|
46
|
+
expect(SECURITY.get('uuid-1', makeAsOf(10))).toBeUndefined();
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
// ---- B. Null asOf semantics ----
|
|
50
|
+
|
|
51
|
+
test('null asOf within TTL returns value', () => {
|
|
52
|
+
const cache = new LinkCache<SecurityProto>(60_000);
|
|
53
|
+
cache.put('uuid-1', makeSecurityProto('v1'), makeAsOf());
|
|
54
|
+
expect(cache.get('uuid-1', null)).toBeDefined();
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
test('null asOf past TTL returns undefined', async () => {
|
|
58
|
+
const cache = new LinkCache<SecurityProto>(50);
|
|
59
|
+
cache.put('uuid-1', makeSecurityProto('v1'), makeAsOf());
|
|
60
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
61
|
+
expect(cache.get('uuid-1', null)).toBeUndefined();
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
test('non-null asOf is not subject to TTL', async () => {
|
|
65
|
+
const cache = new LinkCache<SecurityProto>(50);
|
|
66
|
+
const asOf = makeAsOf();
|
|
67
|
+
const val = makeSecurityProto('v1');
|
|
68
|
+
cache.put('uuid-1', val, asOf);
|
|
69
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
70
|
+
// Bitemporal: history doesn't change, exact-asOf reads never expire.
|
|
71
|
+
expect(cache.get('uuid-1', asOf)).toBe(val);
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
// ---- C. Newest-wins merge ----
|
|
75
|
+
|
|
76
|
+
test('put with older asOf does not overwrite newer', () => {
|
|
77
|
+
SECURITY.put('uuid-1', makeSecurityProto('newer'), makeAsOf(100));
|
|
78
|
+
SECURITY.put('uuid-1', makeSecurityProto('older'), makeAsOf(50));
|
|
79
|
+
expect(SECURITY.get('uuid-1', makeAsOf(100))?.getIssuerName()).toBe('newer');
|
|
80
|
+
expect(SECURITY.get('uuid-1', makeAsOf(50))).toBeUndefined();
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
test('put with newer asOf replaces older', () => {
|
|
84
|
+
SECURITY.put('uuid-1', makeSecurityProto('older'), makeAsOf(50));
|
|
85
|
+
SECURITY.put('uuid-1', makeSecurityProto('newer'), makeAsOf(100));
|
|
86
|
+
expect(SECURITY.get('uuid-1', makeAsOf(100))?.getIssuerName()).toBe('newer');
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
// ---- D. Evict & clear ----
|
|
90
|
+
|
|
91
|
+
test('evict removes entry', () => {
|
|
92
|
+
SECURITY.put('uuid-1', makeSecurityProto('v1'), makeAsOf());
|
|
93
|
+
SECURITY.evict('uuid-1');
|
|
94
|
+
expect(SECURITY.get('uuid-1', makeAsOf())).toBeUndefined();
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
test('clear empties cache', () => {
|
|
98
|
+
SECURITY.put('a', makeSecurityProto('a'), makeAsOf());
|
|
99
|
+
SECURITY.put('b', makeSecurityProto('b'), makeAsOf());
|
|
100
|
+
SECURITY.clear();
|
|
101
|
+
expect(SECURITY.size()).toBe(0);
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
// ---- E. Singleton isolation ----
|
|
105
|
+
|
|
106
|
+
test('singletons have independent state', () => {
|
|
107
|
+
SECURITY.put('uuid-1', makeSecurityProto('sec'), makeAsOf());
|
|
108
|
+
expect(PORTFOLIO.get('uuid-1', makeAsOf())).toBeUndefined();
|
|
109
|
+
expect(PRICE.get('uuid-1', makeAsOf())).toBeUndefined();
|
|
110
|
+
expect(TRANSACTION.get('uuid-1', makeAsOf())).toBeUndefined();
|
|
111
|
+
});
|
|
112
|
+
});
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { SecurityProto } from '../../fintekkers/models/security/security_pb';
|
|
2
|
+
import { PortfolioProto } from '../../fintekkers/models/portfolio/portfolio_pb';
|
|
3
|
+
import { PriceProto } from '../../fintekkers/models/price/price_pb';
|
|
4
|
+
import { TransactionProto } from '../../fintekkers/models/transaction/transaction_pb';
|
|
5
|
+
import { ZonedDateTime } from '../models/utils/datetime';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* LinkCache — process-wide cache of resolved proto bodies backing link-mode
|
|
9
|
+
* wrappers. TypeScript mirror of `common.util.LinkCache` (Java) and
|
|
10
|
+
* `fintekkers.wrappers.util.link_cache` (Python). See
|
|
11
|
+
* `docs/adr/lazy-link-hydration.md`.
|
|
12
|
+
*
|
|
13
|
+
* Read semantics (`get`):
|
|
14
|
+
* - `requestedAsOf == null` ("latest acceptable") — cache hit allowed;
|
|
15
|
+
* subject to `ttlForLatestMs` to bound cross-process staleness this
|
|
16
|
+
* process can't observe. Past TTL ⇒ miss.
|
|
17
|
+
* - `requestedAsOf != null` (bitemporal-precise) — cache hit only when the
|
|
18
|
+
* cached entry's asOf equals the requested. No TTL — history doesn't
|
|
19
|
+
* change, so a past vintage cached arbitrarily long is fine.
|
|
20
|
+
*
|
|
21
|
+
* Write semantics (`put`): newest-vintage wins. An older-vintage put does
|
|
22
|
+
* not evict a newer cached entry.
|
|
23
|
+
*
|
|
24
|
+
* Later Portfolio can likely be 1 day, security 1 day, transaction 1 minute,
|
|
25
|
+
* price 30 seconds — once per-entity TTLs are wired up, the shared singletons
|
|
26
|
+
* below should be constructed with those values.
|
|
27
|
+
*/
|
|
28
|
+
export const DEFAULT_TTL_FOR_LATEST_MS = 600_000;
|
|
29
|
+
|
|
30
|
+
interface CacheEntry<V> {
|
|
31
|
+
value: V;
|
|
32
|
+
/** Bitemporal asOf carried by the cached value. */
|
|
33
|
+
asOf: ZonedDateTime;
|
|
34
|
+
/** Wall-clock ms at the moment this entry was cached. */
|
|
35
|
+
cachedAtMs: number;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export class LinkCache<V> {
|
|
39
|
+
private map = new Map<string, CacheEntry<V>>();
|
|
40
|
+
|
|
41
|
+
constructor(private ttlForLatestMs: number = DEFAULT_TTL_FOR_LATEST_MS) {
|
|
42
|
+
if (ttlForLatestMs < 0) {
|
|
43
|
+
throw new Error(`ttlForLatestMs must be non-negative; got ${ttlForLatestMs}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @param uuidKey the entity uuid rendered as a stable string key
|
|
49
|
+
* (use uuid.toString())
|
|
50
|
+
* @param requestedAsOf null = "latest acceptable" (TTL-bounded);
|
|
51
|
+
* non-null = exact-vintage match required (no TTL)
|
|
52
|
+
* @returns the cached value if the lookup is a hit; otherwise undefined
|
|
53
|
+
* (caller must refetch)
|
|
54
|
+
*/
|
|
55
|
+
get(uuidKey: string, requestedAsOf: ZonedDateTime | null): V | undefined {
|
|
56
|
+
const entry = this.map.get(uuidKey);
|
|
57
|
+
if (!entry) return undefined;
|
|
58
|
+
if (requestedAsOf == null) {
|
|
59
|
+
if (Date.now() - entry.cachedAtMs > this.ttlForLatestMs) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
return entry.value;
|
|
63
|
+
}
|
|
64
|
+
return this._sameAsOf(entry.asOf, requestedAsOf) ? entry.value : undefined;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Newest-wins write: if a cached entry for `uuidKey` already exists with
|
|
69
|
+
* an asOf strictly after the incoming asOf, the write is ignored.
|
|
70
|
+
*/
|
|
71
|
+
put(uuidKey: string, value: V, asOf: ZonedDateTime): void {
|
|
72
|
+
if (!uuidKey || !value || !asOf) {
|
|
73
|
+
throw new Error(
|
|
74
|
+
`uuidKey / value / asOf must all be set; got uuidKey=${uuidKey} value=${value ? '<non-null>' : 'null'} asOf=${asOf}`
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
const existing = this.map.get(uuidKey);
|
|
78
|
+
if (existing && this._isStrictlyAfter(existing.asOf, asOf)) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
this.map.set(uuidKey, { value, asOf, cachedAtMs: Date.now() });
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
evict(uuidKey: string): void {
|
|
85
|
+
this.map.delete(uuidKey);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
clear(): void {
|
|
89
|
+
this.map.clear();
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/** Test helper. */
|
|
93
|
+
size(): number {
|
|
94
|
+
return this.map.size;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
private _sameAsOf(a: ZonedDateTime, b: ZonedDateTime): boolean {
|
|
98
|
+
return a.getSeconds() === b.getSeconds() && a.getNanoSeconds() === b.getNanoSeconds();
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
private _isStrictlyAfter(a: ZonedDateTime, b: ZonedDateTime): boolean {
|
|
102
|
+
if (a.getSeconds() !== b.getSeconds()) return a.getSeconds() > b.getSeconds();
|
|
103
|
+
return a.getNanoSeconds() > b.getNanoSeconds();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export const SECURITY = new LinkCache<SecurityProto>();
|
|
108
|
+
export const PORTFOLIO = new LinkCache<PortfolioProto>();
|
|
109
|
+
export const PRICE = new LinkCache<PriceProto>();
|
|
110
|
+
export const TRANSACTION = new LinkCache<TransactionProto>();
|
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -21,6 +44,31 @@ const security_1 = __importDefault(require("../models/security/security"));
|
|
|
21
44
|
const portfolio_1 = __importDefault(require("../models/portfolio/portfolio"));
|
|
22
45
|
const uuid_1 = require("../models/utils/uuid");
|
|
23
46
|
const requestcontext_1 = __importDefault(require("../models/utils/requestcontext"));
|
|
47
|
+
const datetime_1 = require("../models/utils/datetime");
|
|
48
|
+
const LinkCacheModule = __importStar(require("./link-cache"));
|
|
49
|
+
/**
|
|
50
|
+
* Mirror a freshly-fetched SecurityProto into the process-wide
|
|
51
|
+
* `LinkCache.SECURITY`. The lazy-hydrate `SecurityWrapper.ensureHydrated()`
|
|
52
|
+
* reads from this cache, so pre-warming via LinkResolver immediately
|
|
53
|
+
* benefits accessor reads. Skips silently when the resolved proto lacks
|
|
54
|
+
* uuid or as_of — `LinkCache.put` requires both.
|
|
55
|
+
*/
|
|
56
|
+
function populateSecurityLinkCache(proto) {
|
|
57
|
+
const uuidProto = proto.getUuid();
|
|
58
|
+
const asOfProto = proto.getAsOf();
|
|
59
|
+
if (!uuidProto || !asOfProto)
|
|
60
|
+
return;
|
|
61
|
+
const uuidKey = uuid_1.UUID.fromU8Array(uuidProto.getRawUuid_asU8()).toString();
|
|
62
|
+
LinkCacheModule.SECURITY.put(uuidKey, proto, new datetime_1.ZonedDateTime(asOfProto));
|
|
63
|
+
}
|
|
64
|
+
function populatePortfolioLinkCache(proto) {
|
|
65
|
+
const uuidProto = proto.getUuid();
|
|
66
|
+
const asOfProto = proto.getAsOf();
|
|
67
|
+
if (!uuidProto || !asOfProto)
|
|
68
|
+
return;
|
|
69
|
+
const uuidKey = uuid_1.UUID.fromU8Array(uuidProto.getRawUuid_asU8()).toString();
|
|
70
|
+
LinkCacheModule.PORTFOLIO.put(uuidKey, proto, new datetime_1.ZonedDateTime(asOfProto));
|
|
71
|
+
}
|
|
24
72
|
/**
|
|
25
73
|
* Tiny LRU. Map keeps insertion order; on get-hit we delete + re-insert
|
|
26
74
|
* to bump to the end (most recently used). On overflow we drop the
|
|
@@ -195,6 +243,7 @@ class LinkResolver {
|
|
|
195
243
|
continue;
|
|
196
244
|
const uuidStr = uuid_1.UUID.fromU8Array(uuidProto.getRawUuid_asU8()).toString();
|
|
197
245
|
this.securityCache.set(`${uuidStr}@${bucketKey}`, proto);
|
|
246
|
+
populateSecurityLinkCache(proto);
|
|
198
247
|
}
|
|
199
248
|
})));
|
|
200
249
|
// Mutate each item's embedded security in place.
|
|
@@ -253,6 +302,7 @@ class LinkResolver {
|
|
|
253
302
|
continue;
|
|
254
303
|
const uuidStr = uuid_1.UUID.fromU8Array(uuidProto.getRawUuid_asU8()).toString();
|
|
255
304
|
this.portfolioCache.set(`${uuidStr}@${bucketKey}`, proto);
|
|
305
|
+
populatePortfolioLinkCache(proto);
|
|
256
306
|
}
|
|
257
307
|
})));
|
|
258
308
|
for (const item of items) {
|
|
@@ -294,6 +344,7 @@ class LinkResolver {
|
|
|
294
344
|
}
|
|
295
345
|
const proto = protos[0];
|
|
296
346
|
this.securityCache.set(key, proto);
|
|
347
|
+
populateSecurityLinkCache(proto);
|
|
297
348
|
return proto;
|
|
298
349
|
}).finally(() => {
|
|
299
350
|
this.securityInFlight.delete(key);
|
|
@@ -317,6 +368,7 @@ class LinkResolver {
|
|
|
317
368
|
}
|
|
318
369
|
const proto = protos[0];
|
|
319
370
|
this.portfolioCache.set(key, proto);
|
|
371
|
+
populatePortfolioLinkCache(proto);
|
|
320
372
|
return proto;
|
|
321
373
|
}).finally(() => {
|
|
322
374
|
this.portfolioInFlight.delete(key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-resolver.js","sourceRoot":"","sources":["link-resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+BAAiC;AAOjC,kHAAqG;AACrG,qHAAwG;AACxG,4GAAyG;AAEzG,+GAA4G;AAG5G,2EAAmD;AACnD,8EAAsD;AACtD,+CAA4C;AAC5C,oFAAuD;AA+DvD;;;;;GAKG;AACH,MAAM,OAAO;IAEX,YAAoB,OAAe,EAAU,KAAc;QAAvC,YAAO,GAAP,OAAO,CAAQ;QAAU,UAAK,GAAL,KAAK,CAAS;QADnD,QAAG,GAAG,IAAI,GAAG,EAAyB,CAAC;IACe,CAAC;IAE/D,GAAG,CAAC,GAAW;QACb,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE;YAC1E,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,SAAS,CAAC;SAClB;QACD,8BAA8B;QAC9B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAQ;QACvB,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC;YAAE,OAAO;QAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;YAC5C,IAAI,MAAM,KAAK,SAAS;gBAAE,MAAM;YAChC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;SACzB;IACH,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,SAAS,OAAO,CAAC,IAAqC;IACpD,IAAI,CAAC,IAAI;QAAE,OAAO,QAAQ,CAAC;IAC3B,sCAAsC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACrC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,YAAY;IAahB,YAAY,OAA4B,EAAE;;QAN1C,qEAAqE;QACrE,qEAAqE;QACrE,uCAAuC;QAC/B,qBAAgB,GAAG,IAAI,GAAG,EAAkC,CAAC;QAC7D,sBAAiB,GAAG,IAAI,GAAG,EAAmC,CAAC;QAGrE,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,SAAS,mCAAI,IAAI,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzB,IAAI,CAAC,aAAa,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAEpD,IAAI,IAAI,CAAC,cAAc,EAAE;YACvB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;SAC3C;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,wBAAS,CAAC,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3F,IAAI,CAAC,cAAc,GAAG,IAAI,yCAAc,CAAC,wBAAS,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;SAC3F;aAAM;YACL,IAAI,CAAC,cAAc,GAAG,IAAI,yCAAc,CAAC,wBAAS,CAAC,MAAM,EAAE,wBAAS,CAAC,cAAc,CAAC,CAAC;SACtF;QAED,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;SAC7C;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;YACtB,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,wBAAS,CAAC,6BAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3F,IAAI,CAAC,eAAe,GAAG,IAAI,2CAAe,CAAC,wBAAS,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;SAC7F;aAAM;YACL,IAAI,CAAC,eAAe,GAAG,IAAI,2CAAe,CAAC,wBAAS,CAAC,MAAM,EAAE,wBAAS,CAAC,cAAc,CAAC,CAAC;SACxF;IACH,CAAC;IAED;;;;;OAKG;IACG,WAAW,CAAC,IAAU,EAAE,IAA0B;;YACtD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxD,OAAO,kBAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;KAAA;IAED;;;OAGG;IACG,YAAY,CAAC,IAAU,EAAE,IAA0B;;YACvD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACzD,OAAO,IAAI,mBAAS,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;KAAA;IAED;;;;;;;;;;;;;OAaG;IACG,iBAAiB,CAA+B,KAAU;;YAC9D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAErC,oEAAoE;YACpE,MAAM,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;YACrD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBACrC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;oBAAE,SAAS;gBACvC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChC,IAAI,CAAC,SAAS;oBAAE,SAAS;gBACzB,MAAM,IAAI,GAAG,WAAI,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC;gBAC3D,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;gBAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,SAAS,EAAE,CAAC;gBACnD,uDAAuD;gBACvD,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBAC/C,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACpC,IAAI,CAAC,MAAM,EAAE;oBACX,MAAM,GAAG,IAAI,GAAG,EAAgB,CAAC;oBACjC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;iBAChC;gBACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;aACvD;YAED,uDAAuD;YACvD,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAO,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE;gBAC/D,iEAAiE;gBACjE,mEAAmE;gBACnE,6BAA6B;gBAC7B,MAAM,IAAI,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC;gBAClH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBACpF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;oBAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClC,IAAI,CAAC,SAAS;wBAAE,SAAS;oBACzB,MAAM,OAAO,GAAG,WAAI,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACzE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;iBAC1D;YACH,CAAC,CAAA,CAAC,CACH,CAAC;YAEF,iDAAiD;YACjD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBACrC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;oBAAE,SAAS;gBACvC,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChC,IAAI,CAAC,SAAS;oBAAE,SAAS;gBACzB,MAAM,OAAO,GAAG,WAAI,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACzE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;gBACnE,IAAI,QAAQ;oBAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;aAChD;YAED,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IAED;;;OAGG;IACG,iBAAiB,CAAgC,KAAU;;YAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAErC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;YACrD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;oBAAE,SAAS;gBACzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC,SAAS;oBAAE,SAAS;gBACzB,MAAM,IAAI,GAAG,WAAI,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC;gBAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChC,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,SAAS,EAAE,CAAC;gBACnD,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,SAAS;gBAChD,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACpC,IAAI,CAAC,MAAM,EAAE;oBACX,MAAM,GAAG,IAAI,GAAG,EAAgB,CAAC;oBACjC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;iBAChC;gBACD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;aACvD;YAED,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAO,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE;gBAC/D,MAAM,IAAI,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,SAAS,CAAC,CAAC;gBACjH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gBACpF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;oBAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClC,IAAI,CAAC,SAAS;wBAAE,SAAS;oBACzB,MAAM,OAAO,GAAG,WAAI,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;oBACzE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;iBAC3D;YACH,CAAC,CAAA,CAAC,CACH,CAAC;YAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;gBACvC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;oBAAE,SAAS;gBACzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,CAAC,SAAS;oBAAE,SAAS;gBACzB,MAAM,OAAO,GAAG,WAAI,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACzE,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;gBACpE,IAAI,QAAQ;oBAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;aACjD;YAED,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IAED,qDAAqD;IACrD,UAAU;QACR,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,kCAAkC;IAEpB,kBAAkB,CAAC,IAAU,EAAE,IAA0B;;YACrE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAElD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;YAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAChD,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;oBACvB,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBAC5E;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACnC,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACxC,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;IAEa,mBAAmB,CAAC,IAAU,EAAE,IAA0B;;YACtE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAElD,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAC;YAE1B,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAE9B,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBACtE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;oBACvB,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iBAC7E;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACpC,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACzC,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;IAEa,oBAAoB,CAAC,KAAa,EAAE,IAA0B;;YAC1E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,IAAI,qDAAyB,EAAE,CAAC;YAChD,OAAO,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;YAC1C,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,UAAU,GAAgB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAClE,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YACjC,IAAI,IAAI;gBAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEhC,MAAM,aAAa,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACxF,MAAM,QAAQ,GAAG,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,CAA+B,CAAC;YAC9E,OAAO,QAAQ,CAAC,uBAAuB,EAAE,CAAC;QAC5C,CAAC;KAAA;IAEa,oBAAoB,CAAC,KAAa,EAAE,IAA0B;;YAC1E,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,IAAI,uDAA0B,EAAE,CAAC;YACjD,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;YAC3C,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC5B,MAAM,UAAU,GAAgB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YAClE,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YACjC,IAAI,IAAI;gBAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEhC,MAAM,aAAa,GAAG,IAAA,gBAAS,EAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;YAC1F,MAAM,QAAQ,GAAG,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,CAAgC,CAAC;YAC/E,OAAO,QAAQ,CAAC,wBAAwB,EAAE,CAAC;QAC7C,CAAC;KAAA;CACF;AAED;;;;GAIG;AACH,SAAS,iBAAiB,CACxB,KAAU,EACV,IAAgE,EAChE,SAAiB;IAEjB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;YAAE,SAAS;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;KAC9C;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAoBD,kBAAe,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"link-resolver.js","sourceRoot":"","sources":["link-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -346,4 +369,56 @@ describe('LinkResolver', () => {
|
|
|
346
369
|
expect(callLog.count).toBe(2);
|
|
347
370
|
}));
|
|
348
371
|
});
|
|
372
|
+
const LinkCacheModule = __importStar(require("./link-cache"));
|
|
373
|
+
const datetime_1 = require("../models/utils/datetime");
|
|
374
|
+
describe('LinkResolver write-through to LinkCache', () => {
|
|
375
|
+
beforeEach(() => {
|
|
376
|
+
LinkCacheModule.SECURITY.clear();
|
|
377
|
+
LinkCacheModule.PORTFOLIO.clear();
|
|
378
|
+
});
|
|
379
|
+
function fullSecurityWithAsOf(uuid, issuer, asOf) {
|
|
380
|
+
const proto = fullSecurity(uuid, issuer);
|
|
381
|
+
proto.setAsOf(asOf);
|
|
382
|
+
return proto;
|
|
383
|
+
}
|
|
384
|
+
test('getSecurity populates LinkCache.SECURITY', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
385
|
+
const uuid = uuid_1.UUID.random();
|
|
386
|
+
const asOf = makeAsOf(1700000010);
|
|
387
|
+
const store = new Map([
|
|
388
|
+
[uuid.toString(), fullSecurityWithAsOf(uuid, 'ACME', asOf)],
|
|
389
|
+
]);
|
|
390
|
+
const resolver = new link_resolver_1.default({
|
|
391
|
+
securityClient: mockSecurityClient(store, newCallLog()),
|
|
392
|
+
portfolioClient: mockPortfolioClient(new Map(), newCallLog()),
|
|
393
|
+
});
|
|
394
|
+
const out = yield resolver.getSecurity(uuid, asOf);
|
|
395
|
+
expect(out.getIssuerName()).toBe('ACME');
|
|
396
|
+
const cached = LinkCacheModule.SECURITY.get(uuid.toString(), new datetime_1.ZonedDateTime(asOf));
|
|
397
|
+
expect(cached).toBeDefined();
|
|
398
|
+
expect(cached.getIssuerName()).toBe('ACME');
|
|
399
|
+
}));
|
|
400
|
+
test('resolveSecurities populates LinkCache.SECURITY', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
401
|
+
const uuid = uuid_1.UUID.random();
|
|
402
|
+
const asOf = makeAsOf(1700000011);
|
|
403
|
+
const store = new Map([
|
|
404
|
+
[uuid.toString(), fullSecurityWithAsOf(uuid, 'BULK', asOf)],
|
|
405
|
+
]);
|
|
406
|
+
const resolver = new link_resolver_1.default({
|
|
407
|
+
securityClient: mockSecurityClient(store, newCallLog()),
|
|
408
|
+
portfolioClient: mockPortfolioClient(new Map(), newCallLog()),
|
|
409
|
+
});
|
|
410
|
+
const linkSec = new security_pb_1.SecurityProto();
|
|
411
|
+
linkSec.setUuid(uuid.toUUIDProto());
|
|
412
|
+
linkSec.setIsLink(true);
|
|
413
|
+
linkSec.setAsOf(asOf);
|
|
414
|
+
const priceProto = new price_pb_1.PriceProto();
|
|
415
|
+
priceProto.setUuid(uuid_1.UUID.random().toUUIDProto());
|
|
416
|
+
priceProto.setSecurity(linkSec);
|
|
417
|
+
const price = new Price_1.default(priceProto);
|
|
418
|
+
yield resolver.resolveSecurities([price]);
|
|
419
|
+
const cached = LinkCacheModule.SECURITY.get(uuid.toString(), new datetime_1.ZonedDateTime(asOf));
|
|
420
|
+
expect(cached).toBeDefined();
|
|
421
|
+
expect(cached.getIssuerName()).toBe('BULK');
|
|
422
|
+
}));
|
|
423
|
+
});
|
|
349
424
|
//# sourceMappingURL=link-resolver.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-resolver.test.js","sourceRoot":"","sources":["link-resolver.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"link-resolver.test.js","sourceRoot":"","sources":["link-resolver.test.ts"],"names":[],"mappings":"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"}
|