@atomiqlabs/sdk 8.6.6 → 8.6.8
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/dist/SmartChainAssets.d.ts +181 -181
- package/dist/SmartChainAssets.js +181 -181
- package/dist/bitcoin/coinselect2/accumulative.d.ts +6 -6
- package/dist/bitcoin/coinselect2/accumulative.js +52 -51
- package/dist/bitcoin/coinselect2/blackjack.d.ts +6 -6
- package/dist/bitcoin/coinselect2/blackjack.js +38 -37
- package/dist/bitcoin/coinselect2/index.d.ts +19 -17
- package/dist/bitcoin/coinselect2/index.js +69 -69
- package/dist/bitcoin/coinselect2/utils.d.ts +77 -75
- package/dist/bitcoin/coinselect2/utils.js +123 -123
- package/dist/bitcoin/wallet/BitcoinWallet.d.ts +130 -128
- package/dist/bitcoin/wallet/BitcoinWallet.js +322 -322
- package/dist/bitcoin/wallet/IBitcoinWallet.d.ts +78 -78
- package/dist/bitcoin/wallet/IBitcoinWallet.js +21 -20
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.d.ts +101 -99
- package/dist/bitcoin/wallet/SingleAddressBitcoinWallet.js +190 -176
- package/dist/enums/FeeType.d.ts +15 -15
- package/dist/enums/FeeType.js +19 -19
- package/dist/enums/SwapAmountType.d.ts +15 -15
- package/dist/enums/SwapAmountType.js +19 -19
- package/dist/enums/SwapDirection.d.ts +15 -15
- package/dist/enums/SwapDirection.js +19 -19
- package/dist/enums/SwapSide.d.ts +15 -15
- package/dist/enums/SwapSide.js +19 -19
- package/dist/enums/SwapType.d.ts +75 -75
- package/dist/enums/SwapType.js +79 -79
- package/dist/errors/IntermediaryError.d.ts +13 -13
- package/dist/errors/IntermediaryError.js +27 -27
- package/dist/errors/RequestError.d.ts +32 -32
- package/dist/errors/RequestError.js +54 -54
- package/dist/errors/UserError.d.ts +8 -8
- package/dist/errors/UserError.js +16 -16
- package/dist/events/UnifiedSwapEventListener.d.ts +23 -23
- package/dist/events/UnifiedSwapEventListener.js +130 -130
- package/dist/http/HttpUtils.d.ts +27 -27
- package/dist/http/HttpUtils.js +91 -90
- package/dist/http/paramcoders/IParamReader.d.ts +8 -8
- package/dist/http/paramcoders/IParamReader.js +2 -2
- package/dist/http/paramcoders/ParamDecoder.d.ts +44 -42
- package/dist/http/paramcoders/ParamDecoder.js +137 -137
- package/dist/http/paramcoders/ParamEncoder.d.ts +20 -18
- package/dist/http/paramcoders/ParamEncoder.js +36 -36
- package/dist/http/paramcoders/SchemaVerifier.d.ts +26 -26
- package/dist/http/paramcoders/SchemaVerifier.js +145 -145
- package/dist/http/paramcoders/client/ResponseParamDecoder.d.ts +11 -11
- package/dist/http/paramcoders/client/ResponseParamDecoder.js +57 -57
- package/dist/http/paramcoders/client/StreamParamEncoder.d.ts +13 -11
- package/dist/http/paramcoders/client/StreamParamEncoder.js +26 -26
- package/dist/http/paramcoders/client/StreamingFetchPromise.d.ts +16 -16
- package/dist/http/paramcoders/client/StreamingFetchPromise.js +174 -173
- package/dist/index.d.ts +85 -85
- package/dist/index.js +158 -158
- package/dist/intermediaries/Intermediary.d.ts +157 -157
- package/dist/intermediaries/Intermediary.js +142 -142
- package/dist/intermediaries/IntermediaryDiscovery.d.ts +199 -198
- package/dist/intermediaries/IntermediaryDiscovery.js +406 -406
- package/dist/intermediaries/apis/IntermediaryAPI.d.ts +439 -437
- package/dist/intermediaries/apis/IntermediaryAPI.js +603 -603
- package/dist/intermediaries/apis/TrustedIntermediaryAPI.d.ts +155 -155
- package/dist/intermediaries/apis/TrustedIntermediaryAPI.js +137 -137
- package/dist/lnurl/LNURL.d.ts +102 -102
- package/dist/lnurl/LNURL.js +321 -321
- package/dist/prices/RedundantSwapPrice.d.ts +110 -110
- package/dist/prices/RedundantSwapPrice.js +222 -222
- package/dist/prices/SingleSwapPrice.d.ts +34 -34
- package/dist/prices/SingleSwapPrice.js +44 -44
- package/dist/prices/SwapPriceWithChain.d.ts +107 -107
- package/dist/prices/SwapPriceWithChain.js +128 -128
- package/dist/prices/abstract/ICachedSwapPrice.d.ts +28 -28
- package/dist/prices/abstract/ICachedSwapPrice.js +62 -62
- package/dist/prices/abstract/IPriceProvider.d.ts +81 -81
- package/dist/prices/abstract/IPriceProvider.js +74 -74
- package/dist/prices/abstract/ISwapPrice.d.ts +168 -168
- package/dist/prices/abstract/ISwapPrice.js +279 -279
- package/dist/prices/providers/BinancePriceProvider.d.ts +23 -23
- package/dist/prices/providers/BinancePriceProvider.js +30 -30
- package/dist/prices/providers/CoinGeckoPriceProvider.d.ts +23 -23
- package/dist/prices/providers/CoinGeckoPriceProvider.js +29 -29
- package/dist/prices/providers/CoinPaprikaPriceProvider.d.ts +25 -25
- package/dist/prices/providers/CoinPaprikaPriceProvider.js +29 -29
- package/dist/prices/providers/CustomPriceProvider.d.ts +24 -24
- package/dist/prices/providers/CustomPriceProvider.js +35 -35
- package/dist/prices/providers/KrakenPriceProvider.d.ts +38 -38
- package/dist/prices/providers/KrakenPriceProvider.js +45 -45
- package/dist/prices/providers/OKXPriceProvider.d.ts +34 -34
- package/dist/prices/providers/OKXPriceProvider.js +29 -29
- package/dist/prices/providers/abstract/ExchangePriceProvider.d.ts +17 -17
- package/dist/prices/providers/abstract/ExchangePriceProvider.js +21 -21
- package/dist/prices/providers/abstract/HttpPriceProvider.d.ts +7 -7
- package/dist/prices/providers/abstract/HttpPriceProvider.js +12 -12
- package/dist/storage/IUnifiedStorage.d.ts +85 -85
- package/dist/storage/IUnifiedStorage.js +2 -2
- package/dist/storage/UnifiedSwapStorage.d.ts +114 -114
- package/dist/storage/UnifiedSwapStorage.js +116 -116
- package/dist/storage-browser/IndexedDBUnifiedStorage.d.ts +63 -63
- package/dist/storage-browser/IndexedDBUnifiedStorage.js +298 -298
- package/dist/storage-browser/LocalStorageManager.d.ts +49 -49
- package/dist/storage-browser/LocalStorageManager.js +93 -93
- package/dist/swapper/Swapper.d.ts +687 -686
- package/dist/swapper/Swapper.js +1603 -1603
- package/dist/swapper/SwapperFactory.d.ts +135 -135
- package/dist/swapper/SwapperFactory.js +162 -162
- package/dist/swapper/SwapperUtils.d.ts +200 -200
- package/dist/swapper/SwapperUtils.js +467 -467
- package/dist/swapper/SwapperWithChain.d.ts +404 -404
- package/dist/swapper/SwapperWithChain.js +469 -469
- package/dist/swapper/SwapperWithSigner.d.ts +322 -322
- package/dist/swapper/SwapperWithSigner.js +318 -318
- package/dist/swaps/IAddressSwap.d.ts +22 -22
- package/dist/swaps/IAddressSwap.js +14 -13
- package/dist/swaps/IBTCWalletSwap.d.ts +73 -73
- package/dist/swaps/IBTCWalletSwap.js +18 -17
- package/dist/swaps/IClaimableSwap.d.ts +49 -49
- package/dist/swaps/IClaimableSwap.js +15 -14
- package/dist/swaps/IClaimableSwapWrapper.d.ts +15 -15
- package/dist/swaps/IClaimableSwapWrapper.js +2 -2
- package/dist/swaps/IRefundableSwap.d.ts +43 -43
- package/dist/swaps/IRefundableSwap.js +14 -13
- package/dist/swaps/ISwap.d.ts +387 -386
- package/dist/swaps/ISwap.js +346 -346
- package/dist/swaps/ISwapWithGasDrop.d.ts +21 -21
- package/dist/swaps/ISwapWithGasDrop.js +12 -11
- package/dist/swaps/ISwapWrapper.d.ts +285 -283
- package/dist/swaps/ISwapWrapper.js +353 -353
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.d.ts +98 -98
- package/dist/swaps/escrow_swaps/IEscrowSelfInitSwap.js +126 -126
- package/dist/swaps/escrow_swaps/IEscrowSwap.d.ts +135 -133
- package/dist/swaps/escrow_swaps/IEscrowSwap.js +169 -169
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.d.ts +115 -114
- package/dist/swaps/escrow_swaps/IEscrowSwapWrapper.js +134 -134
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.d.ts +101 -98
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCLNWrapper.js +130 -130
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.d.ts +162 -162
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCSelfInitSwap.js +190 -190
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.d.ts +58 -58
- package/dist/swaps/escrow_swaps/frombtc/IFromBTCWrapper.js +78 -78
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.d.ts +531 -529
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNSwap.js +1285 -1285
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.d.ts +184 -181
- package/dist/swaps/escrow_swaps/frombtc/ln/FromBTCLNWrapper.js +418 -418
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.d.ts +583 -581
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoSwap.js +1371 -1371
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.d.ts +228 -225
- package/dist/swaps/escrow_swaps/frombtc/ln_auto/FromBTCLNAutoWrapper.js +506 -506
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.d.ts +458 -458
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCSwap.js +1126 -1126
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.d.ts +191 -190
- package/dist/swaps/escrow_swaps/frombtc/onchain/FromBTCWrapper.js +378 -378
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.d.ts +403 -403
- package/dist/swaps/escrow_swaps/tobtc/IToBTCSwap.js +924 -924
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.d.ts +62 -62
- package/dist/swaps/escrow_swaps/tobtc/IToBTCWrapper.js +112 -112
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.d.ts +127 -125
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNSwap.js +256 -256
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.d.ts +242 -241
- package/dist/swaps/escrow_swaps/tobtc/ln/ToBTCLNWrapper.js +520 -520
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.d.ts +73 -73
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCSwap.js +155 -155
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.d.ts +128 -127
- package/dist/swaps/escrow_swaps/tobtc/onchain/ToBTCWrapper.js +278 -278
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.d.ts +630 -630
- package/dist/swaps/spv_swaps/SpvFromBTCSwap.js +1443 -1443
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.d.ts +214 -213
- package/dist/swaps/spv_swaps/SpvFromBTCWrapper.js +756 -756
- package/dist/swaps/trusted/ln/LnForGasSwap.d.ts +261 -261
- package/dist/swaps/trusted/ln/LnForGasSwap.js +511 -511
- package/dist/swaps/trusted/ln/LnForGasWrapper.d.ts +40 -40
- package/dist/swaps/trusted/ln/LnForGasWrapper.js +82 -82
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.d.ts +342 -342
- package/dist/swaps/trusted/onchain/OnchainForGasSwap.js +715 -715
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.d.ts +69 -68
- package/dist/swaps/trusted/onchain/OnchainForGasWrapper.js +92 -92
- package/dist/types/AmountData.d.ts +10 -10
- package/dist/types/AmountData.js +2 -2
- package/dist/types/CustomPriceFunction.d.ts +11 -11
- package/dist/types/CustomPriceFunction.js +2 -2
- package/dist/types/PriceInfoType.d.ts +28 -28
- package/dist/types/PriceInfoType.js +57 -56
- package/dist/types/SwapExecutionAction.d.ts +88 -88
- package/dist/types/SwapExecutionAction.js +2 -2
- package/dist/types/SwapStateInfo.d.ts +5 -5
- package/dist/types/SwapStateInfo.js +2 -2
- package/dist/types/SwapWithSigner.d.ts +17 -17
- package/dist/types/SwapWithSigner.js +43 -42
- package/dist/types/Token.d.ts +99 -99
- package/dist/types/Token.js +76 -76
- package/dist/types/TokenAmount.d.ts +69 -69
- package/dist/types/TokenAmount.js +60 -59
- package/dist/types/fees/Fee.d.ts +50 -50
- package/dist/types/fees/Fee.js +2 -2
- package/dist/types/fees/FeeBreakdown.d.ts +11 -11
- package/dist/types/fees/FeeBreakdown.js +2 -2
- package/dist/types/fees/PercentagePPM.d.ts +17 -17
- package/dist/types/fees/PercentagePPM.js +18 -17
- package/dist/types/lnurl/LNURLPay.d.ts +61 -61
- package/dist/types/lnurl/LNURLPay.js +31 -30
- package/dist/types/lnurl/LNURLWithdraw.d.ts +48 -48
- package/dist/types/lnurl/LNURLWithdraw.js +27 -26
- package/dist/types/wallets/LightningInvoiceCreateService.d.ts +24 -24
- package/dist/types/wallets/LightningInvoiceCreateService.js +15 -14
- package/dist/types/wallets/MinimalBitcoinWalletInterface.d.ts +23 -23
- package/dist/types/wallets/MinimalBitcoinWalletInterface.js +2 -2
- package/dist/types/wallets/MinimalLightningNetworkWalletInterface.d.ts +9 -9
- package/dist/types/wallets/MinimalLightningNetworkWalletInterface.js +2 -2
- package/dist/utils/AutomaticClockDriftCorrection.d.ts +1 -1
- package/dist/utils/AutomaticClockDriftCorrection.js +70 -69
- package/dist/utils/BitcoinUtils.d.ts +14 -12
- package/dist/utils/BitcoinUtils.js +102 -101
- package/dist/utils/BitcoinWalletUtils.d.ts +7 -7
- package/dist/utils/BitcoinWalletUtils.js +14 -13
- package/dist/utils/Logger.d.ts +7 -7
- package/dist/utils/Logger.js +12 -11
- package/dist/utils/RetryUtils.d.ts +22 -22
- package/dist/utils/RetryUtils.js +67 -66
- package/dist/utils/SwapUtils.d.ts +88 -88
- package/dist/utils/SwapUtils.js +72 -72
- package/dist/utils/TimeoutUtils.d.ts +17 -17
- package/dist/utils/TimeoutUtils.js +55 -54
- package/dist/utils/TokenUtils.d.ts +19 -19
- package/dist/utils/TokenUtils.js +37 -36
- package/dist/utils/TypeUtils.d.ts +7 -7
- package/dist/utils/TypeUtils.js +2 -2
- package/dist/utils/Utils.d.ts +58 -56
- package/dist/utils/Utils.js +194 -193
- package/package.json +1 -1
- package/src/bitcoin/wallet/SingleAddressBitcoinWallet.ts +14 -2
|
@@ -1,42 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { IParamReader } from "./IParamReader";
|
|
4
|
+
import { Buffer } from "buffer";
|
|
5
|
+
export declare class ParamDecoder implements IParamReader {
|
|
6
|
+
frameHeader?: Buffer;
|
|
7
|
+
frameData: Buffer[];
|
|
8
|
+
frameDataLength: number;
|
|
9
|
+
closed: boolean;
|
|
10
|
+
params: {
|
|
11
|
+
[key: string]: {
|
|
12
|
+
promise: Promise<any>;
|
|
13
|
+
resolve?: (data: any) => void;
|
|
14
|
+
reject?: (err: any) => void;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Called when a frame is fully ready such that it can be parsed
|
|
19
|
+
*
|
|
20
|
+
* @param data Frame data
|
|
21
|
+
* @private
|
|
22
|
+
*/
|
|
23
|
+
private onFrameRead;
|
|
24
|
+
/**
|
|
25
|
+
* Called when data is read from the underlying source
|
|
26
|
+
*
|
|
27
|
+
* @param data Data that has been read from the underlying source
|
|
28
|
+
* @protected
|
|
29
|
+
*/
|
|
30
|
+
protected onData(data: Buffer): void;
|
|
31
|
+
/**
|
|
32
|
+
* Called when the underlying source ends/closes/cancels
|
|
33
|
+
* @protected
|
|
34
|
+
*/
|
|
35
|
+
protected onEnd(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Called when an error happens with the underlying stream
|
|
38
|
+
*
|
|
39
|
+
* @param e Error
|
|
40
|
+
* @protected
|
|
41
|
+
*/
|
|
42
|
+
protected onError(e: any): void;
|
|
43
|
+
getParam<T>(key: string): Promise<T>;
|
|
44
|
+
}
|
|
@@ -1,137 +1,137 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ParamDecoder = void 0;
|
|
4
|
-
const buffer_1 = require("buffer");
|
|
5
|
-
function ensureBuffer(input) {
|
|
6
|
-
if (input instanceof buffer_1.Buffer)
|
|
7
|
-
return input;
|
|
8
|
-
return buffer_1.Buffer.from(input);
|
|
9
|
-
}
|
|
10
|
-
class ParamDecoder {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.frameData = [];
|
|
13
|
-
this.frameDataLength = 0;
|
|
14
|
-
this.closed = false;
|
|
15
|
-
this.params = {};
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Called when a frame is fully ready such that it can be parsed
|
|
19
|
-
*
|
|
20
|
-
* @param data Frame data
|
|
21
|
-
* @private
|
|
22
|
-
*/
|
|
23
|
-
onFrameRead(data) {
|
|
24
|
-
const obj = JSON.parse(data.toString());
|
|
25
|
-
for (let key in obj) {
|
|
26
|
-
if (this.params[key] == null) {
|
|
27
|
-
this.params[key] = {
|
|
28
|
-
promise: Promise.resolve(obj[key])
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
const resolveFn = this.params[key].resolve;
|
|
33
|
-
if (resolveFn != null) {
|
|
34
|
-
resolveFn(obj[key]);
|
|
35
|
-
delete this.params[key].resolve;
|
|
36
|
-
delete this.params[key].reject;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Called when data is read from the underlying source
|
|
43
|
-
*
|
|
44
|
-
* @param data Data that has been read from the underlying source
|
|
45
|
-
* @protected
|
|
46
|
-
*/
|
|
47
|
-
onData(data) {
|
|
48
|
-
let leavesBuffer = data;
|
|
49
|
-
while (leavesBuffer != null && leavesBuffer.length > 0) {
|
|
50
|
-
if (this.frameHeader == null) {
|
|
51
|
-
if (leavesBuffer.length <= 4) {
|
|
52
|
-
this.frameHeader = leavesBuffer;
|
|
53
|
-
leavesBuffer = null;
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
this.frameHeader = ensureBuffer(leavesBuffer.subarray(0, 4));
|
|
57
|
-
leavesBuffer = ensureBuffer(leavesBuffer.subarray(4));
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
else if (this.frameHeader.length < 4) {
|
|
61
|
-
const requiredLen = 4 - this.frameHeader.length;
|
|
62
|
-
if (leavesBuffer.length <= requiredLen) {
|
|
63
|
-
this.frameHeader = buffer_1.Buffer.concat([this.frameHeader, leavesBuffer]);
|
|
64
|
-
leavesBuffer = null;
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
this.frameHeader = buffer_1.Buffer.concat([this.frameHeader, leavesBuffer.subarray(0, requiredLen)]);
|
|
68
|
-
leavesBuffer = ensureBuffer(leavesBuffer.subarray(requiredLen));
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
if (leavesBuffer == null)
|
|
72
|
-
continue;
|
|
73
|
-
if (this.frameHeader == null || this.frameHeader.length < 4)
|
|
74
|
-
continue;
|
|
75
|
-
const frameLength = this.frameHeader.readUint32LE != null ? this.frameHeader.readUint32LE() : this.frameHeader.readUInt32LE();
|
|
76
|
-
const requiredLen = frameLength - this.frameDataLength;
|
|
77
|
-
if (leavesBuffer.length <= requiredLen) {
|
|
78
|
-
this.frameData.push(leavesBuffer);
|
|
79
|
-
this.frameDataLength += leavesBuffer.length;
|
|
80
|
-
leavesBuffer = null;
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
this.frameData.push(leavesBuffer.subarray(0, requiredLen));
|
|
84
|
-
this.frameDataLength += requiredLen;
|
|
85
|
-
leavesBuffer = leavesBuffer.subarray(requiredLen);
|
|
86
|
-
}
|
|
87
|
-
if (frameLength === this.frameDataLength) {
|
|
88
|
-
//Message read success
|
|
89
|
-
this.onFrameRead(buffer_1.Buffer.concat(this.frameData));
|
|
90
|
-
delete this.frameHeader;
|
|
91
|
-
this.frameData = [];
|
|
92
|
-
this.frameDataLength = 0;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Called when the underlying source ends/closes/cancels
|
|
98
|
-
* @protected
|
|
99
|
-
*/
|
|
100
|
-
onEnd() {
|
|
101
|
-
for (let key in this.params) {
|
|
102
|
-
this.params[key].reject?.(new Error("EOF before field seen!"));
|
|
103
|
-
}
|
|
104
|
-
this.closed = true;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Called when an error happens with the underlying stream
|
|
108
|
-
*
|
|
109
|
-
* @param e Error
|
|
110
|
-
* @protected
|
|
111
|
-
*/
|
|
112
|
-
onError(e) {
|
|
113
|
-
for (let key in this.params) {
|
|
114
|
-
this.params[key].reject?.(e);
|
|
115
|
-
}
|
|
116
|
-
this.closed = true;
|
|
117
|
-
}
|
|
118
|
-
getParam(key) {
|
|
119
|
-
if (this.params[key] == null) {
|
|
120
|
-
if (this.closed)
|
|
121
|
-
return Promise.reject(new Error("Stream already closed without param received!"));
|
|
122
|
-
let resolve;
|
|
123
|
-
let reject;
|
|
124
|
-
const promise = new Promise((_resolve, _reject) => {
|
|
125
|
-
resolve = _resolve;
|
|
126
|
-
reject = _reject;
|
|
127
|
-
});
|
|
128
|
-
this.params[key] = {
|
|
129
|
-
resolve: resolve,
|
|
130
|
-
reject: reject,
|
|
131
|
-
promise
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
return this.params[key].promise;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
exports.ParamDecoder = ParamDecoder;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ParamDecoder = void 0;
|
|
4
|
+
const buffer_1 = require("buffer");
|
|
5
|
+
function ensureBuffer(input) {
|
|
6
|
+
if (input instanceof buffer_1.Buffer)
|
|
7
|
+
return input;
|
|
8
|
+
return buffer_1.Buffer.from(input);
|
|
9
|
+
}
|
|
10
|
+
class ParamDecoder {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.frameData = [];
|
|
13
|
+
this.frameDataLength = 0;
|
|
14
|
+
this.closed = false;
|
|
15
|
+
this.params = {};
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Called when a frame is fully ready such that it can be parsed
|
|
19
|
+
*
|
|
20
|
+
* @param data Frame data
|
|
21
|
+
* @private
|
|
22
|
+
*/
|
|
23
|
+
onFrameRead(data) {
|
|
24
|
+
const obj = JSON.parse(data.toString());
|
|
25
|
+
for (let key in obj) {
|
|
26
|
+
if (this.params[key] == null) {
|
|
27
|
+
this.params[key] = {
|
|
28
|
+
promise: Promise.resolve(obj[key])
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
const resolveFn = this.params[key].resolve;
|
|
33
|
+
if (resolveFn != null) {
|
|
34
|
+
resolveFn(obj[key]);
|
|
35
|
+
delete this.params[key].resolve;
|
|
36
|
+
delete this.params[key].reject;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Called when data is read from the underlying source
|
|
43
|
+
*
|
|
44
|
+
* @param data Data that has been read from the underlying source
|
|
45
|
+
* @protected
|
|
46
|
+
*/
|
|
47
|
+
onData(data) {
|
|
48
|
+
let leavesBuffer = data;
|
|
49
|
+
while (leavesBuffer != null && leavesBuffer.length > 0) {
|
|
50
|
+
if (this.frameHeader == null) {
|
|
51
|
+
if (leavesBuffer.length <= 4) {
|
|
52
|
+
this.frameHeader = leavesBuffer;
|
|
53
|
+
leavesBuffer = null;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
this.frameHeader = ensureBuffer(leavesBuffer.subarray(0, 4));
|
|
57
|
+
leavesBuffer = ensureBuffer(leavesBuffer.subarray(4));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else if (this.frameHeader.length < 4) {
|
|
61
|
+
const requiredLen = 4 - this.frameHeader.length;
|
|
62
|
+
if (leavesBuffer.length <= requiredLen) {
|
|
63
|
+
this.frameHeader = buffer_1.Buffer.concat([this.frameHeader, leavesBuffer]);
|
|
64
|
+
leavesBuffer = null;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
this.frameHeader = buffer_1.Buffer.concat([this.frameHeader, leavesBuffer.subarray(0, requiredLen)]);
|
|
68
|
+
leavesBuffer = ensureBuffer(leavesBuffer.subarray(requiredLen));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (leavesBuffer == null)
|
|
72
|
+
continue;
|
|
73
|
+
if (this.frameHeader == null || this.frameHeader.length < 4)
|
|
74
|
+
continue;
|
|
75
|
+
const frameLength = this.frameHeader.readUint32LE != null ? this.frameHeader.readUint32LE() : this.frameHeader.readUInt32LE();
|
|
76
|
+
const requiredLen = frameLength - this.frameDataLength;
|
|
77
|
+
if (leavesBuffer.length <= requiredLen) {
|
|
78
|
+
this.frameData.push(leavesBuffer);
|
|
79
|
+
this.frameDataLength += leavesBuffer.length;
|
|
80
|
+
leavesBuffer = null;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
this.frameData.push(leavesBuffer.subarray(0, requiredLen));
|
|
84
|
+
this.frameDataLength += requiredLen;
|
|
85
|
+
leavesBuffer = leavesBuffer.subarray(requiredLen);
|
|
86
|
+
}
|
|
87
|
+
if (frameLength === this.frameDataLength) {
|
|
88
|
+
//Message read success
|
|
89
|
+
this.onFrameRead(buffer_1.Buffer.concat(this.frameData));
|
|
90
|
+
delete this.frameHeader;
|
|
91
|
+
this.frameData = [];
|
|
92
|
+
this.frameDataLength = 0;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Called when the underlying source ends/closes/cancels
|
|
98
|
+
* @protected
|
|
99
|
+
*/
|
|
100
|
+
onEnd() {
|
|
101
|
+
for (let key in this.params) {
|
|
102
|
+
this.params[key].reject?.(new Error("EOF before field seen!"));
|
|
103
|
+
}
|
|
104
|
+
this.closed = true;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Called when an error happens with the underlying stream
|
|
108
|
+
*
|
|
109
|
+
* @param e Error
|
|
110
|
+
* @protected
|
|
111
|
+
*/
|
|
112
|
+
onError(e) {
|
|
113
|
+
for (let key in this.params) {
|
|
114
|
+
this.params[key].reject?.(e);
|
|
115
|
+
}
|
|
116
|
+
this.closed = true;
|
|
117
|
+
}
|
|
118
|
+
getParam(key) {
|
|
119
|
+
if (this.params[key] == null) {
|
|
120
|
+
if (this.closed)
|
|
121
|
+
return Promise.reject(new Error("Stream already closed without param received!"));
|
|
122
|
+
let resolve;
|
|
123
|
+
let reject;
|
|
124
|
+
const promise = new Promise((_resolve, _reject) => {
|
|
125
|
+
resolve = _resolve;
|
|
126
|
+
reject = _reject;
|
|
127
|
+
});
|
|
128
|
+
this.params[key] = {
|
|
129
|
+
resolve: resolve,
|
|
130
|
+
reject: reject,
|
|
131
|
+
promise
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
return this.params[key].promise;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
exports.ParamDecoder = ParamDecoder;
|
|
@@ -1,18 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
*
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { Buffer } from "buffer";
|
|
4
|
+
export declare class ParamEncoder {
|
|
5
|
+
private readonly writeFN;
|
|
6
|
+
private readonly endFN;
|
|
7
|
+
constructor(write: (data: Buffer) => Promise<void>, end: () => Promise<void>);
|
|
8
|
+
/**
|
|
9
|
+
* Write a set of parameters to the underlying sink
|
|
10
|
+
*
|
|
11
|
+
* @param data
|
|
12
|
+
*/
|
|
13
|
+
writeParams(data: {
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
}): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Cancels the underlying sink and encoder
|
|
18
|
+
*/
|
|
19
|
+
end(): Promise<void>;
|
|
20
|
+
}
|
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ParamEncoder = void 0;
|
|
4
|
-
const buffer_1 = require("buffer");
|
|
5
|
-
class ParamEncoder {
|
|
6
|
-
constructor(write, end) {
|
|
7
|
-
this.writeFN = write;
|
|
8
|
-
this.endFN = end;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Write a set of parameters to the underlying sink
|
|
12
|
-
*
|
|
13
|
-
* @param data
|
|
14
|
-
*/
|
|
15
|
-
writeParams(data) {
|
|
16
|
-
const serialized = buffer_1.Buffer.from(JSON.stringify(data));
|
|
17
|
-
const frameLengthBuffer = buffer_1.Buffer.alloc(4);
|
|
18
|
-
if (frameLengthBuffer.writeUint32LE != null) {
|
|
19
|
-
frameLengthBuffer.writeUint32LE(serialized.length);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
frameLengthBuffer.writeUInt32LE(serialized.length);
|
|
23
|
-
}
|
|
24
|
-
return this.writeFN(buffer_1.Buffer.concat([
|
|
25
|
-
frameLengthBuffer,
|
|
26
|
-
serialized
|
|
27
|
-
]));
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Cancels the underlying sink and encoder
|
|
31
|
-
*/
|
|
32
|
-
end() {
|
|
33
|
-
return this.endFN();
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
exports.ParamEncoder = ParamEncoder;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ParamEncoder = void 0;
|
|
4
|
+
const buffer_1 = require("buffer");
|
|
5
|
+
class ParamEncoder {
|
|
6
|
+
constructor(write, end) {
|
|
7
|
+
this.writeFN = write;
|
|
8
|
+
this.endFN = end;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Write a set of parameters to the underlying sink
|
|
12
|
+
*
|
|
13
|
+
* @param data
|
|
14
|
+
*/
|
|
15
|
+
writeParams(data) {
|
|
16
|
+
const serialized = buffer_1.Buffer.from(JSON.stringify(data));
|
|
17
|
+
const frameLengthBuffer = buffer_1.Buffer.alloc(4);
|
|
18
|
+
if (frameLengthBuffer.writeUint32LE != null) {
|
|
19
|
+
frameLengthBuffer.writeUint32LE(serialized.length);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
frameLengthBuffer.writeUInt32LE(serialized.length);
|
|
23
|
+
}
|
|
24
|
+
return this.writeFN(buffer_1.Buffer.concat([
|
|
25
|
+
frameLengthBuffer,
|
|
26
|
+
serialized
|
|
27
|
+
]));
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Cancels the underlying sink and encoder
|
|
31
|
+
*/
|
|
32
|
+
end() {
|
|
33
|
+
return this.endFN();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.ParamEncoder = ParamEncoder;
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
export declare function parseBigInt(str: string | number): bigint | null;
|
|
2
|
-
export declare enum FieldTypeEnum {
|
|
3
|
-
String = 0,
|
|
4
|
-
Boolean = 1,
|
|
5
|
-
Number = 2,
|
|
6
|
-
BigInt = 3,
|
|
7
|
-
Any = 4,
|
|
8
|
-
StringOptional = 100,
|
|
9
|
-
BooleanOptional = 101,
|
|
10
|
-
NumberOptional = 102,
|
|
11
|
-
BigIntOptional = 103,
|
|
12
|
-
AnyOptional = 104
|
|
13
|
-
}
|
|
14
|
-
export type FieldType<T extends FieldTypeEnum | RequestSchema | ((val: any) => (string | boolean | number | bigint | any))> = T extends FieldTypeEnum.String ? string : T extends FieldTypeEnum.Boolean ? boolean : T extends FieldTypeEnum.Number ? number : T extends FieldTypeEnum.BigInt ? bigint : T extends FieldTypeEnum.Any ? any : T extends FieldTypeEnum.StringOptional ? (string | null) : T extends FieldTypeEnum.BooleanOptional ? (boolean | null) : T extends FieldTypeEnum.NumberOptional ? (number | null) : T extends FieldTypeEnum.BigIntOptional ? (bigint | null) : T extends FieldTypeEnum.AnyOptional ? (any | null) : T extends RequestSchema ? RequestSchemaResult<T> : T extends ((val: any) => string) ? string : T extends ((val: any) => boolean) ? boolean : T extends ((val: any) => number) ? number : T extends ((val: any) => bigint) ? bigint : T extends ((val: any) => any) ? any : never;
|
|
15
|
-
export type RequestSchemaResult<T extends RequestSchema> = {
|
|
16
|
-
[key in keyof T]: FieldType<T[key]>;
|
|
17
|
-
};
|
|
18
|
-
export type RequestSchemaResultPromise<T extends RequestSchema> = {
|
|
19
|
-
[key in keyof T]: Promise<FieldType<T[key]>>;
|
|
20
|
-
};
|
|
21
|
-
export type RequestSchema = {
|
|
22
|
-
[fieldName: string]: FieldTypeEnum | RequestSchema | ((val: any) => any);
|
|
23
|
-
};
|
|
24
|
-
export declare function isOptionalField(type: FieldTypeEnum | RequestSchema | ((val: any) => (string | boolean | number | bigint | any))): boolean;
|
|
25
|
-
export declare function verifyField<T extends FieldTypeEnum | RequestSchema | ((val: any) => (string | boolean | number | bigint | any))>(fieldType: T, val: any): FieldType<T> | undefined;
|
|
26
|
-
export declare function verifySchema<T extends RequestSchema>(req: any, schema: T): RequestSchemaResult<T> | null;
|
|
1
|
+
export declare function parseBigInt(str: string | number): bigint | null;
|
|
2
|
+
export declare enum FieldTypeEnum {
|
|
3
|
+
String = 0,
|
|
4
|
+
Boolean = 1,
|
|
5
|
+
Number = 2,
|
|
6
|
+
BigInt = 3,
|
|
7
|
+
Any = 4,
|
|
8
|
+
StringOptional = 100,
|
|
9
|
+
BooleanOptional = 101,
|
|
10
|
+
NumberOptional = 102,
|
|
11
|
+
BigIntOptional = 103,
|
|
12
|
+
AnyOptional = 104
|
|
13
|
+
}
|
|
14
|
+
export type FieldType<T extends FieldTypeEnum | RequestSchema | ((val: any) => (string | boolean | number | bigint | any))> = T extends FieldTypeEnum.String ? string : T extends FieldTypeEnum.Boolean ? boolean : T extends FieldTypeEnum.Number ? number : T extends FieldTypeEnum.BigInt ? bigint : T extends FieldTypeEnum.Any ? any : T extends FieldTypeEnum.StringOptional ? (string | null) : T extends FieldTypeEnum.BooleanOptional ? (boolean | null) : T extends FieldTypeEnum.NumberOptional ? (number | null) : T extends FieldTypeEnum.BigIntOptional ? (bigint | null) : T extends FieldTypeEnum.AnyOptional ? (any | null) : T extends RequestSchema ? RequestSchemaResult<T> : T extends ((val: any) => string) ? string : T extends ((val: any) => boolean) ? boolean : T extends ((val: any) => number) ? number : T extends ((val: any) => bigint) ? bigint : T extends ((val: any) => any) ? any : never;
|
|
15
|
+
export type RequestSchemaResult<T extends RequestSchema> = {
|
|
16
|
+
[key in keyof T]: FieldType<T[key]>;
|
|
17
|
+
};
|
|
18
|
+
export type RequestSchemaResultPromise<T extends RequestSchema> = {
|
|
19
|
+
[key in keyof T]: Promise<FieldType<T[key]>>;
|
|
20
|
+
};
|
|
21
|
+
export type RequestSchema = {
|
|
22
|
+
[fieldName: string]: FieldTypeEnum | RequestSchema | ((val: any) => any);
|
|
23
|
+
};
|
|
24
|
+
export declare function isOptionalField(type: FieldTypeEnum | RequestSchema | ((val: any) => (string | boolean | number | bigint | any))): boolean;
|
|
25
|
+
export declare function verifyField<T extends FieldTypeEnum | RequestSchema | ((val: any) => (string | boolean | number | bigint | any))>(fieldType: T, val: any): FieldType<T> | undefined;
|
|
26
|
+
export declare function verifySchema<T extends RequestSchema>(req: any, schema: T): RequestSchemaResult<T> | null;
|