@sonarwatch/portfolio-core 0.4.49 → 0.5.1

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/CHANGELOG.md CHANGED
@@ -2,10 +2,18 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
- ## [0.4.49](https://github.com/sonarwatch/portfolio/compare/core-0.4.48...core-0.4.49) (2023-07-19)
5
+ ## [0.5.1](https://github.com/sonarwatch/portfolio/compare/core-0.5.0...core-0.5.1) (2023-07-20)
6
6
 
7
7
 
8
8
 
9
+ # [0.5.0](https://github.com/sonarwatch/portfolio/compare/core-0.4.49...core-0.5.0) (2023-07-20)
10
+
11
+
12
+
13
+ ## [0.4.49](https://github.com/sonarwatch/portfolio/compare/core-0.4.48...core-0.4.49) (2023-07-19)
14
+
15
+
16
+
9
17
  ## [0.4.48](https://github.com/sonarwatch/portfolio/compare/core-0.4.47...core-0.4.48) (2023-07-18)
10
18
 
11
19
 
package/package.json CHANGED
@@ -1,13 +1,12 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-core",
3
- "version": "0.4.49",
3
+ "version": "0.5.1",
4
4
  "type": "commonjs",
5
5
  "dependencies": {
6
6
  "@ethersproject/address": "^5.7.0",
7
7
  "@ethersproject/bytes": "^5.7.0",
8
8
  "@solana/web3.js": "^1.78.0",
9
- "bitcoin-address-validation": "^2.2.1",
10
- "unstorage": "^1.7.0"
9
+ "bitcoin-address-validation": "^2.2.1"
11
10
  },
12
11
  "main": "./src/index.js",
13
12
  "types": "./src/index.d.ts"
package/src/index.d.ts CHANGED
@@ -10,6 +10,3 @@ export * from './Portfolio';
10
10
  export * from './TokenList';
11
11
  export * from './TokenPrice';
12
12
  export * from './Yield';
13
- export * from './Job';
14
- export * from './Fetcher';
15
- export * from './Cache';
package/src/index.js CHANGED
@@ -26,7 +26,4 @@ __exportStar(require("./Portfolio"), exports);
26
26
  __exportStar(require("./TokenList"), exports);
27
27
  __exportStar(require("./TokenPrice"), exports);
28
28
  __exportStar(require("./Yield"), exports);
29
- __exportStar(require("./Job"), exports);
30
- __exportStar(require("./Fetcher"), exports);
31
- __exportStar(require("./Cache"), exports);
32
29
  //# sourceMappingURL=index.js.map
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/core/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,2CAAyB;AACzB,0CAAwB;AACxB,4CAA0B;AAC1B,6CAA2B;AAC3B,2CAAyB;AACzB,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,8CAA4B;AAC5B,+CAA6B;AAC7B,0CAAwB;AACxB,wCAAsB;AACtB,4CAA0B;AAC1B,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/core/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,2CAAyB;AACzB,0CAAwB;AACxB,4CAA0B;AAC1B,6CAA2B;AAC3B,2CAAyB;AACzB,4CAA0B;AAC1B,6CAA2B;AAC3B,8CAA4B;AAC5B,8CAA4B;AAC5B,+CAA6B;AAC7B,0CAAwB"}
package/src/Cache.d.ts DELETED
@@ -1,79 +0,0 @@
1
- import { Storage, StorageValue } from 'unstorage';
2
- import { NetworkIdType } from './Network';
3
- import { TokenPrice, TokenPriceSource } from './TokenPrice';
4
- export type TransactionOptions = {
5
- prefix: string;
6
- networkId?: NetworkIdType;
7
- };
8
- export type CacheConfig = CacheConfigOverlayHttp | CacheConfigMemory | CacheConfigRedis | CacheConfigFilesystem | CacheConfigHttp;
9
- export type CacheConfigOverlayHttp = {
10
- type: 'overlayHttp';
11
- params: CacheConfigOverlayHttpParams;
12
- };
13
- export type CacheConfigOverlayHttpParams = {
14
- bases: string[];
15
- };
16
- export type CacheConfigMemory = {
17
- type: 'memory';
18
- params: CacheConfigMemoryParams;
19
- };
20
- export type CacheConfigMemoryParams = {
21
- ttl?: number;
22
- };
23
- export type CacheConfigHttp = {
24
- type: 'http';
25
- params: CacheConfigHttpParams;
26
- };
27
- export type CacheConfigHttpParams = {
28
- base: string;
29
- headers?: Record<string, string>;
30
- };
31
- export type CacheConfigRedis = {
32
- type: 'redis';
33
- params: CacheConfigRedisParams;
34
- };
35
- export type CacheConfigRedisParams = {
36
- url: string;
37
- tls: boolean;
38
- db: number;
39
- };
40
- export type CacheConfigFilesystem = {
41
- type: 'filesystem';
42
- params: CacheConfigFilesystemParams;
43
- };
44
- export type CacheConfigFilesystemParams = {
45
- base: string;
46
- };
47
- export type CacheConfigParams = {
48
- filesystem: {
49
- endpoint: string;
50
- };
51
- redis: {
52
- url: string;
53
- tls: boolean;
54
- db: number;
55
- };
56
- };
57
- export declare class Cache {
58
- readonly storage: Storage;
59
- private tokenPricesCache;
60
- constructor(cacheConfig: CacheConfig);
61
- hasItem(key: string, opts: TransactionOptions): Promise<boolean>;
62
- hasTokenPrice(address: string, networkId: NetworkIdType): Promise<boolean>;
63
- getItem<K extends StorageValue>(key: string, opts: TransactionOptions): Promise<K | undefined>;
64
- private getCachedTokenPrice;
65
- getTokenPrice(address: string, networkId: NetworkIdType): Promise<TokenPrice | undefined>;
66
- private getTokenPriceSources;
67
- getItems<K extends StorageValue>(keys: string[], opts: TransactionOptions): Promise<(K | undefined)[]>;
68
- getAllItems<K extends StorageValue>(opts: TransactionOptions): Promise<K[]>;
69
- getAllItemsAsMap<K extends StorageValue>(opts: TransactionOptions): Promise<Map<string, K>>;
70
- getTokenPrices(networkId: NetworkIdType): Promise<Map<string, TokenPrice>>;
71
- setItem<K extends StorageValue>(key: string, value: K, opts: TransactionOptions): Promise<void>;
72
- setTokenPriceSource(source: TokenPriceSource): Promise<void>;
73
- removeItem(key: string, opts: TransactionOptions): Promise<void>;
74
- getKeys(opts: TransactionOptions): Promise<string[]>;
75
- getTokenPriceAddresses(networkId: NetworkIdType): Promise<string[]>;
76
- dispose(): Promise<void>;
77
- }
78
- export declare function getCacheConfig(): CacheConfig;
79
- export declare function getCache(): Cache;
package/src/Cache.js DELETED
@@ -1,301 +0,0 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.getCache = exports.getCacheConfig = exports.Cache = void 0;
16
- const unstorage_1 = require("unstorage");
17
- const fs_1 = __importDefault(require("unstorage/drivers/fs"));
18
- const redis_1 = __importDefault(require("unstorage/drivers/redis"));
19
- const http_1 = __importDefault(require("unstorage/drivers/http"));
20
- const overlayDriver_1 = __importDefault(require("./overlayDriver"));
21
- const memoryDriver_1 = __importDefault(require("./memoryDriver"));
22
- const TokenPrice_1 = require("./TokenPrice");
23
- const utils_1 = require("./utils");
24
- const runInBatch_1 = __importDefault(require("./helpers/runInBatch"));
25
- const tokenPriceSourcePrefix = 'tokenpricesource';
26
- const tokenPricesCacheTtl = 30 * 1000; // 30 sec
27
- class Cache {
28
- constructor(cacheConfig) {
29
- this.tokenPricesCache = new Map();
30
- const driver = getDriverFromCacheConfig(cacheConfig);
31
- this.storage = (0, unstorage_1.createStorage)({
32
- driver,
33
- });
34
- }
35
- hasItem(key, opts) {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- const item = yield this.getItem(key, opts);
38
- return item !== undefined;
39
- });
40
- }
41
- hasTokenPrice(address, networkId) {
42
- return __awaiter(this, void 0, void 0, function* () {
43
- const fAddress = (0, utils_1.formatTokenAddress)(address, networkId);
44
- const tokenPrice = yield this.getTokenPrice(fAddress, networkId);
45
- return tokenPrice !== undefined;
46
- });
47
- }
48
- getItem(key, opts) {
49
- return __awaiter(this, void 0, void 0, function* () {
50
- const fullKey = getFullKey(key, opts);
51
- const item = yield this.storage.getItem(fullKey).catch(() => null);
52
- return item === null ? undefined : item;
53
- });
54
- }
55
- getCachedTokenPrice(address, networkId) {
56
- return __awaiter(this, void 0, void 0, function* () {
57
- const cachedTokenPrice = this.tokenPricesCache.get(getTokenPriceCacheKey(address, networkId));
58
- if (!cachedTokenPrice) {
59
- this.tokenPricesCache.delete(getTokenPriceCacheKey(address, networkId));
60
- return undefined;
61
- }
62
- if (Date.now() > cachedTokenPrice.ts + tokenPricesCacheTtl) {
63
- this.tokenPricesCache.delete(getTokenPriceCacheKey(address, networkId));
64
- return undefined;
65
- }
66
- return cachedTokenPrice.tp;
67
- });
68
- }
69
- getTokenPrice(address, networkId) {
70
- return __awaiter(this, void 0, void 0, function* () {
71
- const fAddress = (0, utils_1.formatTokenAddress)(address, networkId);
72
- // Check if in cache
73
- const cTokenPrice = yield this.getCachedTokenPrice(fAddress, networkId);
74
- if (cTokenPrice)
75
- return cTokenPrice;
76
- const sources = yield this.getTokenPriceSources(fAddress, networkId);
77
- if (!sources)
78
- return undefined;
79
- const tokenPrice = (0, TokenPrice_1.tokenPriceFromSources)(sources);
80
- // Set in cache if tokenPrice is valide
81
- if (tokenPrice) {
82
- this.tokenPricesCache.set(getTokenPriceCacheKey(fAddress, networkId), {
83
- tp: tokenPrice,
84
- ts: Date.now(),
85
- });
86
- }
87
- return tokenPrice;
88
- });
89
- }
90
- getTokenPriceSources(address, networkId) {
91
- return __awaiter(this, void 0, void 0, function* () {
92
- return this.getItem(address, {
93
- prefix: tokenPriceSourcePrefix,
94
- networkId,
95
- });
96
- });
97
- }
98
- getItems(keys, opts) {
99
- return __awaiter(this, void 0, void 0, function* () {
100
- const res = yield (0, runInBatch_1.default)(keys.map((k) => () => this.getItem(k, opts)), 20);
101
- return res.map((r) => {
102
- if (r.status === 'rejected')
103
- return undefined;
104
- return r.value;
105
- });
106
- });
107
- }
108
- getAllItems(opts) {
109
- return __awaiter(this, void 0, void 0, function* () {
110
- const itemsMap = yield this.getAllItemsAsMap(opts);
111
- return Array.from(itemsMap.values());
112
- });
113
- }
114
- getAllItemsAsMap(opts) {
115
- return __awaiter(this, void 0, void 0, function* () {
116
- const keys = yield this.getKeys(opts);
117
- const itemsMap = new Map();
118
- for (let i = 0; i < keys.length; i += 1) {
119
- const key = keys[i];
120
- const item = yield this.getItem(key, opts);
121
- if (item !== undefined)
122
- itemsMap.set(key, item);
123
- }
124
- return itemsMap;
125
- });
126
- }
127
- getTokenPrices(networkId) {
128
- return __awaiter(this, void 0, void 0, function* () {
129
- const addresses = yield this.getTokenPriceAddresses(networkId);
130
- const tokenPrices = new Map();
131
- for (let i = 0; i < addresses.length; i += 1) {
132
- const address = addresses[i];
133
- const item = yield this.getTokenPrice(address, networkId);
134
- if (item !== undefined)
135
- tokenPrices.set(address, item);
136
- }
137
- return tokenPrices;
138
- });
139
- }
140
- setItem(key, value, opts) {
141
- return __awaiter(this, void 0, void 0, function* () {
142
- const fullKey = getFullKey(key, opts);
143
- return this.storage.setItem(fullKey, value);
144
- });
145
- }
146
- setTokenPriceSource(source) {
147
- return __awaiter(this, void 0, void 0, function* () {
148
- const fSource = (0, utils_1.formatTokenPriceSource)(source);
149
- let cSources = yield this.getItem(fSource.address, {
150
- prefix: tokenPriceSourcePrefix,
151
- networkId: fSource.networkId,
152
- });
153
- if (!cSources)
154
- cSources = [];
155
- const newSources = (0, TokenPrice_1.pushTokenPriceSource)(cSources, fSource);
156
- if (!newSources) {
157
- yield this.removeItem(fSource.address, {
158
- prefix: tokenPriceSourcePrefix,
159
- networkId: fSource.networkId,
160
- });
161
- return;
162
- }
163
- yield this.setItem(fSource.address, newSources, {
164
- prefix: tokenPriceSourcePrefix,
165
- networkId: fSource.networkId,
166
- });
167
- });
168
- }
169
- removeItem(key, opts) {
170
- return __awaiter(this, void 0, void 0, function* () {
171
- const fullKey = getFullKey(key, opts);
172
- return this.storage.removeItem(fullKey);
173
- });
174
- }
175
- getKeys(opts) {
176
- return __awaiter(this, void 0, void 0, function* () {
177
- const fullBase = getFullBase(opts);
178
- const keys = (yield this.storage.getKeys(fullBase)).map((s) => s.substring(fullBase.length));
179
- // Verifying that key is still alive
180
- for (let i = 0; i < keys.length; i += 1) {
181
- const key = keys[i];
182
- yield this.hasItem(key, opts);
183
- }
184
- return (yield this.storage.getKeys(fullBase)).map((s) => s.substring(fullBase.length));
185
- });
186
- }
187
- getTokenPriceAddresses(networkId) {
188
- return __awaiter(this, void 0, void 0, function* () {
189
- return this.getKeys({
190
- prefix: tokenPriceSourcePrefix,
191
- networkId,
192
- });
193
- });
194
- }
195
- dispose() {
196
- return this.storage.dispose();
197
- }
198
- }
199
- exports.Cache = Cache;
200
- function getTokenPriceCacheKey(address, networkId) {
201
- return `${address}-${networkId}`;
202
- }
203
- function getFullKey(key, opts) {
204
- const { networkId, prefix } = opts;
205
- const networkIdKeyPrefix = networkId ? `/${networkId.toString()}` : '';
206
- return `/${prefix}${networkIdKeyPrefix}/${key}`;
207
- }
208
- function getFullBase(opts) {
209
- const { networkId, prefix } = opts;
210
- const networkIdBasePrefix = networkId ? `${networkId.toString()}:` : '';
211
- const fullBase = `${prefix}:${networkIdBasePrefix}`;
212
- return fullBase;
213
- }
214
- function getDriverFromCacheConfig(cacheConfig) {
215
- switch (cacheConfig.type) {
216
- case 'overlayHttp':
217
- return (0, overlayDriver_1.default)({
218
- layers: cacheConfig.params.bases.map((base) => (0, http_1.default)({ base })),
219
- });
220
- case 'memory':
221
- return (0, memoryDriver_1.default)({
222
- ttl: cacheConfig.params.ttl || 60 * 60 * 1000,
223
- });
224
- case 'filesystem':
225
- return (0, fs_1.default)({
226
- base: cacheConfig.params.base,
227
- });
228
- case 'redis':
229
- return (0, redis_1.default)({
230
- url: cacheConfig.params.url,
231
- tls: cacheConfig.params.tls ? {} : undefined,
232
- db: cacheConfig.params.db,
233
- });
234
- case 'http':
235
- return (0, http_1.default)({
236
- base: cacheConfig.params.base,
237
- headers: cacheConfig.params.headers,
238
- });
239
- default:
240
- throw new Error('CacheConfig type is not valid');
241
- }
242
- }
243
- function getCacheConfig() {
244
- switch (process.env['CACHE_CONFIG_TYPE']) {
245
- case 'overlayHttp':
246
- return {
247
- type: 'overlayHttp',
248
- params: {
249
- bases: (process.env['CACHE_CONFIG_OVERLAY_HTTP_BASES'] ||
250
- 'http://localhost:3000/,https://portfolio-cache.sonar.watch/').split(','),
251
- },
252
- };
253
- case 'memory':
254
- return {
255
- type: 'memory',
256
- params: {},
257
- };
258
- case 'filesystem':
259
- return {
260
- type: 'filesystem',
261
- params: {
262
- base: process.env['CACHE_CONFIG_FILESYSTEM_BASE'] || './cache',
263
- },
264
- };
265
- case 'redis':
266
- return {
267
- type: 'redis',
268
- params: {
269
- url: process.env['CACHE_CONFIG_REDIS_URL'] || '127.0.0.1:6379',
270
- tls: process.env['CACHE_CONFIG_REDIS_TLS'] === 'true',
271
- db: parseInt(process.env['CACHE_CONFIG_REDIS_DB'] || '0', 10),
272
- },
273
- };
274
- case 'http':
275
- return {
276
- type: 'http',
277
- params: {
278
- base: process.env['CACHE_CONFIG_HTTP_BASE'] || 'http://localhost:3000/',
279
- headers: process.env['CACHE_CONFIG_HTTP_BEARER']
280
- ? {
281
- Authorization: `Bearer ${process.env['CACHE_CONFIG_HTTP_BEARER']}`,
282
- }
283
- : undefined,
284
- },
285
- };
286
- default:
287
- return {
288
- type: 'filesystem',
289
- params: {
290
- base: process.env['CACHE_CONFIG_FILESYSTEM_BASE'] || './cache',
291
- },
292
- };
293
- }
294
- }
295
- exports.getCacheConfig = getCacheConfig;
296
- function getCache() {
297
- const cacheConfig = getCacheConfig();
298
- return new Cache(cacheConfig);
299
- }
300
- exports.getCache = getCache;
301
- //# sourceMappingURL=Cache.js.map
package/src/Cache.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Cache.js","sourceRoot":"","sources":["../../../../packages/core/src/Cache.ts"],"names":[],"mappings":"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"}
package/src/Fetcher.d.ts DELETED
@@ -1,33 +0,0 @@
1
- import { AddressSystemType } from './Address';
2
- import { Cache } from './Cache';
3
- import { NetworkIdType } from './Network';
4
- import { PortfolioElement } from './Portfolio';
5
- export type FetcherExecutor = (owner: string, cache: Cache) => Promise<PortfolioElement[]>;
6
- export type Fetcher = {
7
- id: string;
8
- networkId: NetworkIdType;
9
- executor: FetcherExecutor;
10
- };
11
- export type FetcherResult = {
12
- owner: string;
13
- fetcherId: string;
14
- networdkId: NetworkIdType;
15
- duration: number;
16
- elements: PortfolioElement[];
17
- };
18
- export type FetcherReport = {
19
- id: string;
20
- status: 'succeeded' | 'failed';
21
- duration?: number;
22
- error?: string;
23
- };
24
- export type FetchersResult = {
25
- date: number;
26
- owner: string;
27
- addressSystem: AddressSystemType;
28
- fetcherReports: FetcherReport[];
29
- elements: PortfolioElement[];
30
- };
31
- export declare function runFetchers(owner: string, addressSystem: AddressSystemType, fetchers: Fetcher[], cache: Cache): Promise<FetchersResult>;
32
- export declare function runFetchersByNetworkId(owner: string, networkId: NetworkIdType, fetchers: Fetcher[], cache: Cache): Promise<FetchersResult>;
33
- export declare function runFetcher(owner: string, fetcher: Fetcher, cache: Cache): Promise<FetcherResult>;
package/src/Fetcher.js DELETED
@@ -1,82 +0,0 @@
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
- exports.runFetcher = exports.runFetchersByNetworkId = exports.runFetchers = void 0;
13
- const constants_1 = require("./constants");
14
- const utils_1 = require("./utils");
15
- function runFetchers(owner, addressSystem, fetchers, cache) {
16
- return __awaiter(this, void 0, void 0, function* () {
17
- const fOwner = (0, utils_1.formatAddress)(owner, addressSystem);
18
- const isFetchersValids = fetchers.every((f) => constants_1.networks[f.networkId].addressSystem === addressSystem);
19
- if (!isFetchersValids)
20
- throw new Error(`Not all fetchers have the right address system: ${addressSystem}`);
21
- const promises = fetchers.map((f) => runFetcher(fOwner, f, cache));
22
- const result = yield Promise.allSettled(promises);
23
- const fReports = [];
24
- const elements = result.flatMap((r, index) => {
25
- let fReport;
26
- if (r.status === 'fulfilled') {
27
- fReport = {
28
- id: fetchers[index].id,
29
- status: 'succeeded',
30
- duration: r.value.duration,
31
- error: undefined,
32
- };
33
- }
34
- else {
35
- fReport = {
36
- id: fetchers[index].id,
37
- status: 'failed',
38
- duration: undefined,
39
- error: r.reason.message || 'Unknown error',
40
- };
41
- }
42
- fReports.push(fReport);
43
- if (r.status === 'rejected')
44
- return [];
45
- return r.value.elements;
46
- });
47
- return {
48
- date: Date.now(),
49
- owner: fOwner,
50
- addressSystem,
51
- fetcherReports: fReports,
52
- elements,
53
- };
54
- });
55
- }
56
- exports.runFetchers = runFetchers;
57
- function runFetchersByNetworkId(owner, networkId, fetchers, cache) {
58
- return __awaiter(this, void 0, void 0, function* () {
59
- const isFetchersValids = fetchers.every((f) => f.networkId === networkId);
60
- if (!isFetchersValids)
61
- throw new Error(`Not all fetchers have the right network id: ${networkId}`);
62
- const { addressSystem } = constants_1.networks[networkId];
63
- return runFetchers(owner, addressSystem, fetchers, cache);
64
- });
65
- }
66
- exports.runFetchersByNetworkId = runFetchersByNetworkId;
67
- function runFetcher(owner, fetcher, cache) {
68
- return __awaiter(this, void 0, void 0, function* () {
69
- const startDate = Date.now();
70
- const fOwner = (0, utils_1.formatAddressByNetworkId)(owner, fetcher.networkId);
71
- const elements = yield fetcher.executor(fOwner, cache);
72
- return {
73
- owner: fOwner,
74
- fetcherId: fetcher.id,
75
- networdkId: fetcher.networkId,
76
- duration: Date.now() - startDate,
77
- elements,
78
- };
79
- });
80
- }
81
- exports.runFetcher = runFetcher;
82
- //# sourceMappingURL=Fetcher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Fetcher.js","sourceRoot":"","sources":["../../../../packages/core/src/Fetcher.ts"],"names":[],"mappings":"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"}
package/src/Job.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import { Cache } from './Cache';
2
- export type JobExecutor = (cache: Cache) => Promise<void>;
3
- export type Job = {
4
- id: string;
5
- executor: JobExecutor;
6
- };
package/src/Job.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=Job.js.map
package/src/Job.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Job.js","sourceRoot":"","sources":["../../../../packages/core/src/Job.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- export interface MemoryStorageOptions {
2
- ttl?: number;
3
- }
4
- declare const _default: (opts: MemoryStorageOptions) => import("unstorage/dist/types-de0cd07d").D;
5
- export default _default;
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const unstorage_1 = require("unstorage");
4
- const DRIVER_NAME = 'memory';
5
- exports.default = (0, unstorage_1.defineDriver)((opts = {}) => {
6
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
- const data = new Map();
8
- const timeouts = new Map();
9
- const { ttl } = opts;
10
- return {
11
- name: DRIVER_NAME,
12
- options: opts,
13
- hasItem(key) {
14
- return data.has(key);
15
- },
16
- getItem(key) {
17
- return data.get(key) || null;
18
- },
19
- getItemRaw(key) {
20
- return data.get(key) || null;
21
- },
22
- setItem(key, value) {
23
- // Clear previous timeout
24
- const prevTimeout = timeouts.get(key);
25
- if (prevTimeout)
26
- clearTimeout(prevTimeout);
27
- timeouts.delete(key);
28
- // Set new timout
29
- if (ttl) {
30
- const timeout = setTimeout(() => {
31
- data.delete(key);
32
- }, ttl);
33
- timeouts.set(key, timeout);
34
- }
35
- // Set item
36
- data.set(key, value);
37
- },
38
- setItemRaw(key, value) {
39
- data.set(key, value);
40
- },
41
- removeItem(key) {
42
- data.delete(key);
43
- },
44
- getKeys() {
45
- return Array.from(data.keys());
46
- },
47
- clear() {
48
- data.clear();
49
- },
50
- dispose() {
51
- data.clear();
52
- },
53
- };
54
- });
55
- //# sourceMappingURL=memoryDriver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memoryDriver.js","sourceRoot":"","sources":["../../../../packages/core/src/memoryDriver.ts"],"names":[],"mappings":";;AAAA,yCAAyC;AAEzC,MAAM,WAAW,GAAG,QAAQ,CAAC;AAM7B,kBAAe,IAAA,wBAAY,EAAC,CAAC,OAA6B,EAAE,EAAE,EAAE;IAC9D,8DAA8D;IAC9D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAe,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA0B,CAAC;IACnD,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACrB,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,IAAI;QACb,OAAO,CAAC,GAAG;YACT,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,CAAC,GAAG;YACT,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;QAC/B,CAAC;QACD,UAAU,CAAC,GAAG;YACZ,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;QAC/B,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,KAAK;YAChB,yBAAyB;YACzB,MAAM,WAAW,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,WAAW;gBAAE,YAAY,CAAC,WAAW,CAAC,CAAC;YAC3C,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAErB,iBAAiB;YACjB,IAAI,GAAG,EAAE;gBACP,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACnB,CAAC,EAAE,GAAG,CAAC,CAAC;gBACR,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;aAC5B;YAED,WAAW;YACX,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,UAAU,CAAC,GAAG,EAAE,KAAK;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACvB,CAAC;QACD,UAAU,CAAC,GAAG;YACZ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,OAAO;YACL,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACjC,CAAC;QACD,KAAK;YACH,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;QACD,OAAO;YACL,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -1,6 +0,0 @@
1
- import { Driver } from 'unstorage';
2
- export interface OverlayStorageOptions {
3
- layers: Driver[];
4
- }
5
- declare const _default: (opts: OverlayStorageOptions) => Driver;
6
- export default _default;
@@ -1,96 +0,0 @@
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 unstorage_1 = require("unstorage");
13
- const OVERLAY_REMOVED = '__OVERLAY_REMOVED__';
14
- const DRIVER_NAME = 'overlay';
15
- exports.default = (0, unstorage_1.defineDriver)((options) => ({
16
- name: DRIVER_NAME,
17
- options,
18
- hasItem(key, opts) {
19
- var _a;
20
- return __awaiter(this, void 0, void 0, function* () {
21
- for (const layer of options.layers) {
22
- if (yield layer.hasItem(key, opts)) {
23
- if (layer === options.layers[0]) {
24
- if ((yield ((_a = options.layers[0]) === null || _a === void 0 ? void 0 : _a.getItem(key))) === OVERLAY_REMOVED) {
25
- return false;
26
- }
27
- }
28
- return true;
29
- }
30
- }
31
- return false;
32
- });
33
- },
34
- getItem(key) {
35
- return __awaiter(this, void 0, void 0, function* () {
36
- for (const layer of options.layers) {
37
- let value;
38
- try {
39
- value = yield layer.getItem(key);
40
- }
41
- catch (error) {
42
- value = null;
43
- }
44
- if (value === OVERLAY_REMOVED) {
45
- return null;
46
- }
47
- if (value !== null && value !== 'null') {
48
- return value;
49
- }
50
- }
51
- return null;
52
- });
53
- },
54
- // TODO: Support native meta
55
- // async getMeta (key) {},
56
- setItem(key, value, opts) {
57
- var _a, _b;
58
- return __awaiter(this, void 0, void 0, function* () {
59
- yield ((_b = (_a = options.layers[0]) === null || _a === void 0 ? void 0 : _a.setItem) === null || _b === void 0 ? void 0 : _b.call(_a, key, value, opts));
60
- });
61
- },
62
- removeItem(key, opts) {
63
- var _a, _b;
64
- return __awaiter(this, void 0, void 0, function* () {
65
- yield ((_b = (_a = options.layers[0]) === null || _a === void 0 ? void 0 : _a.setItem) === null || _b === void 0 ? void 0 : _b.call(_a, key, OVERLAY_REMOVED, opts));
66
- });
67
- },
68
- getKeys(base, opts) {
69
- return __awaiter(this, void 0, void 0, function* () {
70
- const allKeys = yield Promise.all(options.layers.map((layer) => __awaiter(this, void 0, void 0, function* () {
71
- const keys = yield layer.getKeys(base, opts);
72
- return keys.map((key) => (0, unstorage_1.normalizeKey)(key));
73
- })));
74
- const uniqueKeys = Array.from(new Set(allKeys.flat()));
75
- const existingKeys = yield Promise.all(uniqueKeys.map((key) => __awaiter(this, void 0, void 0, function* () {
76
- var _a;
77
- if ((yield ((_a = options.layers[0]) === null || _a === void 0 ? void 0 : _a.getItem(key))) === OVERLAY_REMOVED) {
78
- return false;
79
- }
80
- return key;
81
- })));
82
- return existingKeys.filter(Boolean);
83
- });
84
- },
85
- dispose() {
86
- return __awaiter(this, void 0, void 0, function* () {
87
- // TODO: Graceful error handling
88
- yield Promise.all(options.layers.map((layer) => __awaiter(this, void 0, void 0, function* () {
89
- if (layer.dispose) {
90
- yield layer.dispose();
91
- }
92
- })));
93
- });
94
- },
95
- }));
96
- //# sourceMappingURL=overlayDriver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"overlayDriver.js","sourceRoot":"","sources":["../../../../packages/core/src/overlayDriver.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,yCAA+D;AAM/D,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAE9C,MAAM,WAAW,GAAG,SAAS,CAAC;AAE9B,kBAAe,IAAA,wBAAY,EAAC,CAAC,OAA8B,EAAE,EAAE,CAAC,CAAC;IAC/D,IAAI,EAAE,WAAW;IACjB,OAAO;IACD,OAAO,CAAC,GAAG,EAAE,IAAI;;;YACrB,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE;gBAClC,IAAI,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;oBAClC,IAAI,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;wBAC/B,IAAI,CAAC,MAAM,CAAA,MAAA,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,GAAG,CAAC,CAAA,CAAC,KAAK,eAAe,EAAE;4BAC/D,OAAO,KAAK,CAAC;yBACd;qBACF;oBACD,OAAO,IAAI,CAAC;iBACb;aACF;YACD,OAAO,KAAK,CAAC;;KACd;IACK,OAAO,CAAC,GAAG;;YACf,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE;gBAClC,IAAI,KAAK,CAAC;gBACV,IAAI;oBACF,KAAK,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;iBAClC;gBAAC,OAAO,KAAK,EAAE;oBACd,KAAK,GAAG,IAAI,CAAC;iBACd;gBAED,IAAI,KAAK,KAAK,eAAe,EAAE;oBAC7B,OAAO,IAAI,CAAC;iBACb;gBACD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE;oBACtC,OAAO,KAAK,CAAC;iBACd;aACF;YACD,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IACD,4BAA4B;IAC5B,0BAA0B;IACpB,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI;;;YAC5B,MAAM,CAAA,MAAA,MAAA,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,0CAAE,OAAO,mDAAG,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA,CAAC;;KACtD;IACK,UAAU,CAAC,GAAG,EAAE,IAAI;;;YACxB,MAAM,CAAA,MAAA,MAAA,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,0CAAE,OAAO,mDAAG,GAAG,EAAE,eAAe,EAAE,IAAI,CAAC,CAAA,CAAC;;KAChE;IACK,OAAO,CAAC,IAAI,EAAE,IAAI;;YACtB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAO,KAAK,EAAE,EAAE;gBACjC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,wBAAY,EAAC,GAAG,CAAC,CAAC,CAAC;YAC9C,CAAC,CAAA,CAAC,CACH,CAAC;YACF,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACvD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CACpC,UAAU,CAAC,GAAG,CAAC,CAAO,GAAG,EAAE,EAAE;;gBAC3B,IAAI,CAAC,MAAM,CAAA,MAAA,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,GAAG,CAAC,CAAA,CAAC,KAAK,eAAe,EAAE;oBAC/D,OAAO,KAAK,CAAC;iBACd;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,CAAA,CAAC,CACH,CAAC;YACF,OAAO,YAAY,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;QAClD,CAAC;KAAA;IACK,OAAO;;YACX,gCAAgC;YAChC,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAO,KAAK,EAAE,EAAE;gBACjC,IAAI,KAAK,CAAC,OAAO,EAAE;oBACjB,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;iBACvB;YACH,CAAC,CAAA,CAAC,CACH,CAAC;QACJ,CAAC;KAAA;CACF,CAAC,CAAC,CAAC"}