@cryptorubic/core 0.0.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.
Files changed (113) hide show
  1. package/README.md +1 -0
  2. package/package.json +17 -0
  3. package/src/index.d.ts +36 -0
  4. package/src/index.js +45 -0
  5. package/src/index.js.map +1 -0
  6. package/src/lib/blockchains/backend-labels.d.ts +152 -0
  7. package/src/lib/blockchains/backend-labels.js +159 -0
  8. package/src/lib/blockchains/backend-labels.js.map +1 -0
  9. package/src/lib/blockchains/blockchain-id.d.ts +2 -0
  10. package/src/lib/blockchains/blockchain-id.js +87 -0
  11. package/src/lib/blockchains/blockchain-id.js.map +1 -0
  12. package/src/lib/blockchains/blockchain-name.d.ts +238 -0
  13. package/src/lib/blockchains/blockchain-name.js +157 -0
  14. package/src/lib/blockchains/blockchain-name.js.map +1 -0
  15. package/src/lib/blockchains/blockchains-info.d.ts +15 -0
  16. package/src/lib/blockchains/blockchains-info.js +42 -0
  17. package/src/lib/blockchains/blockchains-info.js.map +1 -0
  18. package/src/lib/blockchains/chain-type-storage.d.ts +3 -0
  19. package/src/lib/blockchains/chain-type-storage.js +89 -0
  20. package/src/lib/blockchains/chain-type-storage.js.map +1 -0
  21. package/src/lib/blockchains/chain-type.d.ts +80 -0
  22. package/src/lib/blockchains/chain-type.js +83 -0
  23. package/src/lib/blockchains/chain-type.js.map +1 -0
  24. package/src/lib/blockchains/wrapped-addresses.d.ts +2 -0
  25. package/src/lib/blockchains/wrapped-addresses.js +68 -0
  26. package/src/lib/blockchains/wrapped-addresses.js.map +1 -0
  27. package/src/lib/models/custom-logger.d.ts +53 -0
  28. package/src/lib/models/custom-logger.js +3 -0
  29. package/src/lib/models/custom-logger.js.map +1 -0
  30. package/src/lib/models/http-client.d.ts +18 -0
  31. package/src/lib/models/http-client.js +3 -0
  32. package/src/lib/models/http-client.js.map +1 -0
  33. package/src/lib/models/quote-all-response.d.ts +15 -0
  34. package/src/lib/models/quote-all-response.js +3 -0
  35. package/src/lib/models/quote-all-response.js.map +1 -0
  36. package/src/lib/models/quote-best-response.d.ts +3 -0
  37. package/src/lib/models/quote-best-response.js +3 -0
  38. package/src/lib/models/quote-best-response.js.map +1 -0
  39. package/src/lib/models/quote-request.d.ts +18 -0
  40. package/src/lib/models/quote-request.js +3 -0
  41. package/src/lib/models/quote-request.js.map +1 -0
  42. package/src/lib/models/route.d.ts +80 -0
  43. package/src/lib/models/route.js +3 -0
  44. package/src/lib/models/route.js.map +1 -0
  45. package/src/lib/models/swap-request.d.ts +7 -0
  46. package/src/lib/models/swap-request.js +3 -0
  47. package/src/lib/models/swap-request.js.map +1 -0
  48. package/src/lib/models/swap-response.d.ts +82 -0
  49. package/src/lib/models/swap-response.js +3 -0
  50. package/src/lib/models/swap-response.js.map +1 -0
  51. package/src/lib/providers/cross-chain-trade-type.d.ts +28 -0
  52. package/src/lib/providers/cross-chain-trade-type.js +31 -0
  53. package/src/lib/providers/cross-chain-trade-type.js.map +1 -0
  54. package/src/lib/providers/from-backend-cross-chain-providers.d.ts +3 -0
  55. package/src/lib/providers/from-backend-cross-chain-providers.js +32 -0
  56. package/src/lib/providers/from-backend-cross-chain-providers.js.map +1 -0
  57. package/src/lib/providers/on-chain-trade-type.d.ts +148 -0
  58. package/src/lib/providers/on-chain-trade-type.js +148 -0
  59. package/src/lib/providers/on-chain-trade-type.js.map +1 -0
  60. package/src/lib/providers/to-backend-cross-chain-providers.d.ts +31 -0
  61. package/src/lib/providers/to-backend-cross-chain-providers.js +35 -0
  62. package/src/lib/providers/to-backend-cross-chain-providers.js.map +1 -0
  63. package/src/lib/tokens/constants/native-token-list.d.ts +4 -0
  64. package/src/lib/tokens/constants/native-token-list.js +467 -0
  65. package/src/lib/tokens/constants/native-token-list.js.map +1 -0
  66. package/src/lib/tokens/constants/wrapped-native-tokens.d.ts +3 -0
  67. package/src/lib/tokens/constants/wrapped-native-tokens.js +484 -0
  68. package/src/lib/tokens/constants/wrapped-native-tokens.js.map +1 -0
  69. package/src/lib/tokens/price-token-amount-struct.d.ts +12 -0
  70. package/src/lib/tokens/price-token-amount-struct.js +3 -0
  71. package/src/lib/tokens/price-token-amount-struct.js.map +1 -0
  72. package/src/lib/tokens/price-token-amount.d.ts +19 -0
  73. package/src/lib/tokens/price-token-amount.js +94 -0
  74. package/src/lib/tokens/price-token-amount.js.map +1 -0
  75. package/src/lib/tokens/price-token-struct.d.ts +6 -0
  76. package/src/lib/tokens/price-token-struct.js +3 -0
  77. package/src/lib/tokens/price-token-struct.js.map +1 -0
  78. package/src/lib/tokens/price-token.d.ts +11 -0
  79. package/src/lib/tokens/price-token.js +28 -0
  80. package/src/lib/tokens/price-token.js.map +1 -0
  81. package/src/lib/tokens/token-amount-struct.d.ts +12 -0
  82. package/src/lib/tokens/token-amount-struct.js +3 -0
  83. package/src/lib/tokens/token-amount-struct.js.map +1 -0
  84. package/src/lib/tokens/token-amount.d.ts +16 -0
  85. package/src/lib/tokens/token-amount.js +68 -0
  86. package/src/lib/tokens/token-amount.js.map +1 -0
  87. package/src/lib/tokens/token-base-struct.d.ts +5 -0
  88. package/src/lib/tokens/token-base-struct.js +3 -0
  89. package/src/lib/tokens/token-base-struct.js.map +1 -0
  90. package/src/lib/tokens/token-struct.d.ts +8 -0
  91. package/src/lib/tokens/token-struct.js +3 -0
  92. package/src/lib/tokens/token-struct.js.map +1 -0
  93. package/src/lib/tokens/token.d.ts +30 -0
  94. package/src/lib/tokens/token.js +63 -0
  95. package/src/lib/tokens/token.js.map +1 -0
  96. package/src/lib/utils/cache.decorator.d.ts +13 -0
  97. package/src/lib/utils/cache.decorator.js +136 -0
  98. package/src/lib/utils/cache.decorator.js.map +1 -0
  99. package/src/lib/utils/compare-addresses.d.ts +4 -0
  100. package/src/lib/utils/compare-addresses.js +10 -0
  101. package/src/lib/utils/compare-addresses.js.map +1 -0
  102. package/src/lib/utils/models/cache-config.d.ts +14 -0
  103. package/src/lib/utils/models/cache-config.js +3 -0
  104. package/src/lib/utils/models/cache-config.js.map +1 -0
  105. package/src/lib/utils/models/conditional-result.d.ts +8 -0
  106. package/src/lib/utils/models/conditional-result.js +3 -0
  107. package/src/lib/utils/models/conditional-result.js.map +1 -0
  108. package/src/lib/utils/models/infinite-array.d.ts +1 -0
  109. package/src/lib/utils/models/infinite-array.js +3 -0
  110. package/src/lib/utils/models/infinite-array.js.map +1 -0
  111. package/src/lib/utils/object.d.ts +5 -0
  112. package/src/lib/utils/object.js +14 -0
  113. package/src/lib/utils/object.js.map +1 -0
@@ -0,0 +1,11 @@
1
+ import { Token } from './token';
2
+ import { PriceTokenStruct } from './price-token-struct';
3
+ import BigNumber from 'bignumber.js';
4
+ import { BlockchainName } from "../blockchains/blockchain-name";
5
+ export declare class PriceToken<Blockchain extends BlockchainName = BlockchainName> extends Token<Blockchain> {
6
+ private _price;
7
+ get price(): BigNumber;
8
+ set price(price: BigNumber);
9
+ get asStructWithPrice(): PriceTokenStruct<Blockchain>;
10
+ constructor(tokenStruct: PriceTokenStruct<Blockchain>);
11
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PriceToken = void 0;
4
+ const token_1 = require("./token");
5
+ class PriceToken extends token_1.Token {
6
+ get price() {
7
+ return this._price;
8
+ }
9
+ set price(price) {
10
+ this._price = price;
11
+ }
12
+ get asStructWithPrice() {
13
+ return {
14
+ address: this.address,
15
+ blockchain: this.blockchain,
16
+ decimals: this.decimals,
17
+ name: this.name,
18
+ price: this.price,
19
+ symbol: this.symbol
20
+ };
21
+ }
22
+ constructor(tokenStruct) {
23
+ super(tokenStruct);
24
+ this._price = tokenStruct.price;
25
+ }
26
+ }
27
+ exports.PriceToken = PriceToken;
28
+ //# sourceMappingURL=price-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"price-token.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/tokens/price-token.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAKhC,MAAa,UAA+D,SAAQ,aAAiB;IAGjG,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAW,KAAK,CAAC,KAAgB;QAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,IAAW,iBAAiB;QACxB,OAAO;YACH,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC;IACN,CAAC;IAED,YAAY,WAAyC;QACjD,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC;IACpC,CAAC;CACJ;AA1BD,gCA0BC"}
@@ -0,0 +1,12 @@
1
+ import { TokenStruct } from './token-struct';
2
+ import BigNumber from 'bignumber.js';
3
+ import { BlockchainName } from "../blockchains/blockchain-name";
4
+ export type TokenAmountStruct<T extends BlockchainName = BlockchainName> = TokenStruct<T> & ({
5
+ weiAmount: BigNumber;
6
+ } | {
7
+ tokenAmount: BigNumber;
8
+ } | {
9
+ tokenAmount: string;
10
+ } | {
11
+ weiAmount: string;
12
+ });
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=token-amount-struct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-amount-struct.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/tokens/token-amount-struct.ts"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { Token } from './token';
2
+ import { TokenAmountStruct } from './token-amount-struct';
3
+ import BigNumber from 'bignumber.js';
4
+ import { BlockchainName } from "../blockchains/blockchain-name";
5
+ export declare class TokenAmount<T extends BlockchainName = BlockchainName> extends Token<T> {
6
+ private readonly _weiAmount;
7
+ get weiAmount(): BigNumber;
8
+ get stringWeiAmount(): string;
9
+ get tokenAmount(): BigNumber;
10
+ get stringTokenAmount(): string;
11
+ constructor(tokenStruct: TokenAmountStruct<T>);
12
+ weiAmountMinusSlippage(slippage: number): BigNumber;
13
+ weiAmountPlusSlippage(slippage: number): BigNumber;
14
+ private getWeiAmount;
15
+ get asStructWithAmount(): TokenAmountStruct<BlockchainName>;
16
+ }
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TokenAmount = void 0;
4
+ const token_1 = require("./token");
5
+ const bignumber_js_1 = require("bignumber.js");
6
+ class TokenAmount extends token_1.Token {
7
+ get weiAmount() {
8
+ return this._weiAmount;
9
+ }
10
+ get stringWeiAmount() {
11
+ return this._weiAmount.toString();
12
+ }
13
+ get tokenAmount() {
14
+ const divider = new bignumber_js_1.default(10).pow(this.decimals);
15
+ return new bignumber_js_1.default(this._weiAmount).div(divider);
16
+ }
17
+ get stringTokenAmount() {
18
+ return this.tokenAmount.toString();
19
+ }
20
+ constructor(tokenStruct) {
21
+ super(tokenStruct);
22
+ this._weiAmount = this.getWeiAmount(tokenStruct);
23
+ }
24
+ weiAmountMinusSlippage(slippage) {
25
+ return this._weiAmount.multipliedBy(1 - slippage);
26
+ }
27
+ weiAmountPlusSlippage(slippage) {
28
+ return this._weiAmount.multipliedBy(1 + slippage);
29
+ }
30
+ getWeiAmount(tokenStruct) {
31
+ if ('weiAmount' in tokenStruct) {
32
+ if (typeof tokenStruct.weiAmount === 'string') {
33
+ try {
34
+ return new bignumber_js_1.default(tokenStruct.weiAmount);
35
+ }
36
+ catch {
37
+ this.logger?.customWarn('Invalid weiAmount value');
38
+ throw new Error('Invalid weiAmount value');
39
+ }
40
+ }
41
+ return tokenStruct.weiAmount;
42
+ }
43
+ else {
44
+ if (typeof tokenStruct.tokenAmount === 'string') {
45
+ try {
46
+ return new bignumber_js_1.default(token_1.Token.toWei(tokenStruct.tokenAmount, tokenStruct.decimals));
47
+ }
48
+ catch {
49
+ this.logger?.customWarn('Invalid tokenAmount value');
50
+ throw new Error('Invalid tokenAmount value');
51
+ }
52
+ }
53
+ return new bignumber_js_1.default(token_1.Token.toWei(tokenStruct.tokenAmount, tokenStruct.decimals));
54
+ }
55
+ }
56
+ get asStructWithAmount() {
57
+ return {
58
+ address: this.address,
59
+ blockchain: this.blockchain,
60
+ decimals: this.decimals,
61
+ name: this.name,
62
+ symbol: this.symbol,
63
+ weiAmount: this.weiAmount
64
+ };
65
+ }
66
+ }
67
+ exports.TokenAmount = TokenAmount;
68
+ //# sourceMappingURL=token-amount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-amount.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/tokens/token-amount.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAEhC,+CAAqC;AAGrC,MAAa,WAAuD,SAAQ,aAAQ;IAGhF,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;IAED,IAAW,eAAe;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IACtC,CAAC;IAED,IAAW,WAAW;QAClB,MAAM,OAAO,GAAG,IAAI,sBAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,IAAI,sBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAED,IAAW,iBAAiB;QACxB,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IACvC,CAAC;IAED,YAAY,WAAiC;QACzC,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC;IAEM,sBAAsB,CAAC,QAAgB;QAC1C,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;IACtD,CAAC;IAEM,qBAAqB,CAAC,QAAgB;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;IACtD,CAAC;IAEO,YAAY,CAAC,WAAiC;QAClD,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;YAC7B,IAAI,OAAO,WAAW,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC5C,IAAI,CAAC;oBACD,OAAO,IAAI,sBAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAChD,CAAC;gBAAC,MAAM,CAAC;oBACL,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,yBAAyB,CAAC,CAAC;oBACnD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC;YACD,OAAO,WAAW,CAAC,SAAS,CAAC;QACjC,CAAC;aAAM,CAAC;YACJ,IAAI,OAAO,WAAW,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;gBAC9C,IAAI,CAAC;oBACD,OAAO,IAAI,sBAAS,CAAC,aAAK,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACrF,CAAC;gBAAC,MAAM,CAAC;oBACL,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,2BAA2B,CAAC,CAAC;oBACrD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;gBACjD,CAAC;YACL,CAAC;YACD,OAAO,IAAI,sBAAS,CAAC,aAAK,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrF,CAAC;IACL,CAAC;IAED,IAAW,kBAAkB;QACzB,OAAO;YACH,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC5B,CAAC;IACN,CAAC;CACJ;AAnED,kCAmEC"}
@@ -0,0 +1,5 @@
1
+ import { BlockchainName } from "../blockchains/blockchain-name";
2
+ export interface TokenBaseStruct<Blockchain extends BlockchainName = BlockchainName> {
3
+ address: string;
4
+ blockchain: Blockchain;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=token-base-struct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-base-struct.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/tokens/token-base-struct.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { BlockchainName } from "../blockchains/blockchain-name";
2
+ export type TokenStruct<T extends BlockchainName = BlockchainName> = {
3
+ blockchain: T;
4
+ address: string;
5
+ name: string;
6
+ symbol: string;
7
+ decimals: number;
8
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=token-struct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-struct.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/tokens/token-struct.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ import { TokenStruct } from './token-struct';
2
+ import { TokenBaseStruct } from './token-base-struct';
3
+ import BigNumber from 'bignumber.js';
4
+ import { BlockchainName } from "../blockchains/blockchain-name";
5
+ import { ICustomLogger } from "../models/custom-logger";
6
+ export declare class Token<Blockchain extends BlockchainName = BlockchainName> {
7
+ /**
8
+ * Maps provided tokens to their addresses.
9
+ */
10
+ static tokensToAddresses(tokens: Token[]): string[];
11
+ protected readonly logger?: ICustomLogger;
12
+ readonly blockchain: Blockchain;
13
+ readonly address: string;
14
+ readonly name: string;
15
+ readonly symbol: string;
16
+ readonly decimals: number;
17
+ get isNative(): boolean;
18
+ get isWrapped(): boolean;
19
+ get asStruct(): TokenStruct<Blockchain>;
20
+ constructor(tokenStruct: TokenStruct<Blockchain>);
21
+ isEqualTo(token: TokenBaseStruct): boolean;
22
+ isEqualToTokens(tokens: TokenBaseStruct[]): boolean;
23
+ static toWei(amount: BigNumber | string | number, decimals?: number, roundingMode?: BigNumber.RoundingMode): string;
24
+ /**
25
+ * Converts amount from Wei to Ether units.
26
+ * @param amountInWei Amount to convert.
27
+ * @param decimals Token decimals.
28
+ */
29
+ static fromWei(amountInWei: BigNumber | string | number, decimals?: number): BigNumber;
30
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Token = void 0;
4
+ const bignumber_js_1 = require("bignumber.js");
5
+ const blockchains_info_1 = require("../blockchains/blockchains-info");
6
+ const wrapped_addresses_1 = require("../blockchains/wrapped-addresses");
7
+ class Token {
8
+ /**
9
+ * Maps provided tokens to their addresses.
10
+ */
11
+ static tokensToAddresses(tokens) {
12
+ return tokens.map((token) => token.address);
13
+ }
14
+ get isNative() {
15
+ const nativeAddress = '0x0000000000000000000000000000000000000000';
16
+ return nativeAddress.toLowerCase() === this.address.toLowerCase();
17
+ }
18
+ get isWrapped() {
19
+ if (blockchains_info_1.BlockchainsInfo.isEvmBlockchainName(this.blockchain)) {
20
+ const address = wrapped_addresses_1.wrappedAddress[this.blockchain];
21
+ if (!address) {
22
+ return false;
23
+ }
24
+ return address.toLowerCase() === this.address.toLowerCase();
25
+ }
26
+ return false;
27
+ }
28
+ get asStruct() {
29
+ return {
30
+ address: this.address,
31
+ blockchain: this.blockchain,
32
+ decimals: this.decimals,
33
+ name: this.name,
34
+ symbol: this.symbol
35
+ };
36
+ }
37
+ constructor(tokenStruct) {
38
+ this.blockchain = tokenStruct.blockchain;
39
+ this.address = tokenStruct.address;
40
+ this.name = tokenStruct.name;
41
+ this.symbol = tokenStruct.symbol;
42
+ this.decimals = tokenStruct.decimals;
43
+ }
44
+ isEqualTo(token) {
45
+ return token.blockchain === this.blockchain && (token.address.toLowerCase() === this.address.toLowerCase());
46
+ }
47
+ isEqualToTokens(tokens) {
48
+ return tokens.some((token) => this.isEqualTo(token));
49
+ }
50
+ static toWei(amount, decimals = 18, roundingMode) {
51
+ return new bignumber_js_1.default(amount || 0).times(new bignumber_js_1.default(10).pow(decimals)).toFixed(0, roundingMode);
52
+ }
53
+ /**
54
+ * Converts amount from Wei to Ether units.
55
+ * @param amountInWei Amount to convert.
56
+ * @param decimals Token decimals.
57
+ */
58
+ static fromWei(amountInWei, decimals = 18) {
59
+ return new bignumber_js_1.default(amountInWei).div(new bignumber_js_1.default(10).pow(decimals));
60
+ }
61
+ }
62
+ exports.Token = Token;
63
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/tokens/token.ts"],"names":[],"mappings":";;;AAEA,+CAAqC;AACrC,sEAAgE;AAChE,wEAAgE;AAIhE,MAAa,KAAK;IACd;;OAEG;IACI,MAAM,CAAC,iBAAiB,CAAC,MAAe;QAC3C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAcD,IAAW,QAAQ;QACf,MAAM,aAAa,GAAG,4CAA4C,CAAC;QACnE,OAAO,aAAa,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IACtE,CAAC;IAED,IAAW,SAAS;QAChB,IAAI,kCAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACvD,MAAM,OAAO,GAAG,kCAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,OAAO,KAAK,CAAC;YACjB,CAAC;YACD,OAAO,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAChE,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,IAAW,QAAQ;QACf,OAAO;YACH,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC;IACN,CAAC;IAED,YAAY,WAAoC;QAC5C,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IACzC,CAAC;IAEM,SAAS,CAAC,KAAsB;QACnC,OAAO,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAChH,CAAC;IAEM,eAAe,CAAC,MAAyB;QAC5C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,MAAmC,EAAE,QAAQ,GAAG,EAAE,EAAE,YAAqC;QACzG,OAAO,IAAI,sBAAS,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,sBAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IACtG,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,OAAO,CAAC,WAAwC,EAAE,QAAQ,GAAG,EAAE;QACzE,OAAO,IAAI,sBAAS,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,sBAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3E,CAAC;CACJ;AA1ED,sBA0EC"}
@@ -0,0 +1,13 @@
1
+ import { CacheConfig } from "./models/cache-config";
2
+ type DecoratorSignature = <T>(_: Object, __: string | symbol, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T> | void;
3
+ /**
4
+ * Decorator, used to cache calculated result of functions.
5
+ */
6
+ export declare function Cache(cacheConfigOrTarget: CacheConfig): DecoratorSignature;
7
+ export declare function Cache<T>(cacheConfigOrTarget: Object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>): TypedPropertyDescriptor<T> | void;
8
+ /**
9
+ * Decorated function should return {@link ConditionalResult}.
10
+ * You have to check types by yourself {@see https://github.com/microsoft/TypeScript/issues/4881}
11
+ */
12
+ export declare function PConditionalCache<T>(_: Object, __: string | symbol, descriptor: TypedPropertyDescriptor<T>): TypedPropertyDescriptor<T> | void;
13
+ export {};
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Cache = Cache;
4
+ exports.PConditionalCache = PConditionalCache;
5
+ function generateKey(...args) {
6
+ return args.reduce((acc, arg) => (Object(arg) === arg ? acc + JSON.stringify(arg) : acc + String(arg)), '');
7
+ }
8
+ function saveResult(storage, key, result, maxAge) {
9
+ const validUntilTimestamp = maxAge ? Date.now() + maxAge : Infinity;
10
+ storage.set(key, { validUntilTimestamp, value: result });
11
+ }
12
+ function buildGetterCacheDescriptor(propertyKey, { get, enumerable }) {
13
+ return {
14
+ enumerable,
15
+ get() {
16
+ const value = get.call(this);
17
+ Object.defineProperty(this, propertyKey, {
18
+ enumerable,
19
+ value
20
+ });
21
+ return value;
22
+ }
23
+ };
24
+ }
25
+ function modifyMethodCacheDescriptor(cacheConfig, descriptor) {
26
+ const originalMethod = descriptor.value;
27
+ const storage = new WeakMap();
28
+ descriptor.value = function method(...args) {
29
+ if (!storage.has(this)) {
30
+ storage.set(this, new Map());
31
+ }
32
+ const instanceStore = storage.get(this);
33
+ const key = generateKey(args);
34
+ if (instanceStore.has(key)) {
35
+ const cacheItem = instanceStore.get(key);
36
+ if (cacheItem.validUntilTimestamp > Date.now()) {
37
+ return cacheItem.value;
38
+ }
39
+ instanceStore.delete(key);
40
+ }
41
+ let result = originalMethod.apply(this, args);
42
+ if (cacheConfig.conditionalCache) {
43
+ if (result instanceof Promise) {
44
+ const handledPromise = result
45
+ .then((resolved) => {
46
+ if (resolved.notSave) {
47
+ instanceStore.delete(key);
48
+ }
49
+ return resolved.value;
50
+ })
51
+ .catch(err => {
52
+ instanceStore.delete(key);
53
+ throw err;
54
+ });
55
+ saveResult(instanceStore, key, handledPromise, cacheConfig.maxAge);
56
+ return handledPromise;
57
+ }
58
+ result = result;
59
+ if (result.notSave) {
60
+ instanceStore.delete(key);
61
+ }
62
+ else {
63
+ saveResult(instanceStore, key, result.value, cacheConfig.maxAge);
64
+ }
65
+ return result.value;
66
+ }
67
+ if (result instanceof Promise) {
68
+ const handledPromise = result.catch(err => {
69
+ instanceStore.delete(key);
70
+ throw err;
71
+ });
72
+ saveResult(instanceStore, key, handledPromise, cacheConfig.maxAge);
73
+ return handledPromise;
74
+ }
75
+ saveResult(instanceStore, key, result, cacheConfig.maxAge);
76
+ return result;
77
+ };
78
+ return descriptor;
79
+ }
80
+ function CacheBuilder(cacheConfig) {
81
+ return function cacheBuilder(_, propertyKey, descriptor) {
82
+ const { get, value: originalMethod } = descriptor;
83
+ if (get) {
84
+ return buildGetterCacheDescriptor(propertyKey, {
85
+ get,
86
+ enumerable: descriptor.enumerable
87
+ });
88
+ }
89
+ if (!originalMethod) {
90
+ throw new Error('Descriptor value is undefined.');
91
+ }
92
+ return modifyMethodCacheDescriptor(cacheConfig, descriptor);
93
+ };
94
+ }
95
+ function Cache(cacheConfigOrTarget, propertyKey, descriptor) {
96
+ const defaultCacheConfig = {};
97
+ // if decorator called with config as @Cache({ ... })
98
+ if (!propertyKey) {
99
+ return CacheBuilder(cacheConfigOrTarget);
100
+ }
101
+ // decorator called as @Cache
102
+ if (!descriptor) {
103
+ throw new Error('Descriptor is undefined');
104
+ }
105
+ return CacheBuilder(defaultCacheConfig)(cacheConfigOrTarget, propertyKey, descriptor);
106
+ }
107
+ /**
108
+ * Decorated function should return {@link ConditionalResult}.
109
+ * You have to check types by yourself {@see https://github.com/microsoft/TypeScript/issues/4881}
110
+ */
111
+ function PConditionalCache(_, __, descriptor) {
112
+ const originalMethod = descriptor.value;
113
+ if (!originalMethod) {
114
+ throw new Error('Descriptor value is undefined');
115
+ }
116
+ const storage = new WeakMap();
117
+ descriptor.value = async function method(...args) {
118
+ if (!storage.has(this)) {
119
+ storage.set(this, new Map());
120
+ }
121
+ const instanceStore = storage.get(this);
122
+ const key = generateKey(args);
123
+ if (instanceStore.has(key)) {
124
+ return instanceStore.get(key);
125
+ }
126
+ const result = await originalMethod.apply(this, args);
127
+ if (result.notSave) {
128
+ instanceStore.delete(key);
129
+ }
130
+ else {
131
+ instanceStore.set(key, result.value);
132
+ }
133
+ return result.value;
134
+ };
135
+ }
136
+ //# sourceMappingURL=cache.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.decorator.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/utils/cache.decorator.ts"],"names":[],"mappings":";;AAqJA,sBAkBC;AAMD,8CA+BC;AA9LD,SAAS,WAAW,CAAC,GAAG,IAAe;IACnC,OAAO,IAAI,CAAC,MAAM,CACd,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EACnF,EAAE,CACK,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CACf,OAAkC,EAClC,GAAW,EACX,MAAS,EACT,MAAe;IAEf,MAAM,mBAAmB,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,0BAA0B,CAC/B,WAA4B,EAC5B,EAAE,GAAG,EAAE,UAAU,EAA0C;IAE3D,OAAO;QACH,UAAU;QACV,GAAG;YACC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAE7B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE;gBACrC,UAAU;gBACV,KAAK;aACR,CAAC,CAAC;YAEH,OAAO,KAAK,CAAC;QACjB,CAAC;KACJ,CAAC;AACN,CAAC;AAED,SAAS,2BAA2B,CAChC,WAAwB,EACxB,UAAsC;IAEtC,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAuC,CAAC;IAEnE,UAAU,CAAC,KAAK,GAAG,SAAS,MAAM,CAAiB,GAAG,IAAe;QACjE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAwB,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QACzC,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;YAC1C,IAAI,SAAS,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBAC7C,OAAO,SAAS,CAAC,KAAK,CAAC;YAC3B,CAAC;YACD,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,MAAM,GAA8B,cAAsC,CAAC,KAAK,CAChF,IAAI,EACJ,IAAI,CACP,CAAC;QAEF,IAAI,WAAW,CAAC,gBAAgB,EAAE,CAAC;YAC/B,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;gBAC5B,MAAM,cAAc,GAAG,MAAM;qBACxB,IAAI,CAAC,CAAC,QAA8B,EAAE,EAAE;oBACrC,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACnB,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC9B,CAAC;oBACD,OAAO,QAAQ,CAAC,KAAK,CAAC;gBAC1B,CAAC,CAAC;qBACD,KAAK,CAAC,GAAG,CAAC,EAAE;oBACT,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC1B,MAAM,GAAG,CAAC;gBACd,CAAC,CAAiB,CAAC;gBACvB,UAAU,CAAC,aAAa,EAAE,GAAG,EAAE,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;gBACnE,OAAO,cAAc,CAAC;YAC1B,CAAC;YAED,MAAM,GAAG,MAA8B,CAAC;YACxC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACJ,UAAU,CAAC,aAAa,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,MAAM,CAAC,KAAK,CAAC;QACxB,CAAC;QAED,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;YAC5B,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBACtC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1B,MAAM,GAAG,CAAC;YACd,CAAC,CAAiB,CAAC;YACnB,UAAU,CAAC,aAAa,EAAE,GAAG,EAAE,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YACnE,OAAO,cAAc,CAAC;QAC1B,CAAC;QACD,UAAU,CAAC,aAAa,EAAE,GAAG,EAAE,MAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC;IAClB,CAAiB,CAAC;IAElB,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAS,YAAY,CAAC,WAAwB;IAC1C,OAAO,SAAS,YAAY,CACxB,CAAS,EACT,WAA4B,EAC5B,UAAsC;QAEtC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC;QAClD,IAAI,GAAG,EAAE,CAAC;YACN,OAAO,0BAA0B,CAAC,WAAW,EAAE;gBAC3C,GAAG;gBACH,UAAU,EAAE,UAAU,CAAC,UAAU;aACpC,CAAC,CAAC;QACP,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,2BAA2B,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAChE,CAAC,CAAC;AACN,CAAC;AAWD,SAAgB,KAAK,CACjB,mBAA2B,EAC3B,WAA6B,EAC7B,UAAuC;IAEvC,MAAM,kBAAkB,GAAG,EAAE,CAAC;IAE9B,qDAAqD;IACrD,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,YAAY,CAAC,mBAAmB,CAAC,CAAC;IAC7C,CAAC;IAED,6BAA6B;IAE7B,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,YAAY,CAAC,kBAAkB,CAAC,CAAI,mBAAmB,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AAC7F,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAC7B,CAAS,EACT,EAAmB,EACnB,UAAsC;IAEtC,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;IACxC,IAAI,CAAC,cAAc,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,OAAO,EAAkC,CAAC;IAE9D,UAAU,CAAC,KAAK,GAAG,KAAK,UAAU,MAAM,CAAiB,GAAG,IAAe;QACvE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAmB,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QACzC,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,MAAM,GAAG,MAAO,cAAsC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACJ,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC;IACxB,CAAiB,CAAC;AACtB,CAAC"}
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Compares provided addresses case insensitive.
3
+ */
4
+ export declare function compareAddresses(address0: string, address1: string): boolean;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.compareAddresses = compareAddresses;
4
+ /**
5
+ * Compares provided addresses case insensitive.
6
+ */
7
+ function compareAddresses(address0, address1) {
8
+ return address0.toLowerCase() === address1.toLowerCase();
9
+ }
10
+ //# sourceMappingURL=compare-addresses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare-addresses.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/utils/compare-addresses.ts"],"names":[],"mappings":";;AAGA,4CAEC;AALD;;GAEG;AACH,SAAgB,gBAAgB,CAAC,QAAgB,EAAE,QAAgB;IAC/D,OAAO,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Configuration, used for cache decorator.
3
+ */
4
+ export interface CacheConfig {
5
+ /**
6
+ * Amount of time, during which cached result is relevant.
7
+ */
8
+ maxAge?: number;
9
+ /**
10
+ * If true, then results must be of type {@link ConditionalResult},
11
+ * defining whether to cache calculated result.
12
+ */
13
+ conditionalCache?: boolean;
14
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=cache-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-config.js","sourceRoot":"","sources":["../../../../../../../packages/core/src/lib/utils/models/cache-config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Used for {@link Cache} decorator.
3
+ * User `notSave` field to define whether to cache calculated result.
4
+ */
5
+ export type ConditionalResult<T> = {
6
+ notSave: boolean;
7
+ value: T;
8
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=conditional-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conditional-result.js","sourceRoot":"","sources":["../../../../../../../packages/core/src/lib/utils/models/conditional-result.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export type InfiniteArray<T> = (T | InfiniteArray<T>)[];
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=infinite-array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infinite-array.js","sourceRoot":"","sources":["../../../../../../../packages/core/src/lib/utils/models/infinite-array.ts"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ export declare function cloneObject<T extends object>(obj: T): T;
2
+ /**
3
+ * Filters object, that can possible be `null`.
4
+ */
5
+ export declare function notNull<T>(obj: T | null): obj is T;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cloneObject = cloneObject;
4
+ exports.notNull = notNull;
5
+ function cloneObject(obj) {
6
+ return JSON.parse(JSON.stringify(obj));
7
+ }
8
+ /**
9
+ * Filters object, that can possible be `null`.
10
+ */
11
+ function notNull(obj) {
12
+ return obj !== null;
13
+ }
14
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../../../../packages/core/src/lib/utils/object.ts"],"names":[],"mappings":";;AAAA,kCAEC;AAKD,0BAEC;AATD,SAAgB,WAAW,CAAmB,GAAM;IAChD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAI,GAAa;IACpC,OAAO,GAAG,KAAK,IAAI,CAAC;AACxB,CAAC"}