@aeternity/aepp-sdk 14.0.0 → 14.1.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/LICENSE +1 -1
- package/README.md +11 -19
- package/dist/aepp-sdk.browser-script.cjs +1 -1
- package/dist/aepp-sdk.browser-script.cjs.LICENSE.txt +2 -0
- package/dist/aepp-sdk.browser-script.cjs.map +1 -1
- package/dist/aepp-sdk.browser.cjs +1 -1
- package/dist/aepp-sdk.browser.cjs.map +1 -1
- package/dist/aepp-sdk.cjs +10846 -4277
- package/dist/aepp-sdk.cjs.map +1 -1
- package/es/AeSdkBase.d.ts +10 -1
- package/es/AeSdkBase.js +12 -2
- package/es/AeSdkBase.js.map +1 -1
- package/es/AeSdkMethods.d.ts +1 -1
- package/es/AeSdkMethods.js.map +1 -1
- package/es/AeSdkWallet.js +1 -1
- package/es/AeSdkWallet.js.map +1 -1
- package/es/Middleware.d.ts +5 -1
- package/es/Middleware.js +7 -2
- package/es/Middleware.js.map +1 -1
- package/es/MiddlewareSubscriber.d.ts +3 -0
- package/es/MiddlewareSubscriber.js +4 -0
- package/es/MiddlewareSubscriber.js.map +1 -1
- package/es/Node.d.ts +6 -1
- package/es/Node.js +28 -4
- package/es/Node.js.map +1 -1
- package/es/account/Base.d.ts +12 -0
- package/es/account/Base.js +1 -0
- package/es/account/Base.js.map +1 -1
- package/es/account/BaseFactory.d.ts +1 -0
- package/es/account/BaseFactory.js +1 -0
- package/es/account/BaseFactory.js.map +1 -1
- package/es/account/Generalized.d.ts +5 -0
- package/es/account/Generalized.js +9 -0
- package/es/account/Generalized.js.map +1 -1
- package/es/account/Ledger.d.ts +5 -0
- package/es/account/Ledger.js +9 -0
- package/es/account/Ledger.js.map +1 -1
- package/es/account/LedgerFactory.d.ts +2 -0
- package/es/account/LedgerFactory.js +10 -4
- package/es/account/LedgerFactory.js.map +1 -1
- package/es/account/Memory.d.ts +5 -0
- package/es/account/Memory.js +14 -5
- package/es/account/Memory.js.map +1 -1
- package/es/account/Metamask.d.ts +8 -0
- package/es/account/Metamask.js +13 -0
- package/es/account/Metamask.js.map +1 -1
- package/es/account/MetamaskFactory.d.ts +20 -2
- package/es/account/MetamaskFactory.js +93 -39
- package/es/account/MetamaskFactory.js.map +1 -1
- package/es/account/MnemonicFactory.d.ts +12 -2
- package/es/account/MnemonicFactory.js +48 -24
- package/es/account/MnemonicFactory.js.map +1 -1
- package/es/account/Rpc.d.ts +5 -0
- package/es/account/Rpc.js +8 -0
- package/es/account/Rpc.js.map +1 -1
- package/es/aens.d.ts +35 -7
- package/es/aens.js +62 -20
- package/es/aens.js.map +1 -1
- package/es/aepp-wallet-communication/connection/BrowserRuntime.d.ts +1 -1
- package/es/aepp-wallet-communication/connection/BrowserRuntime.js.map +1 -1
- package/es/apis/middleware/middleware.d.ts +99 -9
- package/es/apis/middleware/middleware.js +560 -91
- package/es/apis/middleware/middleware.js.map +1 -1
- package/es/apis/middleware/models/index.d.ts +1267 -1582
- package/es/apis/middleware/models/index.js +1 -1363
- package/es/apis/middleware/models/index.js.map +1 -1
- package/es/apis/middleware/models/mappers.d.ts +126 -56
- package/es/apis/middleware/models/mappers.js +6250 -2989
- package/es/apis/middleware/models/mappers.js.map +1 -1
- package/es/apis/middleware/models/parameters.d.ts +54 -33
- package/es/apis/middleware/models/parameters.js +389 -134
- package/es/apis/middleware/models/parameters.js.map +1 -1
- package/es/apis/node/models/index.d.ts +60 -15
- package/es/apis/node/models/index.js.map +1 -1
- package/es/apis/node/models/mappers.d.ts +3 -0
- package/es/apis/node/models/mappers.js +130 -2
- package/es/apis/node/models/mappers.js.map +1 -1
- package/es/apis/node/node.d.ts +13 -1
- package/es/apis/node/node.js +54 -0
- package/es/apis/node/node.js.map +1 -1
- package/es/chain.d.ts +19 -6
- package/es/chain.js +30 -24
- package/es/chain.js.map +1 -1
- package/es/channel/Contract.d.ts +6 -3
- package/es/channel/Contract.js +5 -2
- package/es/channel/Contract.js.map +1 -1
- package/es/channel/Spend.d.ts +1 -1
- package/es/channel/Spend.js.map +1 -1
- package/es/channel/handlers.js +1 -2
- package/es/channel/handlers.js.map +1 -1
- package/es/channel/internal.d.ts +1 -1
- package/es/channel/internal.js +2 -2
- package/es/channel/internal.js.map +1 -1
- package/es/contract/Contract.d.ts +13 -2
- package/es/contract/Contract.js +22 -12
- package/es/contract/Contract.js.map +1 -1
- package/es/contract/compiler/Base.d.ts +1 -0
- package/es/contract/compiler/Base.js +1 -0
- package/es/contract/compiler/Base.js.map +1 -1
- package/es/contract/compiler/Cli.d.ts +2 -1
- package/es/contract/compiler/Cli.js +17 -11
- package/es/contract/compiler/Cli.js.map +1 -1
- package/es/contract/compiler/Http.d.ts +2 -1
- package/es/contract/compiler/Http.js +3 -2
- package/es/contract/compiler/Http.js.map +1 -1
- package/es/contract/compiler/getFileSystem.d.ts +1 -0
- package/es/contract/compiler/getFileSystem.js +1 -0
- package/es/contract/compiler/getFileSystem.js.map +1 -1
- package/es/contract/ga.d.ts +3 -3
- package/es/contract/ga.js +3 -3
- package/es/contract/ga.js.map +1 -1
- package/es/index-browser.d.ts +32 -2
- package/es/index-browser.js +32 -2
- package/es/index-browser.js.map +1 -1
- package/es/oracle/Oracle.d.ts +10 -1
- package/es/oracle/Oracle.js +16 -6
- package/es/oracle/Oracle.js.map +1 -1
- package/es/oracle/OracleBase.d.ts +15 -2
- package/es/oracle/OracleBase.js +23 -1
- package/es/oracle/OracleBase.js.map +1 -1
- package/es/oracle/OracleClient.d.ts +3 -0
- package/es/oracle/OracleClient.js +6 -1
- package/es/oracle/OracleClient.js.map +1 -1
- package/es/spend.js +1 -1
- package/es/spend.js.map +1 -1
- package/es/tx/builder/common.js +6 -3
- package/es/tx/builder/common.js.map +1 -1
- package/es/tx/builder/constants.d.ts +53 -3
- package/es/tx/builder/constants.js +62 -12
- package/es/tx/builder/constants.js.map +1 -1
- package/es/tx/builder/delegation/schema.js +15 -0
- package/es/tx/builder/delegation/schema.js.map +1 -1
- package/es/tx/builder/entry/constants.d.ts +4 -1
- package/es/tx/builder/entry/constants.js +10 -1
- package/es/tx/builder/entry/constants.js.map +1 -1
- package/es/tx/builder/entry/index.js +1 -2
- package/es/tx/builder/entry/index.js.map +1 -1
- package/es/tx/builder/field-types/ct-version.js +1 -2
- package/es/tx/builder/field-types/ct-version.js.map +1 -1
- package/es/tx/builder/field-types/fee.d.ts +1 -1
- package/es/tx/builder/field-types/fee.js +4 -4
- package/es/tx/builder/field-types/fee.js.map +1 -1
- package/es/tx/builder/field-types/gas-price.d.ts +3 -0
- package/es/tx/builder/field-types/gas-price.js +1 -1
- package/es/tx/builder/field-types/gas-price.js.map +1 -1
- package/es/tx/builder/field-types/name-fee.js +1 -1
- package/es/tx/builder/field-types/name-fee.js.map +1 -1
- package/es/tx/builder/field-types/name-id.js +2 -2
- package/es/tx/builder/field-types/name-id.js.map +1 -1
- package/es/tx/builder/field-types/nonce.d.ts +1 -1
- package/es/tx/builder/field-types/nonce.js.map +1 -1
- package/es/tx/builder/field-types/pointers.js +3 -3
- package/es/tx/builder/field-types/pointers.js.map +1 -1
- package/es/tx/builder/field-types/ttl.d.ts +1 -2
- package/es/tx/builder/field-types/ttl.js +7 -5
- package/es/tx/builder/field-types/ttl.js.map +1 -1
- package/es/tx/builder/helpers.d.ts +18 -12
- package/es/tx/builder/helpers.js +25 -17
- package/es/tx/builder/helpers.js.map +1 -1
- package/es/tx/builder/schema.d.ts +50 -70
- package/es/tx/builder/schema.generated.d.ts +12 -12
- package/es/tx/builder/schema.generated.js.map +1 -1
- package/es/tx/builder/schema.js +5 -3
- package/es/tx/builder/schema.js.map +1 -1
- package/es/tx/execution-cost.d.ts +3 -0
- package/es/tx/execution-cost.js +7 -4
- package/es/tx/execution-cost.js.map +1 -1
- package/es/tx/transaction-signer.d.ts +1 -0
- package/es/tx/transaction-signer.js +1 -0
- package/es/tx/transaction-signer.js.map +1 -1
- package/es/tx/validator.js +4 -3
- package/es/tx/validator.js.map +1 -1
- package/es/utils/MiddlewarePage.d.ts +4 -3
- package/es/utils/MiddlewarePage.js.map +1 -1
- package/es/utils/amount-formatter.d.ts +15 -1
- package/es/utils/amount-formatter.js +17 -1
- package/es/utils/amount-formatter.js.map +1 -1
- package/es/utils/autorest.d.ts +1 -1
- package/es/utils/autorest.js +10 -4
- package/es/utils/autorest.js.map +1 -1
- package/es/utils/bignumber.d.ts +1 -1
- package/es/utils/bignumber.js +1 -1
- package/es/utils/bignumber.js.map +1 -1
- package/es/utils/bytes.d.ts +3 -1
- package/es/utils/bytes.js +3 -1
- package/es/utils/bytes.js.map +1 -1
- package/es/utils/crypto.d.ts +48 -15
- package/es/utils/crypto.js +80 -29
- package/es/utils/crypto.js.map +1 -1
- package/es/utils/encoder-types.d.ts +1 -1
- package/es/utils/encoder-types.js +1 -1
- package/es/utils/encoder-types.js.map +1 -1
- package/es/utils/encoder.d.ts +2 -0
- package/es/utils/encoder.js +2 -0
- package/es/utils/encoder.js.map +1 -1
- package/es/utils/errors.d.ts +2 -2
- package/es/utils/errors.js +2 -2
- package/es/utils/errors.js.map +1 -1
- package/es/utils/json-big.js +1 -1
- package/es/utils/json-big.js.map +1 -1
- package/es/utils/jwt.js +3 -3
- package/es/utils/jwt.js.map +1 -1
- package/es/utils/typed-data.d.ts +5 -0
- package/es/utils/typed-data.js +6 -0
- package/es/utils/typed-data.js.map +1 -1
- package/package.json +51 -52
package/es/tx/validator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","names":["RestError","hash","isAddressValid","verify","ProtocolToVmAbi","Tag","buildTx","unpackTx","concatBuffers","isAccountNotFoundError","Encoding","decode","Node","genAggressiveCacheGetResponsesPolicy","UnexpectedTsError","getTransactionSignerAddress","getExecutionCostUsingNode","validators","verifyTransactionInternal","tx","node","parentTxTypes","address","account","height","consensusProtocolVersion","nodeNetworkId","Promise","all","getAccountByPubkey","catch","error","id","balance","nonce","then","acc","getCurrentKeyBlockHeight","getNodeInfo","map","v","flat","verifyTransaction","transaction","nodeNotCached","pipeline","clone","removePolicy","name","$host","ignoreVersion","additionalPolicies","push","tag","SignedTx","encodedTx","signatures","length","prefix","_Buffer","from","includes","PayingForTx","join","txBinary","txWithNetworkId","txHashWithNetworkId","message","key","checkedKeys","nestedTx","ttl","cost","SpendTx","recipientId","Name","recipient","payable","kind","GaMetaTx","_ref","_ref2","oracleCall","OracleRegisterTx","contractCreate","ContractCreateTx","GaAttachTx","contractCall","ContractCallTx","type","protocol","ctVersion","abiVersion","vmVersion","JSON","stringify","contractId","startsWith","active","getContract","response","bodyAsText","parse","reason"],"sources":["../../src/tx/validator.ts"],"sourcesContent":["import { RestError } from '@azure/core-rest-pipeline';\nimport { hash, isAddressValid, verify } from '../utils/crypto.js';\nimport { TxUnpacked } from './builder/schema.generated.js';\nimport { CtVersion, ProtocolToVmAbi } from './builder/field-types/ct-version.js';\nimport { Tag, ConsensusProtocolVersion } from './builder/constants.js';\nimport { buildTx, unpackTx } from './builder/index.js';\nimport { concatBuffers, isAccountNotFoundError } from '../utils/other.js';\nimport { Encoded, Encoding, decode } from '../utils/encoder.js';\nimport Node from '../Node.js';\nimport { Account } from '../apis/node/index.js';\nimport { genAggressiveCacheGetResponsesPolicy } from '../utils/autorest.js';\nimport { UnexpectedTsError } from '../utils/errors.js';\nimport getTransactionSignerAddress from './transaction-signer.js';\nimport { getExecutionCostUsingNode } from './execution-cost.js';\n\nexport interface ValidatorResult {\n message: string;\n key: string;\n checkedKeys: string[];\n}\n\ntype Validator = (\n tx: TxUnpacked,\n options: {\n // TODO: remove after fixing node types\n account: Account & { id: Encoded.AccountAddress };\n nodeNetworkId: string;\n parentTxTypes: Tag[];\n node: Node;\n height: number;\n consensusProtocolVersion: ConsensusProtocolVersion;\n },\n) => ValidatorResult[] | Promise<ValidatorResult[]>;\n\nconst validators: Validator[] = [];\n\nasync function verifyTransactionInternal(\n tx: TxUnpacked,\n node: Node,\n parentTxTypes: Tag[],\n): Promise<ValidatorResult[]> {\n const address = getTransactionSignerAddress(buildTx(tx));\n const [account, { height }, { consensusProtocolVersion, nodeNetworkId }] = await Promise.all([\n node\n .getAccountByPubkey(address)\n .catch((error) => {\n if (!isAccountNotFoundError(error)) throw error;\n return { id: address, balance: 0n, nonce: 0 };\n })\n // TODO: remove after fixing https://github.com/aeternity/aepp-sdk-js/issues/1537\n .then((acc) => ({ ...acc, id: acc.id as Encoded.AccountAddress })),\n node.getCurrentKeyBlockHeight(), // TODO: don't request height on each validation, use caching\n node.getNodeInfo(),\n ]);\n\n return (\n await Promise.all(\n validators.map(async (v) =>\n v(tx, {\n node,\n account,\n height,\n consensusProtocolVersion,\n nodeNetworkId,\n parentTxTypes,\n }),\n ),\n )\n ).flat();\n}\n\n/**\n * Transaction Validator\n * This function validates some transaction properties,\n * to make sure it can be posted it to the chain\n * @category transaction builder\n * @param transaction - Base64Check-encoded transaction\n * @param nodeNotCached - Node to validate transaction against\n * @returns Array with verification errors\n * @example const errors = await verifyTransaction(transaction, node)\n */\nexport default async function verifyTransaction(\n transaction: Parameters<typeof unpackTx>[0],\n nodeNotCached: Node,\n): Promise<ValidatorResult[]> {\n const pipeline = nodeNotCached.pipeline.clone();\n pipeline.removePolicy({ name: 'parse-big-int' });\n const node = new Node(nodeNotCached.$host, {\n ignoreVersion: true,\n pipeline,\n additionalPolicies: [genAggressiveCacheGetResponsesPolicy()],\n });\n return verifyTransactionInternal(unpackTx(transaction), node, []);\n}\n\nvalidators.push(\n (tx, { account, nodeNetworkId, parentTxTypes }) => {\n if (tx.tag !== Tag.SignedTx) return [];\n const { encodedTx, signatures } = tx;\n if ((encodedTx ?? signatures) == null) return [];\n if (signatures.length !== 1) return []; // TODO: Support multisignature like in state channels\n const prefix = Buffer.from(\n [nodeNetworkId, ...(parentTxTypes.includes(Tag.PayingForTx) ? ['inner_tx'] : [])].join('-'),\n );\n const txBinary = decode(buildTx(encodedTx));\n const txWithNetworkId = concatBuffers([prefix, txBinary]);\n const txHashWithNetworkId = concatBuffers([prefix, hash(txBinary)]);\n if (\n verify(txWithNetworkId, signatures[0], account.id) ||\n verify(txHashWithNetworkId, signatures[0], account.id)\n )\n return [];\n return [\n {\n message:\n 'Signature cannot be verified, please ensure that you transaction have' +\n ' the correct prefix and the correct private key for the sender address',\n key: 'InvalidSignature',\n checkedKeys: ['encodedTx', 'signatures'],\n },\n ];\n },\n async (tx, { node, parentTxTypes }) => {\n let nestedTx;\n if ('encodedTx' in tx) nestedTx = tx.encodedTx;\n if ('tx' in tx) nestedTx = tx.tx;\n if (nestedTx == null) return [];\n return verifyTransactionInternal(nestedTx, node, [...parentTxTypes, tx.tag]);\n },\n (tx, { height }) => {\n if (!('ttl' in tx)) return [];\n if (tx.ttl === 0 || tx.ttl > height) return [];\n return [\n {\n message: `TTL ${tx.ttl} is already expired, current height is ${height}`,\n key: 'ExpiredTTL',\n checkedKeys: ['ttl'],\n },\n ];\n },\n async (tx, { account, parentTxTypes, node }) => {\n if (parentTxTypes.length !== 0) return [];\n const cost = await getExecutionCostUsingNode(buildTx(tx), node).catch(() => 0n);\n if (cost <= account.balance) return [];\n return [\n {\n message: `Account balance ${account.balance} is not enough to execute the transaction that costs ${cost}`,\n key: 'InsufficientBalance',\n checkedKeys: ['amount', 'fee', 'nameFee', 'gasLimit', 'gasPrice'],\n },\n ];\n },\n async (tx, { node }) => {\n if (tx.tag !== Tag.SpendTx || isAddressValid(tx.recipientId, Encoding.Name)) return [];\n const recipient = await node.getAccountByPubkey(tx.recipientId).catch((error) => {\n if (!isAccountNotFoundError(error)) throw error;\n return null;\n });\n if (recipient == null || recipient.payable === true) return [];\n return [\n {\n message: 'Recipient account is not payable',\n key: 'RecipientAccountNotPayable',\n checkedKeys: ['recipientId'],\n },\n ];\n },\n (tx, { account }) => {\n let message;\n if (tx.tag === Tag.SignedTx && account.kind === 'generalized' && tx.signatures.length !== 0) {\n message = \"Generalized account can't be used to generate SignedTx with signatures\";\n }\n if (tx.tag === Tag.GaMetaTx && account.kind === 'basic') {\n message = \"Basic account can't be used to generate GaMetaTx\";\n }\n if (message == null) return [];\n return [{ message, key: 'InvalidAccountType', checkedKeys: ['tag'] }];\n },\n // TODO: revert nonce check\n // TODO: ensure nonce valid when paying for own tx\n (tx, { consensusProtocolVersion }) => {\n const oracleCall = Tag.OracleRegisterTx === tx.tag;\n const contractCreate = Tag.ContractCreateTx === tx.tag || Tag.GaAttachTx === tx.tag;\n const contractCall = Tag.ContractCallTx === tx.tag || Tag.GaMetaTx === tx.tag;\n const type =\n (oracleCall ? 'oracle-call' : null) ??\n (contractCreate ? 'contract-create' : null) ??\n (contractCall ? 'contract-call' : null);\n if (type == null) return [];\n const protocol = ProtocolToVmAbi[consensusProtocolVersion][type] as {\n abiVersion: readonly any[];\n vmVersion: readonly any[];\n };\n\n let ctVersion: Partial<CtVersion> | undefined;\n if ('abiVersion' in tx) ctVersion = { abiVersion: tx.abiVersion };\n if ('ctVersion' in tx) ctVersion = tx.ctVersion;\n if (ctVersion == null) throw new UnexpectedTsError();\n if (\n !protocol.abiVersion.includes(ctVersion.abiVersion) ||\n (contractCreate && !protocol.vmVersion.includes(ctVersion.vmVersion))\n ) {\n return [\n {\n message: `ABI/VM version ${JSON.stringify(ctVersion)} is wrong, supported is: ${JSON.stringify(protocol)}`,\n key: 'VmAndAbiVersionMismatch',\n checkedKeys: ['ctVersion', 'abiVersion'],\n },\n ];\n }\n return [];\n },\n async (tx, { node }) => {\n if (Tag.ContractCallTx !== tx.tag) return [];\n // TODO: remove after solving https://github.com/aeternity/aeternity/issues/3669\n if (tx.contractId.startsWith('nm_')) return [];\n try {\n const { active } = await node.getContract(tx.contractId);\n if (active) return [];\n return [\n {\n message: `Contract ${tx.contractId} is not active`,\n key: 'ContractNotActive',\n checkedKeys: ['contractId'],\n },\n ];\n } catch (error) {\n if (!(error instanceof RestError) || error.response?.bodyAsText == null) throw error;\n return [\n {\n message: JSON.parse(error.response.bodyAsText).reason, // TODO: use parsedBody instead\n key: 'ContractNotFound',\n checkedKeys: ['contractId'],\n },\n ];\n }\n },\n);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"validator.js","names":["RestError","hash","isEncoded","verifySignature","ProtocolToVmAbi","Tag","buildTx","unpackTx","concatBuffers","isAccountNotFoundError","Encoding","decode","Node","genAggressiveCacheGetResponsesPolicy","UnexpectedTsError","getTransactionSignerAddress","getExecutionCostUsingNode","validators","verifyTransactionInternal","tx","node","parentTxTypes","address","account","height","consensusProtocolVersion","nodeNetworkId","Promise","all","getAccountByPubkey","catch","error","id","balance","nonce","then","acc","getCurrentKeyBlockHeight","getNodeInfo","map","v","flat","verifyTransaction","transaction","nodeNotCached","pipeline","clone","removePolicy","name","$host","ignoreVersion","additionalPolicies","_getCachedStatus","push","tag","SignedTx","encodedTx","signatures","length","prefix","_Buffer","from","includes","PayingForTx","join","txBinary","txWithNetworkId","txHashWithNetworkId","message","key","checkedKeys","nestedTx","ttl","cost","SpendTx","recipientId","Name","recipient","payable","kind","GaMetaTx","_ref","_ref2","oracleCall","OracleRegisterTx","contractCreate","ContractCreateTx","GaAttachTx","contractCall","ContractCallTx","type","protocol","ctVersion","abiVersion","vmVersion","JSON","stringify","contractId","startsWith","active","getContract","response","bodyAsText","parse","reason"],"sources":["../../src/tx/validator.ts"],"sourcesContent":["import { RestError } from '@azure/core-rest-pipeline';\nimport { hash, isEncoded, verifySignature } from '../utils/crypto.js';\nimport { TxUnpacked } from './builder/schema.generated.js';\nimport { CtVersion, ProtocolToVmAbi } from './builder/field-types/ct-version.js';\nimport { Tag, ConsensusProtocolVersion } from './builder/constants.js';\nimport { buildTx, unpackTx } from './builder/index.js';\nimport { concatBuffers, isAccountNotFoundError } from '../utils/other.js';\nimport { Encoded, Encoding, decode } from '../utils/encoder.js';\nimport Node from '../Node.js';\nimport { Account } from '../apis/node/index.js';\nimport { genAggressiveCacheGetResponsesPolicy } from '../utils/autorest.js';\nimport { UnexpectedTsError } from '../utils/errors.js';\nimport getTransactionSignerAddress from './transaction-signer.js';\nimport { getExecutionCostUsingNode } from './execution-cost.js';\n\nexport interface ValidatorResult {\n message: string;\n key: string;\n checkedKeys: string[];\n}\n\ntype Validator = (\n tx: TxUnpacked,\n options: {\n // TODO: remove after fixing node types\n account: Account & { id: Encoded.AccountAddress };\n nodeNetworkId: string;\n parentTxTypes: Tag[];\n node: Node;\n height: number;\n consensusProtocolVersion: ConsensusProtocolVersion;\n },\n) => ValidatorResult[] | Promise<ValidatorResult[]>;\n\nconst validators: Validator[] = [];\n\nasync function verifyTransactionInternal(\n tx: TxUnpacked,\n node: Node,\n parentTxTypes: Tag[],\n): Promise<ValidatorResult[]> {\n const address = getTransactionSignerAddress(buildTx(tx));\n const [account, { height }, { consensusProtocolVersion, nodeNetworkId }] = await Promise.all([\n node\n .getAccountByPubkey(address)\n .catch((error) => {\n if (!isAccountNotFoundError(error)) throw error;\n return { id: address, balance: 0n, nonce: 0 };\n })\n // TODO: remove after fixing https://github.com/aeternity/aepp-sdk-js/issues/1537\n .then((acc) => ({ ...acc, id: acc.id as Encoded.AccountAddress })),\n node.getCurrentKeyBlockHeight(), // TODO: don't request height on each validation, use caching\n node.getNodeInfo(),\n ]);\n\n return (\n await Promise.all(\n validators.map(async (v) =>\n v(tx, {\n node,\n account,\n height,\n consensusProtocolVersion,\n nodeNetworkId,\n parentTxTypes,\n }),\n ),\n )\n ).flat();\n}\n\n/**\n * Transaction Validator\n * This function validates some transaction properties,\n * to make sure it can be posted it to the chain\n * @category transaction builder\n * @param transaction - Base64Check-encoded transaction\n * @param nodeNotCached - Node to validate transaction against\n * @returns Array with verification errors\n * @example const errors = await verifyTransaction(transaction, node)\n */\nexport default async function verifyTransaction(\n transaction: Parameters<typeof unpackTx>[0],\n nodeNotCached: Node,\n): Promise<ValidatorResult[]> {\n const pipeline = nodeNotCached.pipeline.clone();\n pipeline.removePolicy({ name: 'parse-big-int' });\n const node = new Node(nodeNotCached.$host, {\n ignoreVersion: true,\n pipeline,\n additionalPolicies: [genAggressiveCacheGetResponsesPolicy()],\n });\n node._getCachedStatus = async () => nodeNotCached._getCachedStatus();\n return verifyTransactionInternal(unpackTx(transaction), node, []);\n}\n\nvalidators.push(\n (tx, { account, nodeNetworkId, parentTxTypes }) => {\n if (tx.tag !== Tag.SignedTx) return [];\n const { encodedTx, signatures } = tx;\n if ((encodedTx ?? signatures) == null) return [];\n if (signatures.length !== 1) return []; // TODO: Support multisignature like in state channels\n const prefix = Buffer.from(\n [nodeNetworkId, ...(parentTxTypes.includes(Tag.PayingForTx) ? ['inner_tx'] : [])].join('-'),\n );\n const txBinary = decode(buildTx(encodedTx));\n const txWithNetworkId = concatBuffers([prefix, txBinary]);\n const txHashWithNetworkId = concatBuffers([prefix, hash(txBinary)]);\n if (\n verifySignature(txWithNetworkId, signatures[0], account.id) ||\n verifySignature(txHashWithNetworkId, signatures[0], account.id)\n )\n return [];\n return [\n {\n message:\n 'Signature cannot be verified, please ensure that you transaction have' +\n ' the correct prefix and the correct private key for the sender address',\n key: 'InvalidSignature',\n checkedKeys: ['encodedTx', 'signatures'],\n },\n ];\n },\n async (tx, { node, parentTxTypes }) => {\n let nestedTx;\n if ('encodedTx' in tx) nestedTx = tx.encodedTx;\n if ('tx' in tx) nestedTx = tx.tx;\n if (nestedTx == null) return [];\n return verifyTransactionInternal(nestedTx, node, [...parentTxTypes, tx.tag]);\n },\n (tx, { height }) => {\n if (!('ttl' in tx)) return [];\n if (tx.ttl === 0 || tx.ttl > height) return [];\n return [\n {\n message: `TTL ${tx.ttl} is already expired, current height is ${height}`,\n key: 'ExpiredTTL',\n checkedKeys: ['ttl'],\n },\n ];\n },\n async (tx, { account, parentTxTypes, node }) => {\n if (parentTxTypes.length !== 0) return [];\n const cost = await getExecutionCostUsingNode(buildTx(tx), node).catch(() => 0n);\n if (cost <= account.balance) return [];\n return [\n {\n message: `Account balance ${account.balance} is not enough to execute the transaction that costs ${cost}`,\n key: 'InsufficientBalance',\n checkedKeys: ['amount', 'fee', 'nameFee', 'gasLimit', 'gasPrice'],\n },\n ];\n },\n async (tx, { node }) => {\n if (tx.tag !== Tag.SpendTx || isEncoded(tx.recipientId, Encoding.Name)) return [];\n const recipient = await node.getAccountByPubkey(tx.recipientId).catch((error) => {\n if (!isAccountNotFoundError(error)) throw error;\n return null;\n });\n if (recipient == null || recipient.payable === true) return [];\n return [\n {\n message: 'Recipient account is not payable',\n key: 'RecipientAccountNotPayable',\n checkedKeys: ['recipientId'],\n },\n ];\n },\n (tx, { account }) => {\n let message;\n if (tx.tag === Tag.SignedTx && account.kind === 'generalized' && tx.signatures.length !== 0) {\n message = \"Generalized account can't be used to generate SignedTx with signatures\";\n }\n if (tx.tag === Tag.GaMetaTx && account.kind === 'basic') {\n message = \"Basic account can't be used to generate GaMetaTx\";\n }\n if (message == null) return [];\n return [{ message, key: 'InvalidAccountType', checkedKeys: ['tag'] }];\n },\n // TODO: revert nonce check\n // TODO: ensure nonce valid when paying for own tx\n (tx, { consensusProtocolVersion }) => {\n const oracleCall = Tag.OracleRegisterTx === tx.tag;\n const contractCreate = Tag.ContractCreateTx === tx.tag || Tag.GaAttachTx === tx.tag;\n const contractCall = Tag.ContractCallTx === tx.tag || Tag.GaMetaTx === tx.tag;\n const type =\n (oracleCall ? 'oracle-call' : null) ??\n (contractCreate ? 'contract-create' : null) ??\n (contractCall ? 'contract-call' : null);\n if (type == null) return [];\n const protocol = ProtocolToVmAbi[consensusProtocolVersion][type] as {\n abiVersion: readonly any[];\n vmVersion: readonly any[];\n };\n\n let ctVersion: Partial<CtVersion> | undefined;\n if ('abiVersion' in tx) ctVersion = { abiVersion: tx.abiVersion };\n if ('ctVersion' in tx) ctVersion = tx.ctVersion;\n if (ctVersion == null) throw new UnexpectedTsError();\n if (\n !protocol.abiVersion.includes(ctVersion.abiVersion) ||\n (contractCreate && !protocol.vmVersion.includes(ctVersion.vmVersion))\n ) {\n return [\n {\n message: `ABI/VM version ${JSON.stringify(ctVersion)} is wrong, supported is: ${JSON.stringify(protocol)}`,\n key: 'VmAndAbiVersionMismatch',\n checkedKeys: ['ctVersion', 'abiVersion'],\n },\n ];\n }\n return [];\n },\n async (tx, { node }) => {\n if (Tag.ContractCallTx !== tx.tag) return [];\n // TODO: remove after solving https://github.com/aeternity/aeternity/issues/3669\n if (tx.contractId.startsWith('nm_')) return [];\n try {\n const { active } = await node.getContract(tx.contractId);\n if (active) return [];\n return [\n {\n message: `Contract ${tx.contractId} is not active`,\n key: 'ContractNotActive',\n checkedKeys: ['contractId'],\n },\n ];\n } catch (error) {\n if (!(error instanceof RestError) || error.response?.bodyAsText == null) throw error;\n return [\n {\n message: JSON.parse(error.response.bodyAsText).reason, // TODO: use parsedBody instead\n key: 'ContractNotFound',\n checkedKeys: ['contractId'],\n },\n ];\n }\n },\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type Middleware from '../Middleware.js';
|
|
2
2
|
import { BaseError } from './errors.js';
|
|
3
|
-
|
|
4
|
-
data:
|
|
3
|
+
interface MiddlewareRawPage<T = unknown> {
|
|
4
|
+
data: T[];
|
|
5
5
|
next: string | null;
|
|
6
6
|
prev: string | null;
|
|
7
7
|
}
|
|
@@ -20,7 +20,7 @@ export declare class MiddlewarePage<Item> {
|
|
|
20
20
|
readonly data: Item[];
|
|
21
21
|
readonly nextPath: null | string;
|
|
22
22
|
readonly prevPath: null | string;
|
|
23
|
-
constructor(rawPage: MiddlewareRawPage
|
|
23
|
+
constructor(rawPage: MiddlewareRawPage<Item>, middleware: Middleware);
|
|
24
24
|
/**
|
|
25
25
|
* Get the next page.
|
|
26
26
|
* Check the presence of `nextPath` to not fall outside existing pages.
|
|
@@ -34,3 +34,4 @@ export declare class MiddlewarePage<Item> {
|
|
|
34
34
|
*/
|
|
35
35
|
prev(): Promise<MiddlewarePage<Item>>;
|
|
36
36
|
}
|
|
37
|
+
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiddlewarePage.js","names":["BaseError","isMiddlewareRawPage","maybePage","testPage","data","Array","isArray","MiddlewarePageMissed","constructor","isNext","name","_middleware","WeakMap","MiddlewarePage","rawPage","middleware","_classPrivateFieldInitSpec","nextPath","next","prevPath","prev","_classPrivateFieldSet","_classPrivateFieldGet","requestByPath"],"sources":["../../src/utils/MiddlewarePage.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nimport type Middleware from '../Middleware.js';\nimport { BaseError } from './errors.js';\n\
|
|
1
|
+
{"version":3,"file":"MiddlewarePage.js","names":["BaseError","isMiddlewareRawPage","maybePage","testPage","data","Array","isArray","MiddlewarePageMissed","constructor","isNext","name","_middleware","WeakMap","MiddlewarePage","rawPage","middleware","_classPrivateFieldInitSpec","nextPath","next","prevPath","prev","_classPrivateFieldSet","_classPrivateFieldGet","requestByPath"],"sources":["../../src/utils/MiddlewarePage.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nimport type Middleware from '../Middleware.js';\nimport { BaseError } from './errors.js';\n\ninterface MiddlewareRawPage<T = unknown> {\n data: T[];\n next: string | null;\n prev: string | null;\n}\n\nexport function isMiddlewareRawPage(maybePage: unknown): maybePage is MiddlewareRawPage {\n const testPage = maybePage as MiddlewareRawPage;\n return (\n testPage?.data != null &&\n Array.isArray(testPage.data) &&\n 'next' in testPage &&\n 'prev' in testPage\n );\n}\n\n/**\n * @category exception\n */\nexport class MiddlewarePageMissed extends BaseError {\n constructor(isNext: boolean) {\n super(`There is no ${isNext ? 'next' : 'previous'} page`);\n this.name = 'MiddlewarePageMissed';\n }\n}\n\n/**\n * A wrapper around the middleware's page allowing to get the next/previous pages.\n */\nexport class MiddlewarePage<Item> {\n readonly data: Item[];\n\n readonly nextPath: null | string;\n\n readonly prevPath: null | string;\n\n readonly #middleware: Middleware;\n\n constructor(rawPage: MiddlewareRawPage<Item>, middleware: Middleware) {\n this.data = rawPage.data;\n this.nextPath = rawPage.next;\n this.prevPath = rawPage.prev;\n this.#middleware = middleware;\n }\n\n /**\n * Get the next page.\n * Check the presence of `nextPath` to not fall outside existing pages.\n * @throws MiddlewarePageMissed\n */\n async next(): Promise<MiddlewarePage<Item>> {\n if (this.nextPath == null) throw new MiddlewarePageMissed(true);\n return this.#middleware.requestByPath(this.nextPath);\n }\n\n /**\n * Get the previous page.\n * Check the presence of `prevPath` to not fall outside existing pages.\n * @throws MiddlewarePageMissed\n */\n async prev(): Promise<MiddlewarePage<Item>> {\n if (this.prevPath == null) throw new MiddlewarePageMissed(false);\n return this.#middleware.requestByPath(this.prevPath);\n }\n}\n"],"mappings":";;;;;AAAA;;AAEA,SAASA,SAAS,QAAQ,aAAa;AAQvC,OAAO,SAASC,mBAAmBA,CAACC,SAAkB,EAAkC;EACtF,MAAMC,QAAQ,GAAGD,SAA8B;EAC/C,OACEC,QAAQ,EAAEC,IAAI,IAAI,IAAI,IACtBC,KAAK,CAACC,OAAO,CAACH,QAAQ,CAACC,IAAI,CAAC,IAC5B,MAAM,IAAID,QAAQ,IAClB,MAAM,IAAIA,QAAQ;AAEtB;;AAEA;AACA;AACA;AACA,OAAO,MAAMI,oBAAoB,SAASP,SAAS,CAAC;EAClDQ,WAAWA,CAACC,MAAe,EAAE;IAC3B,KAAK,CAAC,eAAeA,MAAM,GAAG,MAAM,GAAG,UAAU,OAAO,CAAC;IACzD,IAAI,CAACC,IAAI,GAAG,sBAAsB;EACpC;AACF;;AAEA;AACA;AACA;AAFA,IAAAC,WAAA,oBAAAC,OAAA;AAGA,OAAO,MAAMC,cAAc,CAAO;EAShCL,WAAWA,CAACM,OAAgC,EAAEC,UAAsB,EAAE;IAFtEC,0BAAA,OAASL,WAAW;IAGlB,IAAI,CAACP,IAAI,GAAGU,OAAO,CAACV,IAAI;IACxB,IAAI,CAACa,QAAQ,GAAGH,OAAO,CAACI,IAAI;IAC5B,IAAI,CAACC,QAAQ,GAAGL,OAAO,CAACM,IAAI;IAC5BC,qBAAA,CAAKV,WAAW,EAAhB,IAAI,EAAeI,UAAJ,CAAC;EAClB;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMG,IAAIA,CAAA,EAAkC;IAC1C,IAAI,IAAI,CAACD,QAAQ,IAAI,IAAI,EAAE,MAAM,IAAIV,oBAAoB,CAAC,IAAI,CAAC;IAC/D,OAAOe,qBAAA,CAAKX,WAAW,EAAhB,IAAe,CAAC,CAACY,aAAa,CAAC,IAAI,CAACN,QAAQ,CAAC;EACtD;;EAEA;AACF;AACA;AACA;AACA;EACE,MAAMG,IAAIA,CAAA,EAAkC;IAC1C,IAAI,IAAI,CAACD,QAAQ,IAAI,IAAI,EAAE,MAAM,IAAIZ,oBAAoB,CAAC,KAAK,CAAC;IAChE,OAAOe,qBAAA,CAAKX,WAAW,EAAhB,IAAe,CAAC,CAACY,aAAa,CAAC,IAAI,CAACJ,QAAQ,CAAC;EACtD;AACF","ignoreList":[]}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BigNumber from 'bignumber.js';
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated no replacement implemented yet
|
|
4
|
+
* @category utils
|
|
5
|
+
*/
|
|
2
6
|
export declare enum AE_AMOUNT_FORMATS {
|
|
3
7
|
AE = "ae",
|
|
4
8
|
MILI_AE = "miliAE",
|
|
@@ -10,6 +14,8 @@ export declare enum AE_AMOUNT_FORMATS {
|
|
|
10
14
|
}
|
|
11
15
|
/**
|
|
12
16
|
* Convert amount from one to other denomination
|
|
17
|
+
* @deprecated no replacement implemented yet
|
|
18
|
+
* @category utils
|
|
13
19
|
* @param value - amount to convert
|
|
14
20
|
* @param options - options
|
|
15
21
|
* @param options.denomination - denomination of amount, can be ['ae', 'aettos']
|
|
@@ -22,6 +28,8 @@ export declare const formatAmount: (value: string | number | bigint | BigNumber,
|
|
|
22
28
|
}) => string;
|
|
23
29
|
/**
|
|
24
30
|
* Convert amount to AE
|
|
31
|
+
* @deprecated no replacement implemented yet
|
|
32
|
+
* @category utils
|
|
25
33
|
* @param value - amount to convert
|
|
26
34
|
* @param options - options
|
|
27
35
|
* @param options.denomination - denomination of amount, can be ['ae', 'aettos']
|
|
@@ -31,6 +39,8 @@ export declare const toAe: (value: string | number | BigNumber, { denomination }
|
|
|
31
39
|
}) => string;
|
|
32
40
|
/**
|
|
33
41
|
* Convert amount to aettos
|
|
42
|
+
* @deprecated no replacement implemented yet
|
|
43
|
+
* @category utils
|
|
34
44
|
* @param value - amount to convert
|
|
35
45
|
* @param options - options
|
|
36
46
|
* @param options.denomination - denomination of amount, can be ['ae', 'aettos']
|
|
@@ -38,4 +48,8 @@ export declare const toAe: (value: string | number | BigNumber, { denomination }
|
|
|
38
48
|
export declare const toAettos: (value: string | number | BigNumber, { denomination }?: {
|
|
39
49
|
denomination?: AE_AMOUNT_FORMATS;
|
|
40
50
|
}) => string;
|
|
51
|
+
/**
|
|
52
|
+
* @deprecated no replacement implemented yet
|
|
53
|
+
* @category utils
|
|
54
|
+
*/
|
|
41
55
|
export declare const prefixedAmount: (rawValue: string | number | BigNumber) => string;
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BigNumber from 'bignumber.js';
|
|
2
2
|
import { isBigNumber } from './bignumber.js';
|
|
3
3
|
import { ArgumentError } from './errors.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated no replacement implemented yet
|
|
7
|
+
* @category utils
|
|
8
|
+
*/
|
|
4
9
|
export let AE_AMOUNT_FORMATS = /*#__PURE__*/function (AE_AMOUNT_FORMATS) {
|
|
5
10
|
AE_AMOUNT_FORMATS["AE"] = "ae";
|
|
6
11
|
AE_AMOUNT_FORMATS["MILI_AE"] = "miliAE";
|
|
@@ -27,6 +32,8 @@ const DENOMINATION_MAGNITUDE = {
|
|
|
27
32
|
|
|
28
33
|
/**
|
|
29
34
|
* Convert amount from one to other denomination
|
|
35
|
+
* @deprecated no replacement implemented yet
|
|
36
|
+
* @category utils
|
|
30
37
|
* @param value - amount to convert
|
|
31
38
|
* @param options - options
|
|
32
39
|
* @param options.denomination - denomination of amount, can be ['ae', 'aettos']
|
|
@@ -43,6 +50,8 @@ export const formatAmount = (value, {
|
|
|
43
50
|
|
|
44
51
|
/**
|
|
45
52
|
* Convert amount to AE
|
|
53
|
+
* @deprecated no replacement implemented yet
|
|
54
|
+
* @category utils
|
|
46
55
|
* @param value - amount to convert
|
|
47
56
|
* @param options - options
|
|
48
57
|
* @param options.denomination - denomination of amount, can be ['ae', 'aettos']
|
|
@@ -56,6 +65,8 @@ export const toAe = (value, {
|
|
|
56
65
|
|
|
57
66
|
/**
|
|
58
67
|
* Convert amount to aettos
|
|
68
|
+
* @deprecated no replacement implemented yet
|
|
69
|
+
* @category utils
|
|
59
70
|
* @param value - amount to convert
|
|
60
71
|
* @param options - options
|
|
61
72
|
* @param options.denomination - denomination of amount, can be ['ae', 'aettos']
|
|
@@ -83,6 +94,11 @@ const getLowerBoundPrefix = exponent => {
|
|
|
83
94
|
var _prefixes$find;
|
|
84
95
|
return (_prefixes$find = prefixes.find(p => p.magnitude <= exponent)) !== null && _prefixes$find !== void 0 ? _prefixes$find : prefixes[prefixes.length - 1];
|
|
85
96
|
};
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* @deprecated no replacement implemented yet
|
|
100
|
+
* @category utils
|
|
101
|
+
*/
|
|
86
102
|
export const prefixedAmount = rawValue => {
|
|
87
103
|
var _value$e;
|
|
88
104
|
const value = new BigNumber(rawValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amount-formatter.js","names":["BigNumber","isBigNumber","ArgumentError","AE_AMOUNT_FORMATS","DENOMINATION_MAGNITUDE","AE","MILI_AE","MICRO_AE","NANO_AE","PICO_AE","FEMTO_AE","AETTOS","formatAmount","value","denomination","targetDenomination","toString","shiftedBy","toFixed","toAe","toAettos","prefixes","name","magnitude","getNearestPrefix","exponent","reduce","p","n","Math","abs","getLowerBoundPrefix","_prefixes$find","find","length","prefixedAmount","rawValue","_value$e","exp","e","v","precision","min"],"sources":["../../src/utils/amount-formatter.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"amount-formatter.js","names":["BigNumber","isBigNumber","ArgumentError","AE_AMOUNT_FORMATS","DENOMINATION_MAGNITUDE","AE","MILI_AE","MICRO_AE","NANO_AE","PICO_AE","FEMTO_AE","AETTOS","formatAmount","value","denomination","targetDenomination","toString","shiftedBy","toFixed","toAe","toAettos","prefixes","name","magnitude","getNearestPrefix","exponent","reduce","p","n","Math","abs","getLowerBoundPrefix","_prefixes$find","find","length","prefixedAmount","rawValue","_value$e","exp","e","v","precision","min"],"sources":["../../src/utils/amount-formatter.ts"],"sourcesContent":["import BigNumber from 'bignumber.js';\nimport { isBigNumber } from './bignumber.js';\nimport { ArgumentError } from './errors.js';\n\n/**\n * @deprecated no replacement implemented yet\n * @category utils\n */\nexport enum AE_AMOUNT_FORMATS {\n AE = 'ae',\n MILI_AE = 'miliAE',\n MICRO_AE = 'microAE',\n NANO_AE = 'nanoAE',\n PICO_AE = 'picoAE',\n FEMTO_AE = 'femtoAE',\n AETTOS = 'aettos',\n}\n\n/**\n * DENOMINATION_MAGNITUDE\n */\nconst DENOMINATION_MAGNITUDE = {\n [AE_AMOUNT_FORMATS.AE]: 0,\n [AE_AMOUNT_FORMATS.MILI_AE]: -3,\n [AE_AMOUNT_FORMATS.MICRO_AE]: -6,\n [AE_AMOUNT_FORMATS.NANO_AE]: -9,\n [AE_AMOUNT_FORMATS.PICO_AE]: -12,\n [AE_AMOUNT_FORMATS.FEMTO_AE]: -15,\n [AE_AMOUNT_FORMATS.AETTOS]: -18,\n} as const;\n\n/**\n * Convert amount from one to other denomination\n * @deprecated no replacement implemented yet\n * @category utils\n * @param value - amount to convert\n * @param options - options\n * @param options.denomination - denomination of amount, can be ['ae', 'aettos']\n * @param options.targetDenomination - target denomination,\n * can be ['ae', 'aettos']\n */\nexport const formatAmount = (\n value: string | number | bigint | BigNumber,\n {\n denomination = AE_AMOUNT_FORMATS.AETTOS,\n targetDenomination = AE_AMOUNT_FORMATS.AETTOS,\n }: { denomination?: AE_AMOUNT_FORMATS; targetDenomination?: AE_AMOUNT_FORMATS },\n): string => {\n if (!isBigNumber(value)) throw new ArgumentError('value', 'a number', value);\n\n return new BigNumber(typeof value === 'bigint' ? value.toString() : value)\n .shiftedBy(DENOMINATION_MAGNITUDE[denomination] - DENOMINATION_MAGNITUDE[targetDenomination])\n .toFixed();\n};\n\n/**\n * Convert amount to AE\n * @deprecated no replacement implemented yet\n * @category utils\n * @param value - amount to convert\n * @param options - options\n * @param options.denomination - denomination of amount, can be ['ae', 'aettos']\n */\nexport const toAe = (\n value: string | number | BigNumber,\n { denomination = AE_AMOUNT_FORMATS.AETTOS }: { denomination?: AE_AMOUNT_FORMATS } = {},\n): string => formatAmount(value, { denomination, targetDenomination: AE_AMOUNT_FORMATS.AE });\n\n/**\n * Convert amount to aettos\n * @deprecated no replacement implemented yet\n * @category utils\n * @param value - amount to convert\n * @param options - options\n * @param options.denomination - denomination of amount, can be ['ae', 'aettos']\n */\nexport const toAettos = (\n value: string | number | BigNumber,\n { denomination = AE_AMOUNT_FORMATS.AE }: { denomination?: AE_AMOUNT_FORMATS } = {},\n): string => formatAmount(value, { denomination });\n\ninterface Prefix {\n name: string;\n magnitude: number;\n}\n\nconst prefixes: Prefix[] = [\n { name: 'exa', magnitude: 18 },\n { name: 'giga', magnitude: 9 },\n { name: '', magnitude: 0 },\n { name: 'pico', magnitude: -12 },\n];\n\nconst getNearestPrefix = (exponent: number): Prefix =>\n prefixes.reduce((p, n) =>\n Math.abs(n.magnitude - exponent) < Math.abs(p.magnitude - exponent) ? n : p,\n );\n\nconst getLowerBoundPrefix = (exponent: number): Prefix =>\n prefixes.find((p) => p.magnitude <= exponent) ?? prefixes[prefixes.length - 1];\n\n/**\n * @deprecated no replacement implemented yet\n * @category utils\n */\nexport const prefixedAmount = (rawValue: string | number | BigNumber): string => {\n const value: BigNumber = new BigNumber(rawValue);\n\n const exp = value.e ?? 0;\n const { name, magnitude } = (exp < 0 ? getNearestPrefix : getLowerBoundPrefix)(exp);\n const v = value\n .shiftedBy(-magnitude)\n .precision(9 + Math.min(exp - magnitude, 0))\n .toFixed();\n return `${v}${name !== '' ? ' ' : ''}${name}`;\n};\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,cAAc;AACpC,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,aAAa,QAAQ,aAAa;;AAE3C;AACA;AACA;AACA;AACA,WAAYC,iBAAiB,0BAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAjBA,iBAAiB;EAAA,OAAjBA,iBAAiB;AAAA;;AAU7B;AACA;AACA;AACA,MAAMC,sBAAsB,GAAG;EAC7B,CAACD,iBAAiB,CAACE,EAAE,GAAG,CAAC;EACzB,CAACF,iBAAiB,CAACG,OAAO,GAAG,CAAC,CAAC;EAC/B,CAACH,iBAAiB,CAACI,QAAQ,GAAG,CAAC,CAAC;EAChC,CAACJ,iBAAiB,CAACK,OAAO,GAAG,CAAC,CAAC;EAC/B,CAACL,iBAAiB,CAACM,OAAO,GAAG,CAAC,EAAE;EAChC,CAACN,iBAAiB,CAACO,QAAQ,GAAG,CAAC,EAAE;EACjC,CAACP,iBAAiB,CAACQ,MAAM,GAAG,CAAC;AAC/B,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,GAAGA,CAC1BC,KAA2C,EAC3C;EACEC,YAAY,GAAGX,iBAAiB,CAACQ,MAAM;EACvCI,kBAAkB,GAAGZ,iBAAiB,CAACQ;AACqC,CAAC,KACpE;EACX,IAAI,CAACV,WAAW,CAACY,KAAK,CAAC,EAAE,MAAM,IAAIX,aAAa,CAAC,OAAO,EAAE,UAAU,EAAEW,KAAK,CAAC;EAE5E,OAAO,IAAIb,SAAS,CAAC,OAAOa,KAAK,KAAK,QAAQ,GAAGA,KAAK,CAACG,QAAQ,CAAC,CAAC,GAAGH,KAAK,CAAC,CACvEI,SAAS,CAACb,sBAAsB,CAACU,YAAY,CAAC,GAAGV,sBAAsB,CAACW,kBAAkB,CAAC,CAAC,CAC5FG,OAAO,CAAC,CAAC;AACd,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,IAAI,GAAGA,CAClBN,KAAkC,EAClC;EAAEC,YAAY,GAAGX,iBAAiB,CAACQ;AAA6C,CAAC,GAAG,CAAC,CAAC,KAC3EC,YAAY,CAACC,KAAK,EAAE;EAAEC,YAAY;EAAEC,kBAAkB,EAAEZ,iBAAiB,CAACE;AAAG,CAAC,CAAC;;AAE5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMe,QAAQ,GAAGA,CACtBP,KAAkC,EAClC;EAAEC,YAAY,GAAGX,iBAAiB,CAACE;AAAyC,CAAC,GAAG,CAAC,CAAC,KACvEO,YAAY,CAACC,KAAK,EAAE;EAAEC;AAAa,CAAC,CAAC;AAOlD,MAAMO,QAAkB,GAAG,CACzB;EAAEC,IAAI,EAAE,KAAK;EAAEC,SAAS,EAAE;AAAG,CAAC,EAC9B;EAAED,IAAI,EAAE,MAAM;EAAEC,SAAS,EAAE;AAAE,CAAC,EAC9B;EAAED,IAAI,EAAE,EAAE;EAAEC,SAAS,EAAE;AAAE,CAAC,EAC1B;EAAED,IAAI,EAAE,MAAM;EAAEC,SAAS,EAAE,CAAC;AAAG,CAAC,CACjC;AAED,MAAMC,gBAAgB,GAAIC,QAAgB,IACxCJ,QAAQ,CAACK,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KACnBC,IAAI,CAACC,GAAG,CAACF,CAAC,CAACL,SAAS,GAAGE,QAAQ,CAAC,GAAGI,IAAI,CAACC,GAAG,CAACH,CAAC,CAACJ,SAAS,GAAGE,QAAQ,CAAC,GAAGG,CAAC,GAAGD,CAC5E,CAAC;AAEH,MAAMI,mBAAmB,GAAIN,QAAgB;EAAA,IAAAO,cAAA;EAAA,QAAAA,cAAA,GAC3CX,QAAQ,CAACY,IAAI,CAAEN,CAAC,IAAKA,CAAC,CAACJ,SAAS,IAAIE,QAAQ,CAAC,cAAAO,cAAA,cAAAA,cAAA,GAAIX,QAAQ,CAACA,QAAQ,CAACa,MAAM,GAAG,CAAC,CAAC;AAAA;;AAEhF;AACA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GAAIC,QAAqC,IAAa;EAAA,IAAAC,QAAA;EAC/E,MAAMxB,KAAgB,GAAG,IAAIb,SAAS,CAACoC,QAAQ,CAAC;EAEhD,MAAME,GAAG,IAAAD,QAAA,GAAGxB,KAAK,CAAC0B,CAAC,cAAAF,QAAA,cAAAA,QAAA,GAAI,CAAC;EACxB,MAAM;IAAEf,IAAI;IAAEC;EAAU,CAAC,GAAG,CAACe,GAAG,GAAG,CAAC,GAAGd,gBAAgB,GAAGO,mBAAmB,EAAEO,GAAG,CAAC;EACnF,MAAME,CAAC,GAAG3B,KAAK,CACZI,SAAS,CAAC,CAACM,SAAS,CAAC,CACrBkB,SAAS,CAAC,CAAC,GAAGZ,IAAI,CAACa,GAAG,CAACJ,GAAG,GAAGf,SAAS,EAAE,CAAC,CAAC,CAAC,CAC3CL,OAAO,CAAC,CAAC;EACZ,OAAO,GAAGsB,CAAC,GAAGlB,IAAI,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,GAAGA,IAAI,EAAE;AAC/C,CAAC","ignoreList":[]}
|
package/es/utils/autorest.d.ts
CHANGED
|
@@ -8,5 +8,5 @@ export declare const genRequestQueuesPolicy: () => AdditionalPolicyConfig;
|
|
|
8
8
|
export declare const genCombineGetRequestsPolicy: () => AdditionalPolicyConfig;
|
|
9
9
|
export declare const genAggressiveCacheGetResponsesPolicy: () => AdditionalPolicyConfig;
|
|
10
10
|
export declare const genErrorFormatterPolicy: (getMessage: (b: any) => string) => AdditionalPolicyConfig;
|
|
11
|
-
export declare const genVersionCheckPolicy: (name: string, versionCb: (options: OperationOptions) => Promise<string>, geVersion: string, ltVersion: string) => AdditionalPolicyConfig;
|
|
11
|
+
export declare const genVersionCheckPolicy: (name: string, versionCb: (options: OperationOptions) => Promise<string>, geVersion: string, ltVersion: string, ignoreVersion: boolean) => AdditionalPolicyConfig;
|
|
12
12
|
export declare const genRetryOnFailurePolicy: (retryCount: number, retryOverallDelay: number) => AdditionalPolicyConfig;
|
package/es/utils/autorest.js
CHANGED
|
@@ -17,8 +17,7 @@ export const createSerializer = (...args) => {
|
|
|
17
17
|
return serialize.call(this, mapper, object, objectName, options);
|
|
18
18
|
}
|
|
19
19
|
if (typeof object !== 'bigint') {
|
|
20
|
-
|
|
21
|
-
(_objectName = objectName) !== null && _objectName !== void 0 ? _objectName : objectName = mapper.serializedName;
|
|
20
|
+
objectName !== null && objectName !== void 0 ? objectName : objectName = mapper.serializedName;
|
|
22
21
|
throw new Error(`${objectName} with value ${object} must be of type bigint.`);
|
|
23
22
|
}
|
|
24
23
|
return object.toString();
|
|
@@ -148,7 +147,7 @@ export const genErrorFormatterPolicy = getMessage => ({
|
|
|
148
147
|
},
|
|
149
148
|
position: 'perCall'
|
|
150
149
|
});
|
|
151
|
-
export const genVersionCheckPolicy = (name, versionCb, geVersion, ltVersion) => ({
|
|
150
|
+
export const genVersionCheckPolicy = (name, versionCb, geVersion, ltVersion, ignoreVersion) => ({
|
|
152
151
|
policy: {
|
|
153
152
|
name: 'version-check',
|
|
154
153
|
async sendRequest(request, next) {
|
|
@@ -164,7 +163,10 @@ export const genVersionCheckPolicy = (name, versionCb, geVersion, ltVersion) =>
|
|
|
164
163
|
}
|
|
165
164
|
};
|
|
166
165
|
const args = [await versionCb(options), geVersion, ltVersion];
|
|
167
|
-
if (!semverSatisfies(...args))
|
|
166
|
+
if (!semverSatisfies(...args)) {
|
|
167
|
+
const error = new UnsupportedVersionError(name, ...args);
|
|
168
|
+
if (ignoreVersion) console.warn(error.message);else throw error;
|
|
169
|
+
}
|
|
168
170
|
return next(request);
|
|
169
171
|
}
|
|
170
172
|
},
|
|
@@ -175,6 +177,10 @@ export const genRetryOnFailurePolicy = (retryCount, retryOverallDelay) => ({
|
|
|
175
177
|
name: 'retry-on-failure',
|
|
176
178
|
async sendRequest(request, next) {
|
|
177
179
|
var _request$headers$get;
|
|
180
|
+
if (request.headers.get('__no-retry') != null) {
|
|
181
|
+
request.headers.delete('__no-retry');
|
|
182
|
+
return next(request);
|
|
183
|
+
}
|
|
178
184
|
const retryCode = (_request$headers$get = request.headers.get('__retry-code')) !== null && _request$headers$get !== void 0 ? _request$headers$get : NaN;
|
|
179
185
|
request.headers.delete('__retry-code');
|
|
180
186
|
const statusesToNotRetry = [200, 400, 403, 410, 500].filter(c => c !== +retryCode);
|
package/es/utils/autorest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autorest.js","names":["RestError","createSerializer","createSerializerOrig","pause","semverSatisfies","InternalError","UnexpectedTsError","UnsupportedVersionError","bigIntPrefix","args","serializer","serialize","deserialize","Object","assign","mapper","object","objectName","options","type","name","call","_objectName","serializedName","Error","toString","responseBody","startsWith","console","warn","replace","result","Date","Number","MAX_SAFE_INTEGER","BigInt","safeLength","length","bigIntPropertyRe","RegExp","String","raw","bigIntArrayItemRe","parseBigIntPolicy","sendRequest","request","next","response","bodyAsText","replaceAll","matched","match","value","end","join","prefix","genRequestQueuesPolicy","requestQueues","Map","policy","_requestQueues$get","key","headers","get","delete","getResponse","req","Promise","resolve","then","set","catch","position","genCombineGetRequestsPolicy","pendingGetRequests","_pendingGetRequests$g","method","JSON","stringify","url","body","genAggressiveCacheGetResponsesPolicy","getRequests","_getRequests$get","genErrorFormatterPolicy","getMessage","error","message","URL","pathname","slice","code","parsedBody","status","genVersionCheckPolicy","versionCb","geVersion","ltVersion","has","requestOptions","customHeaders","genRetryOnFailurePolicy","retryCount","retryOverallDelay","_request$headers$get","retryCode","NaN","statusesToNotRetry","filter","c","intervals","Array","fill","map","_","idx","intervalSum","reduce","a","b","intervalsInMs","e","Math","floor","attempt","urlParsed","searchParams","_e$response$status","includes"],"sources":["../../src/utils/autorest.ts"],"sourcesContent":["import { RestError, PipelineResponse, PipelinePolicy } from '@azure/core-rest-pipeline';\nimport {\n AdditionalPolicyConfig,\n FullOperationResponse,\n OperationOptions,\n createSerializer as createSerializerOrig,\n} from '@azure/core-client';\nimport { pause } from './other.js';\nimport semverSatisfies from './semver-satisfies.js';\nimport { InternalError, UnexpectedTsError, UnsupportedVersionError } from './errors.js';\n\nconst bigIntPrefix = '_sdk-big-int-';\n\nexport const createSerializer = (\n ...args: Parameters<typeof createSerializerOrig>\n): ReturnType<typeof createSerializerOrig> => {\n const serializer = createSerializerOrig(...args);\n const { serialize, deserialize } = serializer;\n return Object.assign(serializer, {\n serialize(\n ...[mapper, object, objectName, options]: Parameters<typeof serialize>\n ): ReturnType<typeof serialize> {\n // @ts-expect-error we are extending autorest with BigInt support\n if (mapper.type.name !== 'BigInt' || object == null) {\n return serialize.call(this, mapper, object, objectName, options);\n }\n if (typeof object !== 'bigint') {\n objectName ??= mapper.serializedName;\n throw new Error(`${objectName} with value ${object} must be of type bigint.`);\n }\n return object.toString();\n },\n\n deserialize(\n ...[mapper, responseBody, objectName, options]: Parameters<typeof deserialize>\n ): ReturnType<typeof deserialize> {\n // @ts-expect-error we are extending autorest with BigInt support\n if (mapper.type.name !== 'BigInt' || responseBody == null) {\n if (typeof responseBody === 'string' && responseBody.startsWith(bigIntPrefix)) {\n console.warn(`AeSdk internal error: BigInt value ${responseBody} handled incorrectly`);\n responseBody = +responseBody.replace(bigIntPrefix, '');\n }\n const result = deserialize.call(this, mapper, responseBody, objectName, options);\n // TODO: remove after fixing https://github.com/aeternity/ae_mdw/issues/1891\n // and https://github.com/aeternity/aeternity/issues/4386\n if (result instanceof Date) return new Date(+result / 1000);\n return result;\n }\n if (typeof responseBody === 'number' && responseBody > Number.MAX_SAFE_INTEGER) {\n throw new InternalError(`Number ${responseBody} is not accurate to be converted to BigInt`);\n }\n return BigInt(responseBody.toString().replace(bigIntPrefix, ''));\n },\n });\n};\n\nconst safeLength = Number.MAX_SAFE_INTEGER.toString().length;\nconst bigIntPropertyRe = new RegExp(String.raw`(\"\\w+\":\\s*)(\\d{${safeLength},})(\\s*[,}])`, 'm');\nconst bigIntArrayItemRe = new RegExp(String.raw`([[,]\\s*)(\\d{${safeLength},})\\b`, 'm');\nexport const parseBigIntPolicy: PipelinePolicy = {\n name: 'parse-big-int',\n async sendRequest(request, next) {\n const response = await next(request);\n if (response.bodyAsText == null) return response;\n // TODO: replace with https://caniuse.com/mdn-javascript_builtins_json_parse_reviver_parameter_context_argument when it gets support in FF and Safari\n response.bodyAsText = response.bodyAsText.replaceAll(\n new RegExp(bigIntPropertyRe, 'g'),\n (matched) => {\n const match = matched.match(bigIntPropertyRe);\n if (match == null) throw new UnexpectedTsError();\n const [, name, value, end] = match;\n return [\n name,\n +value > Number.MAX_SAFE_INTEGER ? `\"${bigIntPrefix}${value}\"` : value,\n end,\n ].join('');\n },\n );\n // FIXME: may break strings inside json\n response.bodyAsText = response.bodyAsText.replaceAll(\n new RegExp(bigIntArrayItemRe, 'g'),\n (matched) => {\n const match = matched.match(bigIntArrayItemRe);\n if (match == null) throw new UnexpectedTsError();\n const [, prefix, value] = match;\n return `${prefix}\"${bigIntPrefix}${value}\"`;\n },\n );\n return response;\n },\n};\n\nexport const genRequestQueuesPolicy = (): AdditionalPolicyConfig => {\n const requestQueues = new Map<string, Promise<unknown>>();\n\n return {\n policy: {\n name: 'request-queues',\n async sendRequest(request, next) {\n const key = request.headers.get('__queue');\n request.headers.delete('__queue');\n const getResponse = async (): Promise<PipelineResponse> => next(request);\n if (key == null) return getResponse();\n const req = (requestQueues.get(key) ?? Promise.resolve()).then(getResponse);\n requestQueues.set(\n key,\n req.catch(() => {}),\n );\n return req;\n },\n },\n position: 'perCall',\n };\n};\n\nexport const genCombineGetRequestsPolicy = (): AdditionalPolicyConfig => {\n const pendingGetRequests = new Map<string, Promise<PipelineResponse>>();\n\n return {\n policy: {\n name: 'combine-get-requests',\n async sendRequest(request, next) {\n if (request.method !== 'GET') return next(request);\n const key = JSON.stringify([request.url, request.body]);\n const response = pendingGetRequests.get(key) ?? next(request);\n pendingGetRequests.set(key, response);\n try {\n return await response;\n } finally {\n pendingGetRequests.delete(key);\n }\n },\n },\n position: 'perCall',\n };\n};\n\nexport const genAggressiveCacheGetResponsesPolicy = (): AdditionalPolicyConfig => {\n const getRequests = new Map<string, Promise<PipelineResponse>>();\n\n return {\n policy: {\n name: 'aggressive-cache-get-responses',\n async sendRequest(request, next) {\n if (request.method !== 'GET') return next(request);\n const key = JSON.stringify([request.url, request.body]);\n const response = getRequests.get(key) ?? next(request);\n getRequests.set(key, response);\n return response;\n },\n },\n position: 'perCall',\n };\n};\n\nexport const genErrorFormatterPolicy = (\n getMessage: (b: any) => string,\n): AdditionalPolicyConfig => ({\n policy: {\n name: 'error-formatter',\n async sendRequest(request, next) {\n try {\n return await next(request);\n } catch (error) {\n if (\n !(error instanceof RestError) ||\n error.request == null ||\n error.message.startsWith('Error ')\n )\n throw error;\n const prefix = `${new URL(error.request.url).pathname.slice(1)} error`;\n\n if (error.response?.bodyAsText == null) {\n if (error.message === '') error.message = `${prefix}: ${error.code}`;\n throw error;\n }\n\n const body = (error.response as FullOperationResponse).parsedBody;\n error.message = prefix;\n const message = body == null ? ` ${error.response.status} status code` : getMessage(body);\n if (message !== '') error.message += `:${message}`;\n throw error;\n }\n },\n },\n position: 'perCall',\n});\n\nexport const genVersionCheckPolicy = (\n name: string,\n versionCb: (options: OperationOptions) => Promise<string>,\n geVersion: string,\n ltVersion: string,\n): AdditionalPolicyConfig => ({\n policy: {\n name: 'version-check',\n async sendRequest(request, next) {\n if (request.headers.has('__version-check')) {\n request.headers.delete('__version-check');\n return next(request);\n }\n const options = { requestOptions: { customHeaders: { '__version-check': 'true' } } };\n const args = [await versionCb(options), geVersion, ltVersion] as const;\n if (!semverSatisfies(...args)) throw new UnsupportedVersionError(name, ...args);\n return next(request);\n },\n },\n position: 'perCall',\n});\n\nexport const genRetryOnFailurePolicy = (\n retryCount: number,\n retryOverallDelay: number,\n): AdditionalPolicyConfig => ({\n policy: {\n name: 'retry-on-failure',\n async sendRequest(request, next) {\n const retryCode = request.headers.get('__retry-code') ?? NaN;\n request.headers.delete('__retry-code');\n const statusesToNotRetry = [200, 400, 403, 410, 500].filter((c) => c !== +retryCode);\n\n const intervals = new Array(retryCount)\n .fill(0)\n .map((_, idx) => ((idx + 1) / retryCount) ** 2);\n const intervalSum = intervals.reduce((a, b) => a + b, 0);\n const intervalsInMs = intervals.map((e) => Math.floor((e / intervalSum) * retryOverallDelay));\n\n let error = new RestError('Not expected to be thrown');\n for (let attempt = 0; attempt <= retryCount; attempt += 1) {\n if (attempt !== 0) {\n await pause(intervalsInMs[attempt - 1]);\n const urlParsed = new URL(request.url);\n urlParsed.searchParams.set('__sdk-retry', attempt.toString());\n request.url = urlParsed.toString();\n }\n try {\n return await next(request);\n } catch (e) {\n if (!(e instanceof RestError)) throw e;\n if (statusesToNotRetry.includes(e.response?.status ?? 0)) throw e;\n error = e;\n }\n }\n throw error;\n },\n },\n position: 'perCall',\n});\n"],"mappings":"AAAA,SAASA,SAAS,QAA0C,2BAA2B;AACvF,SAIEC,gBAAgB,IAAIC,oBAAoB,QACnC,oBAAoB;AAC3B,SAASC,KAAK,QAAQ,YAAY;AAClC,OAAOC,eAAe,MAAM,uBAAuB;AACnD,SAASC,aAAa,EAAEC,iBAAiB,EAAEC,uBAAuB,QAAQ,aAAa;AAEvF,MAAMC,YAAY,GAAG,eAAe;AAEpC,OAAO,MAAMP,gBAAgB,GAAGA,CAC9B,GAAGQ,IAA6C,KACJ;EAC5C,MAAMC,UAAU,GAAGR,oBAAoB,CAAC,GAAGO,IAAI,CAAC;EAChD,MAAM;IAAEE,SAAS;IAAEC;EAAY,CAAC,GAAGF,UAAU;EAC7C,OAAOG,MAAM,CAACC,MAAM,CAACJ,UAAU,EAAE;IAC/BC,SAASA,CACP,GAAG,CAACI,MAAM,EAAEC,MAAM,EAAEC,UAAU,EAAEC,OAAO,CAA+B,EACxC;MAC9B;MACA,IAAIH,MAAM,CAACI,IAAI,CAACC,IAAI,KAAK,QAAQ,IAAIJ,MAAM,IAAI,IAAI,EAAE;QACnD,OAAOL,SAAS,CAACU,IAAI,CAAC,IAAI,EAAEN,MAAM,EAAEC,MAAM,EAAEC,UAAU,EAAEC,OAAO,CAAC;MAClE;MACA,IAAI,OAAOF,MAAM,KAAK,QAAQ,EAAE;QAAA,IAAAM,WAAA;QAC9B,CAAAA,WAAA,GAAAL,UAAU,cAAAK,WAAA,cAAAA,WAAA,GAAVL,UAAU,GAAKF,MAAM,CAACQ,cAAc;QACpC,MAAM,IAAIC,KAAK,CAAC,GAAGP,UAAU,eAAeD,MAAM,0BAA0B,CAAC;MAC/E;MACA,OAAOA,MAAM,CAACS,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAEDb,WAAWA,CACT,GAAG,CAACG,MAAM,EAAEW,YAAY,EAAET,UAAU,EAAEC,OAAO,CAAiC,EAC9C;MAChC;MACA,IAAIH,MAAM,CAACI,IAAI,CAACC,IAAI,KAAK,QAAQ,IAAIM,YAAY,IAAI,IAAI,EAAE;QACzD,IAAI,OAAOA,YAAY,KAAK,QAAQ,IAAIA,YAAY,CAACC,UAAU,CAACnB,YAAY,CAAC,EAAE;UAC7EoB,OAAO,CAACC,IAAI,CAAC,sCAAsCH,YAAY,sBAAsB,CAAC;UACtFA,YAAY,GAAG,CAACA,YAAY,CAACI,OAAO,CAACtB,YAAY,EAAE,EAAE,CAAC;QACxD;QACA,MAAMuB,MAAM,GAAGnB,WAAW,CAACS,IAAI,CAAC,IAAI,EAAEN,MAAM,EAAEW,YAAY,EAAET,UAAU,EAAEC,OAAO,CAAC;QAChF;QACA;QACA,IAAIa,MAAM,YAAYC,IAAI,EAAE,OAAO,IAAIA,IAAI,CAAC,CAACD,MAAM,GAAG,IAAI,CAAC;QAC3D,OAAOA,MAAM;MACf;MACA,IAAI,OAAOL,YAAY,KAAK,QAAQ,IAAIA,YAAY,GAAGO,MAAM,CAACC,gBAAgB,EAAE;QAC9E,MAAM,IAAI7B,aAAa,CAAC,UAAUqB,YAAY,4CAA4C,CAAC;MAC7F;MACA,OAAOS,MAAM,CAACT,YAAY,CAACD,QAAQ,CAAC,CAAC,CAACK,OAAO,CAACtB,YAAY,EAAE,EAAE,CAAC,CAAC;IAClE;EACF,CAAC,CAAC;AACJ,CAAC;AAED,MAAM4B,UAAU,GAAGH,MAAM,CAACC,gBAAgB,CAACT,QAAQ,CAAC,CAAC,CAACY,MAAM;AAC5D,MAAMC,gBAAgB,GAAG,IAAIC,MAAM,CAACC,MAAM,CAACC,GAAG,kBAAkBL,UAAU,cAAc,EAAE,GAAG,CAAC;AAC9F,MAAMM,iBAAiB,GAAG,IAAIH,MAAM,CAACC,MAAM,CAACC,GAAG,gBAAgBL,UAAU,OAAO,EAAE,GAAG,CAAC;AACtF,OAAO,MAAMO,iBAAiC,GAAG;EAC/CvB,IAAI,EAAE,eAAe;EACrB,MAAMwB,WAAWA,CAACC,OAAO,EAAEC,IAAI,EAAE;IAC/B,MAAMC,QAAQ,GAAG,MAAMD,IAAI,CAACD,OAAO,CAAC;IACpC,IAAIE,QAAQ,CAACC,UAAU,IAAI,IAAI,EAAE,OAAOD,QAAQ;IAChD;IACAA,QAAQ,CAACC,UAAU,GAAGD,QAAQ,CAACC,UAAU,CAACC,UAAU,CAClD,IAAIV,MAAM,CAACD,gBAAgB,EAAE,GAAG,CAAC,EAChCY,OAAO,IAAK;MACX,MAAMC,KAAK,GAAGD,OAAO,CAACC,KAAK,CAACb,gBAAgB,CAAC;MAC7C,IAAIa,KAAK,IAAI,IAAI,EAAE,MAAM,IAAI7C,iBAAiB,CAAC,CAAC;MAChD,MAAM,GAAGc,IAAI,EAAEgC,KAAK,EAAEC,GAAG,CAAC,GAAGF,KAAK;MAClC,OAAO,CACL/B,IAAI,EACJ,CAACgC,KAAK,GAAGnB,MAAM,CAACC,gBAAgB,GAAG,IAAI1B,YAAY,GAAG4C,KAAK,GAAG,GAAGA,KAAK,EACtEC,GAAG,CACJ,CAACC,IAAI,CAAC,EAAE,CAAC;IACZ,CACF,CAAC;IACD;IACAP,QAAQ,CAACC,UAAU,GAAGD,QAAQ,CAACC,UAAU,CAACC,UAAU,CAClD,IAAIV,MAAM,CAACG,iBAAiB,EAAE,GAAG,CAAC,EACjCQ,OAAO,IAAK;MACX,MAAMC,KAAK,GAAGD,OAAO,CAACC,KAAK,CAACT,iBAAiB,CAAC;MAC9C,IAAIS,KAAK,IAAI,IAAI,EAAE,MAAM,IAAI7C,iBAAiB,CAAC,CAAC;MAChD,MAAM,GAAGiD,MAAM,EAAEH,KAAK,CAAC,GAAGD,KAAK;MAC/B,OAAO,GAAGI,MAAM,IAAI/C,YAAY,GAAG4C,KAAK,GAAG;IAC7C,CACF,CAAC;IACD,OAAOL,QAAQ;EACjB;AACF,CAAC;AAED,OAAO,MAAMS,sBAAsB,GAAGA,CAAA,KAA8B;EAClE,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAA2B,CAAC;EAEzD,OAAO;IACLC,MAAM,EAAE;MACNvC,IAAI,EAAE,gBAAgB;MACtB,MAAMwB,WAAWA,CAACC,OAAO,EAAEC,IAAI,EAAE;QAAA,IAAAc,kBAAA;QAC/B,MAAMC,GAAG,GAAGhB,OAAO,CAACiB,OAAO,CAACC,GAAG,CAAC,SAAS,CAAC;QAC1ClB,OAAO,CAACiB,OAAO,CAACE,MAAM,CAAC,SAAS,CAAC;QACjC,MAAMC,WAAW,GAAG,MAAAA,CAAA,KAAuCnB,IAAI,CAACD,OAAO,CAAC;QACxE,IAAIgB,GAAG,IAAI,IAAI,EAAE,OAAOI,WAAW,CAAC,CAAC;QACrC,MAAMC,GAAG,GAAG,EAAAN,kBAAA,GAACH,aAAa,CAACM,GAAG,CAACF,GAAG,CAAC,cAAAD,kBAAA,cAAAA,kBAAA,GAAIO,OAAO,CAACC,OAAO,CAAC,CAAC,EAAEC,IAAI,CAACJ,WAAW,CAAC;QAC3ER,aAAa,CAACa,GAAG,CACfT,GAAG,EACHK,GAAG,CAACK,KAAK,CAAC,MAAM,CAAC,CAAC,CACpB,CAAC;QACD,OAAOL,GAAG;MACZ;IACF,CAAC;IACDM,QAAQ,EAAE;EACZ,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,2BAA2B,GAAGA,CAAA,KAA8B;EACvE,MAAMC,kBAAkB,GAAG,IAAIhB,GAAG,CAAoC,CAAC;EAEvE,OAAO;IACLC,MAAM,EAAE;MACNvC,IAAI,EAAE,sBAAsB;MAC5B,MAAMwB,WAAWA,CAACC,OAAO,EAAEC,IAAI,EAAE;QAAA,IAAA6B,qBAAA;QAC/B,IAAI9B,OAAO,CAAC+B,MAAM,KAAK,KAAK,EAAE,OAAO9B,IAAI,CAACD,OAAO,CAAC;QAClD,MAAMgB,GAAG,GAAGgB,IAAI,CAACC,SAAS,CAAC,CAACjC,OAAO,CAACkC,GAAG,EAAElC,OAAO,CAACmC,IAAI,CAAC,CAAC;QACvD,MAAMjC,QAAQ,IAAA4B,qBAAA,GAAGD,kBAAkB,CAACX,GAAG,CAACF,GAAG,CAAC,cAAAc,qBAAA,cAAAA,qBAAA,GAAI7B,IAAI,CAACD,OAAO,CAAC;QAC7D6B,kBAAkB,CAACJ,GAAG,CAACT,GAAG,EAAEd,QAAQ,CAAC;QACrC,IAAI;UACF,OAAO,MAAMA,QAAQ;QACvB,CAAC,SAAS;UACR2B,kBAAkB,CAACV,MAAM,CAACH,GAAG,CAAC;QAChC;MACF;IACF,CAAC;IACDW,QAAQ,EAAE;EACZ,CAAC;AACH,CAAC;AAED,OAAO,MAAMS,oCAAoC,GAAGA,CAAA,KAA8B;EAChF,MAAMC,WAAW,GAAG,IAAIxB,GAAG,CAAoC,CAAC;EAEhE,OAAO;IACLC,MAAM,EAAE;MACNvC,IAAI,EAAE,gCAAgC;MACtC,MAAMwB,WAAWA,CAACC,OAAO,EAAEC,IAAI,EAAE;QAAA,IAAAqC,gBAAA;QAC/B,IAAItC,OAAO,CAAC+B,MAAM,KAAK,KAAK,EAAE,OAAO9B,IAAI,CAACD,OAAO,CAAC;QAClD,MAAMgB,GAAG,GAAGgB,IAAI,CAACC,SAAS,CAAC,CAACjC,OAAO,CAACkC,GAAG,EAAElC,OAAO,CAACmC,IAAI,CAAC,CAAC;QACvD,MAAMjC,QAAQ,IAAAoC,gBAAA,GAAGD,WAAW,CAACnB,GAAG,CAACF,GAAG,CAAC,cAAAsB,gBAAA,cAAAA,gBAAA,GAAIrC,IAAI,CAACD,OAAO,CAAC;QACtDqC,WAAW,CAACZ,GAAG,CAACT,GAAG,EAAEd,QAAQ,CAAC;QAC9B,OAAOA,QAAQ;MACjB;IACF,CAAC;IACDyB,QAAQ,EAAE;EACZ,CAAC;AACH,CAAC;AAED,OAAO,MAAMY,uBAAuB,GAClCC,UAA8B,KACF;EAC5B1B,MAAM,EAAE;IACNvC,IAAI,EAAE,iBAAiB;IACvB,MAAMwB,WAAWA,CAACC,OAAO,EAAEC,IAAI,EAAE;MAC/B,IAAI;QACF,OAAO,MAAMA,IAAI,CAACD,OAAO,CAAC;MAC5B,CAAC,CAAC,OAAOyC,KAAK,EAAE;QACd,IACE,EAAEA,KAAK,YAAYtF,SAAS,CAAC,IAC7BsF,KAAK,CAACzC,OAAO,IAAI,IAAI,IACrByC,KAAK,CAACC,OAAO,CAAC5D,UAAU,CAAC,QAAQ,CAAC,EAElC,MAAM2D,KAAK;QACb,MAAM/B,MAAM,GAAG,GAAG,IAAIiC,GAAG,CAACF,KAAK,CAACzC,OAAO,CAACkC,GAAG,CAAC,CAACU,QAAQ,CAACC,KAAK,CAAC,CAAC,CAAC,QAAQ;QAEtE,IAAIJ,KAAK,CAACvC,QAAQ,EAAEC,UAAU,IAAI,IAAI,EAAE;UACtC,IAAIsC,KAAK,CAACC,OAAO,KAAK,EAAE,EAAED,KAAK,CAACC,OAAO,GAAG,GAAGhC,MAAM,KAAK+B,KAAK,CAACK,IAAI,EAAE;UACpE,MAAML,KAAK;QACb;QAEA,MAAMN,IAAI,GAAIM,KAAK,CAACvC,QAAQ,CAA2B6C,UAAU;QACjEN,KAAK,CAACC,OAAO,GAAGhC,MAAM;QACtB,MAAMgC,OAAO,GAAGP,IAAI,IAAI,IAAI,GAAG,IAAIM,KAAK,CAACvC,QAAQ,CAAC8C,MAAM,cAAc,GAAGR,UAAU,CAACL,IAAI,CAAC;QACzF,IAAIO,OAAO,KAAK,EAAE,EAAED,KAAK,CAACC,OAAO,IAAI,IAAIA,OAAO,EAAE;QAClD,MAAMD,KAAK;MACb;IACF;EACF,CAAC;EACDd,QAAQ,EAAE;AACZ,CAAC,CAAC;AAEF,OAAO,MAAMsB,qBAAqB,GAAGA,CACnC1E,IAAY,EACZ2E,SAAyD,EACzDC,SAAiB,EACjBC,SAAiB,MACW;EAC5BtC,MAAM,EAAE;IACNvC,IAAI,EAAE,eAAe;IACrB,MAAMwB,WAAWA,CAACC,OAAO,EAAEC,IAAI,EAAE;MAC/B,IAAID,OAAO,CAACiB,OAAO,CAACoC,GAAG,CAAC,iBAAiB,CAAC,EAAE;QAC1CrD,OAAO,CAACiB,OAAO,CAACE,MAAM,CAAC,iBAAiB,CAAC;QACzC,OAAOlB,IAAI,CAACD,OAAO,CAAC;MACtB;MACA,MAAM3B,OAAO,GAAG;QAAEiF,cAAc,EAAE;UAAEC,aAAa,EAAE;YAAE,iBAAiB,EAAE;UAAO;QAAE;MAAE,CAAC;MACpF,MAAM3F,IAAI,GAAG,CAAC,MAAMsF,SAAS,CAAC7E,OAAO,CAAC,EAAE8E,SAAS,EAAEC,SAAS,CAAU;MACtE,IAAI,CAAC7F,eAAe,CAAC,GAAGK,IAAI,CAAC,EAAE,MAAM,IAAIF,uBAAuB,CAACa,IAAI,EAAE,GAAGX,IAAI,CAAC;MAC/E,OAAOqC,IAAI,CAACD,OAAO,CAAC;IACtB;EACF,CAAC;EACD2B,QAAQ,EAAE;AACZ,CAAC,CAAC;AAEF,OAAO,MAAM6B,uBAAuB,GAAGA,CACrCC,UAAkB,EAClBC,iBAAyB,MACG;EAC5B5C,MAAM,EAAE;IACNvC,IAAI,EAAE,kBAAkB;IACxB,MAAMwB,WAAWA,CAACC,OAAO,EAAEC,IAAI,EAAE;MAAA,IAAA0D,oBAAA;MAC/B,MAAMC,SAAS,IAAAD,oBAAA,GAAG3D,OAAO,CAACiB,OAAO,CAACC,GAAG,CAAC,cAAc,CAAC,cAAAyC,oBAAA,cAAAA,oBAAA,GAAIE,GAAG;MAC5D7D,OAAO,CAACiB,OAAO,CAACE,MAAM,CAAC,cAAc,CAAC;MACtC,MAAM2C,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAACC,MAAM,CAAEC,CAAC,IAAKA,CAAC,KAAK,CAACJ,SAAS,CAAC;MAEpF,MAAMK,SAAS,GAAG,IAAIC,KAAK,CAACT,UAAU,CAAC,CACpCU,IAAI,CAAC,CAAC,CAAC,CACPC,GAAG,CAAC,CAACC,CAAC,EAAEC,GAAG,KAAK,CAAC,CAACA,GAAG,GAAG,CAAC,IAAIb,UAAU,KAAK,CAAC,CAAC;MACjD,MAAMc,WAAW,GAAGN,SAAS,CAACO,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,EAAE,CAAC,CAAC;MACxD,MAAMC,aAAa,GAAGV,SAAS,CAACG,GAAG,CAAEQ,CAAC,IAAKC,IAAI,CAACC,KAAK,CAAEF,CAAC,GAAGL,WAAW,GAAIb,iBAAiB,CAAC,CAAC;MAE7F,IAAIjB,KAAK,GAAG,IAAItF,SAAS,CAAC,2BAA2B,CAAC;MACtD,KAAK,IAAI4H,OAAO,GAAG,CAAC,EAAEA,OAAO,IAAItB,UAAU,EAAEsB,OAAO,IAAI,CAAC,EAAE;QACzD,IAAIA,OAAO,KAAK,CAAC,EAAE;UACjB,MAAMzH,KAAK,CAACqH,aAAa,CAACI,OAAO,GAAG,CAAC,CAAC,CAAC;UACvC,MAAMC,SAAS,GAAG,IAAIrC,GAAG,CAAC3C,OAAO,CAACkC,GAAG,CAAC;UACtC8C,SAAS,CAACC,YAAY,CAACxD,GAAG,CAAC,aAAa,EAAEsD,OAAO,CAACnG,QAAQ,CAAC,CAAC,CAAC;UAC7DoB,OAAO,CAACkC,GAAG,GAAG8C,SAAS,CAACpG,QAAQ,CAAC,CAAC;QACpC;QACA,IAAI;UACF,OAAO,MAAMqB,IAAI,CAACD,OAAO,CAAC;QAC5B,CAAC,CAAC,OAAO4E,CAAC,EAAE;UAAA,IAAAM,kBAAA;UACV,IAAI,EAAEN,CAAC,YAAYzH,SAAS,CAAC,EAAE,MAAMyH,CAAC;UACtC,IAAId,kBAAkB,CAACqB,QAAQ,EAAAD,kBAAA,GAACN,CAAC,CAAC1E,QAAQ,EAAE8C,MAAM,cAAAkC,kBAAA,cAAAA,kBAAA,GAAI,CAAC,CAAC,EAAE,MAAMN,CAAC;UACjEnC,KAAK,GAAGmC,CAAC;QACX;MACF;MACA,MAAMnC,KAAK;IACb;EACF,CAAC;EACDd,QAAQ,EAAE;AACZ,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"autorest.js","names":["RestError","createSerializer","createSerializerOrig","pause","semverSatisfies","InternalError","UnexpectedTsError","UnsupportedVersionError","bigIntPrefix","args","serializer","serialize","deserialize","Object","assign","mapper","object","objectName","options","type","name","call","serializedName","Error","toString","responseBody","startsWith","console","warn","replace","result","Date","Number","MAX_SAFE_INTEGER","BigInt","safeLength","length","bigIntPropertyRe","RegExp","String","raw","bigIntArrayItemRe","parseBigIntPolicy","sendRequest","request","next","response","bodyAsText","replaceAll","matched","match","value","end","join","prefix","genRequestQueuesPolicy","requestQueues","Map","policy","_requestQueues$get","key","headers","get","delete","getResponse","req","Promise","resolve","then","set","catch","position","genCombineGetRequestsPolicy","pendingGetRequests","_pendingGetRequests$g","method","JSON","stringify","url","body","genAggressiveCacheGetResponsesPolicy","getRequests","_getRequests$get","genErrorFormatterPolicy","getMessage","error","message","URL","pathname","slice","code","parsedBody","status","genVersionCheckPolicy","versionCb","geVersion","ltVersion","ignoreVersion","has","requestOptions","customHeaders","genRetryOnFailurePolicy","retryCount","retryOverallDelay","_request$headers$get","retryCode","NaN","statusesToNotRetry","filter","c","intervals","Array","fill","map","_","idx","intervalSum","reduce","a","b","intervalsInMs","e","Math","floor","attempt","urlParsed","searchParams","_e$response$status","includes"],"sources":["../../src/utils/autorest.ts"],"sourcesContent":["import { RestError, PipelineResponse, PipelinePolicy } from '@azure/core-rest-pipeline';\nimport {\n AdditionalPolicyConfig,\n FullOperationResponse,\n OperationOptions,\n createSerializer as createSerializerOrig,\n} from '@azure/core-client';\nimport { pause } from './other.js';\nimport semverSatisfies from './semver-satisfies.js';\nimport { InternalError, UnexpectedTsError, UnsupportedVersionError } from './errors.js';\n\nconst bigIntPrefix = '_sdk-big-int-';\n\nexport const createSerializer = (\n ...args: Parameters<typeof createSerializerOrig>\n): ReturnType<typeof createSerializerOrig> => {\n const serializer = createSerializerOrig(...args);\n const { serialize, deserialize } = serializer;\n return Object.assign(serializer, {\n serialize(\n ...[mapper, object, objectName, options]: Parameters<typeof serialize>\n ): ReturnType<typeof serialize> {\n // @ts-expect-error we are extending autorest with BigInt support\n if (mapper.type.name !== 'BigInt' || object == null) {\n return serialize.call(this, mapper, object, objectName, options);\n }\n if (typeof object !== 'bigint') {\n objectName ??= mapper.serializedName;\n throw new Error(`${objectName} with value ${object} must be of type bigint.`);\n }\n return object.toString();\n },\n\n deserialize(\n ...[mapper, responseBody, objectName, options]: Parameters<typeof deserialize>\n ): ReturnType<typeof deserialize> {\n // @ts-expect-error we are extending autorest with BigInt support\n if (mapper.type.name !== 'BigInt' || responseBody == null) {\n if (typeof responseBody === 'string' && responseBody.startsWith(bigIntPrefix)) {\n console.warn(`AeSdk internal error: BigInt value ${responseBody} handled incorrectly`);\n responseBody = +responseBody.replace(bigIntPrefix, '');\n }\n const result = deserialize.call(this, mapper, responseBody, objectName, options);\n // TODO: remove after fixing https://github.com/aeternity/ae_mdw/issues/1891\n // and https://github.com/aeternity/aeternity/issues/4386\n if (result instanceof Date) return new Date(+result / 1000);\n return result;\n }\n if (typeof responseBody === 'number' && responseBody > Number.MAX_SAFE_INTEGER) {\n throw new InternalError(`Number ${responseBody} is not accurate to be converted to BigInt`);\n }\n return BigInt(responseBody.toString().replace(bigIntPrefix, ''));\n },\n });\n};\n\nconst safeLength = Number.MAX_SAFE_INTEGER.toString().length;\nconst bigIntPropertyRe = new RegExp(String.raw`(\"\\w+\":\\s*)(\\d{${safeLength},})(\\s*[,}])`, 'm');\nconst bigIntArrayItemRe = new RegExp(String.raw`([[,]\\s*)(\\d{${safeLength},})\\b`, 'm');\nexport const parseBigIntPolicy: PipelinePolicy = {\n name: 'parse-big-int',\n async sendRequest(request, next) {\n const response = await next(request);\n if (response.bodyAsText == null) return response;\n // TODO: replace with https://caniuse.com/mdn-javascript_builtins_json_parse_reviver_parameter_context_argument when it gets support in FF and Safari\n response.bodyAsText = response.bodyAsText.replaceAll(\n new RegExp(bigIntPropertyRe, 'g'),\n (matched) => {\n const match = matched.match(bigIntPropertyRe);\n if (match == null) throw new UnexpectedTsError();\n const [, name, value, end] = match;\n return [\n name,\n +value > Number.MAX_SAFE_INTEGER ? `\"${bigIntPrefix}${value}\"` : value,\n end,\n ].join('');\n },\n );\n // FIXME: may break strings inside json\n response.bodyAsText = response.bodyAsText.replaceAll(\n new RegExp(bigIntArrayItemRe, 'g'),\n (matched) => {\n const match = matched.match(bigIntArrayItemRe);\n if (match == null) throw new UnexpectedTsError();\n const [, prefix, value] = match;\n return `${prefix}\"${bigIntPrefix}${value}\"`;\n },\n );\n return response;\n },\n};\n\nexport const genRequestQueuesPolicy = (): AdditionalPolicyConfig => {\n const requestQueues = new Map<string, Promise<unknown>>();\n\n return {\n policy: {\n name: 'request-queues',\n async sendRequest(request, next) {\n const key = request.headers.get('__queue');\n request.headers.delete('__queue');\n const getResponse = async (): Promise<PipelineResponse> => next(request);\n if (key == null) return getResponse();\n const req = (requestQueues.get(key) ?? Promise.resolve()).then(getResponse);\n requestQueues.set(\n key,\n req.catch(() => {}),\n );\n return req;\n },\n },\n position: 'perCall',\n };\n};\n\nexport const genCombineGetRequestsPolicy = (): AdditionalPolicyConfig => {\n const pendingGetRequests = new Map<string, Promise<PipelineResponse>>();\n\n return {\n policy: {\n name: 'combine-get-requests',\n async sendRequest(request, next) {\n if (request.method !== 'GET') return next(request);\n const key = JSON.stringify([request.url, request.body]);\n const response = pendingGetRequests.get(key) ?? next(request);\n pendingGetRequests.set(key, response);\n try {\n return await response;\n } finally {\n pendingGetRequests.delete(key);\n }\n },\n },\n position: 'perCall',\n };\n};\n\nexport const genAggressiveCacheGetResponsesPolicy = (): AdditionalPolicyConfig => {\n const getRequests = new Map<string, Promise<PipelineResponse>>();\n\n return {\n policy: {\n name: 'aggressive-cache-get-responses',\n async sendRequest(request, next) {\n if (request.method !== 'GET') return next(request);\n const key = JSON.stringify([request.url, request.body]);\n const response = getRequests.get(key) ?? next(request);\n getRequests.set(key, response);\n return response;\n },\n },\n position: 'perCall',\n };\n};\n\nexport const genErrorFormatterPolicy = (\n getMessage: (b: any) => string,\n): AdditionalPolicyConfig => ({\n policy: {\n name: 'error-formatter',\n async sendRequest(request, next) {\n try {\n return await next(request);\n } catch (error) {\n if (\n !(error instanceof RestError) ||\n error.request == null ||\n error.message.startsWith('Error ')\n )\n throw error;\n const prefix = `${new URL(error.request.url).pathname.slice(1)} error`;\n\n if (error.response?.bodyAsText == null) {\n if (error.message === '') error.message = `${prefix}: ${error.code}`;\n throw error;\n }\n\n const body = (error.response as FullOperationResponse).parsedBody;\n error.message = prefix;\n const message = body == null ? ` ${error.response.status} status code` : getMessage(body);\n if (message !== '') error.message += `:${message}`;\n throw error;\n }\n },\n },\n position: 'perCall',\n});\n\nexport const genVersionCheckPolicy = (\n name: string,\n versionCb: (options: OperationOptions) => Promise<string>,\n geVersion: string,\n ltVersion: string,\n ignoreVersion: boolean,\n): AdditionalPolicyConfig => ({\n policy: {\n name: 'version-check',\n async sendRequest(request, next) {\n if (request.headers.has('__version-check')) {\n request.headers.delete('__version-check');\n return next(request);\n }\n const options = { requestOptions: { customHeaders: { '__version-check': 'true' } } };\n const args = [await versionCb(options), geVersion, ltVersion] as const;\n if (!semverSatisfies(...args)) {\n const error = new UnsupportedVersionError(name, ...args);\n if (ignoreVersion) console.warn(error.message);\n else throw error;\n }\n return next(request);\n },\n },\n position: 'perCall',\n});\n\nexport const genRetryOnFailurePolicy = (\n retryCount: number,\n retryOverallDelay: number,\n): AdditionalPolicyConfig => ({\n policy: {\n name: 'retry-on-failure',\n async sendRequest(request, next) {\n if (request.headers.get('__no-retry') != null) {\n request.headers.delete('__no-retry');\n return next(request);\n }\n\n const retryCode = request.headers.get('__retry-code') ?? NaN;\n request.headers.delete('__retry-code');\n const statusesToNotRetry = [200, 400, 403, 410, 500].filter((c) => c !== +retryCode);\n\n const intervals = new Array(retryCount)\n .fill(0)\n .map((_, idx) => ((idx + 1) / retryCount) ** 2);\n const intervalSum = intervals.reduce((a, b) => a + b, 0);\n const intervalsInMs = intervals.map((e) => Math.floor((e / intervalSum) * retryOverallDelay));\n\n let error = new RestError('Not expected to be thrown');\n for (let attempt = 0; attempt <= retryCount; attempt += 1) {\n if (attempt !== 0) {\n await pause(intervalsInMs[attempt - 1]);\n const urlParsed = new URL(request.url);\n urlParsed.searchParams.set('__sdk-retry', attempt.toString());\n request.url = urlParsed.toString();\n }\n try {\n return await next(request);\n } catch (e) {\n if (!(e instanceof RestError)) throw e;\n if (statusesToNotRetry.includes(e.response?.status ?? 0)) throw e;\n error = e;\n }\n }\n throw error;\n },\n },\n position: 'perCall',\n});\n"],"mappings":"AAAA,SAASA,SAAS,QAA0C,2BAA2B;AACvF,SAIEC,gBAAgB,IAAIC,oBAAoB,QACnC,oBAAoB;AAC3B,SAASC,KAAK,QAAQ,YAAY;AAClC,OAAOC,eAAe,MAAM,uBAAuB;AACnD,SAASC,aAAa,EAAEC,iBAAiB,EAAEC,uBAAuB,QAAQ,aAAa;AAEvF,MAAMC,YAAY,GAAG,eAAe;AAEpC,OAAO,MAAMP,gBAAgB,GAAGA,CAC9B,GAAGQ,IAA6C,KACJ;EAC5C,MAAMC,UAAU,GAAGR,oBAAoB,CAAC,GAAGO,IAAI,CAAC;EAChD,MAAM;IAAEE,SAAS;IAAEC;EAAY,CAAC,GAAGF,UAAU;EAC7C,OAAOG,MAAM,CAACC,MAAM,CAACJ,UAAU,EAAE;IAC/BC,SAASA,CACP,GAAG,CAACI,MAAM,EAAEC,MAAM,EAAEC,UAAU,EAAEC,OAAO,CAA+B,EACxC;MAC9B;MACA,IAAIH,MAAM,CAACI,IAAI,CAACC,IAAI,KAAK,QAAQ,IAAIJ,MAAM,IAAI,IAAI,EAAE;QACnD,OAAOL,SAAS,CAACU,IAAI,CAAC,IAAI,EAAEN,MAAM,EAAEC,MAAM,EAAEC,UAAU,EAAEC,OAAO,CAAC;MAClE;MACA,IAAI,OAAOF,MAAM,KAAK,QAAQ,EAAE;QAC9BC,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAVA,UAAU,GAAKF,MAAM,CAACO,cAAc;QACpC,MAAM,IAAIC,KAAK,CAAC,GAAGN,UAAU,eAAeD,MAAM,0BAA0B,CAAC;MAC/E;MACA,OAAOA,MAAM,CAACQ,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAEDZ,WAAWA,CACT,GAAG,CAACG,MAAM,EAAEU,YAAY,EAAER,UAAU,EAAEC,OAAO,CAAiC,EAC9C;MAChC;MACA,IAAIH,MAAM,CAACI,IAAI,CAACC,IAAI,KAAK,QAAQ,IAAIK,YAAY,IAAI,IAAI,EAAE;QACzD,IAAI,OAAOA,YAAY,KAAK,QAAQ,IAAIA,YAAY,CAACC,UAAU,CAAClB,YAAY,CAAC,EAAE;UAC7EmB,OAAO,CAACC,IAAI,CAAC,sCAAsCH,YAAY,sBAAsB,CAAC;UACtFA,YAAY,GAAG,CAACA,YAAY,CAACI,OAAO,CAACrB,YAAY,EAAE,EAAE,CAAC;QACxD;QACA,MAAMsB,MAAM,GAAGlB,WAAW,CAACS,IAAI,CAAC,IAAI,EAAEN,MAAM,EAAEU,YAAY,EAAER,UAAU,EAAEC,OAAO,CAAC;QAChF;QACA;QACA,IAAIY,MAAM,YAAYC,IAAI,EAAE,OAAO,IAAIA,IAAI,CAAC,CAACD,MAAM,GAAG,IAAI,CAAC;QAC3D,OAAOA,MAAM;MACf;MACA,IAAI,OAAOL,YAAY,KAAK,QAAQ,IAAIA,YAAY,GAAGO,MAAM,CAACC,gBAAgB,EAAE;QAC9E,MAAM,IAAI5B,aAAa,CAAC,UAAUoB,YAAY,4CAA4C,CAAC;MAC7F;MACA,OAAOS,MAAM,CAACT,YAAY,CAACD,QAAQ,CAAC,CAAC,CAACK,OAAO,CAACrB,YAAY,EAAE,EAAE,CAAC,CAAC;IAClE;EACF,CAAC,CAAC;AACJ,CAAC;AAED,MAAM2B,UAAU,GAAGH,MAAM,CAACC,gBAAgB,CAACT,QAAQ,CAAC,CAAC,CAACY,MAAM;AAC5D,MAAMC,gBAAgB,GAAG,IAAIC,MAAM,CAACC,MAAM,CAACC,GAAG,kBAAkBL,UAAU,cAAc,EAAE,GAAG,CAAC;AAC9F,MAAMM,iBAAiB,GAAG,IAAIH,MAAM,CAACC,MAAM,CAACC,GAAG,gBAAgBL,UAAU,OAAO,EAAE,GAAG,CAAC;AACtF,OAAO,MAAMO,iBAAiC,GAAG;EAC/CtB,IAAI,EAAE,eAAe;EACrB,MAAMuB,WAAWA,CAACC,OAAO,EAAEC,IAAI,EAAE;IAC/B,MAAMC,QAAQ,GAAG,MAAMD,IAAI,CAACD,OAAO,CAAC;IACpC,IAAIE,QAAQ,CAACC,UAAU,IAAI,IAAI,EAAE,OAAOD,QAAQ;IAChD;IACAA,QAAQ,CAACC,UAAU,GAAGD,QAAQ,CAACC,UAAU,CAACC,UAAU,CAClD,IAAIV,MAAM,CAACD,gBAAgB,EAAE,GAAG,CAAC,EAChCY,OAAO,IAAK;MACX,MAAMC,KAAK,GAAGD,OAAO,CAACC,KAAK,CAACb,gBAAgB,CAAC;MAC7C,IAAIa,KAAK,IAAI,IAAI,EAAE,MAAM,IAAI5C,iBAAiB,CAAC,CAAC;MAChD,MAAM,GAAGc,IAAI,EAAE+B,KAAK,EAAEC,GAAG,CAAC,GAAGF,KAAK;MAClC,OAAO,CACL9B,IAAI,EACJ,CAAC+B,KAAK,GAAGnB,MAAM,CAACC,gBAAgB,GAAG,IAAIzB,YAAY,GAAG2C,KAAK,GAAG,GAAGA,KAAK,EACtEC,GAAG,CACJ,CAACC,IAAI,CAAC,EAAE,CAAC;IACZ,CACF,CAAC;IACD;IACAP,QAAQ,CAACC,UAAU,GAAGD,QAAQ,CAACC,UAAU,CAACC,UAAU,CAClD,IAAIV,MAAM,CAACG,iBAAiB,EAAE,GAAG,CAAC,EACjCQ,OAAO,IAAK;MACX,MAAMC,KAAK,GAAGD,OAAO,CAACC,KAAK,CAACT,iBAAiB,CAAC;MAC9C,IAAIS,KAAK,IAAI,IAAI,EAAE,MAAM,IAAI5C,iBAAiB,CAAC,CAAC;MAChD,MAAM,GAAGgD,MAAM,EAAEH,KAAK,CAAC,GAAGD,KAAK;MAC/B,OAAO,GAAGI,MAAM,IAAI9C,YAAY,GAAG2C,KAAK,GAAG;IAC7C,CACF,CAAC;IACD,OAAOL,QAAQ;EACjB;AACF,CAAC;AAED,OAAO,MAAMS,sBAAsB,GAAGA,CAAA,KAA8B;EAClE,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAA2B,CAAC;EAEzD,OAAO;IACLC,MAAM,EAAE;MACNtC,IAAI,EAAE,gBAAgB;MACtB,MAAMuB,WAAWA,CAACC,OAAO,EAAEC,IAAI,EAAE;QAAA,IAAAc,kBAAA;QAC/B,MAAMC,GAAG,GAAGhB,OAAO,CAACiB,OAAO,CAACC,GAAG,CAAC,SAAS,CAAC;QAC1ClB,OAAO,CAACiB,OAAO,CAACE,MAAM,CAAC,SAAS,CAAC;QACjC,MAAMC,WAAW,GAAG,MAAAA,CAAA,KAAuCnB,IAAI,CAACD,OAAO,CAAC;QACxE,IAAIgB,GAAG,IAAI,IAAI,EAAE,OAAOI,WAAW,CAAC,CAAC;QACrC,MAAMC,GAAG,GAAG,EAAAN,kBAAA,GAACH,aAAa,CAACM,GAAG,CAACF,GAAG,CAAC,cAAAD,kBAAA,cAAAA,kBAAA,GAAIO,OAAO,CAACC,OAAO,CAAC,CAAC,EAAEC,IAAI,CAACJ,WAAW,CAAC;QAC3ER,aAAa,CAACa,GAAG,CACfT,GAAG,EACHK,GAAG,CAACK,KAAK,CAAC,MAAM,CAAC,CAAC,CACpB,CAAC;QACD,OAAOL,GAAG;MACZ;IACF,CAAC;IACDM,QAAQ,EAAE;EACZ,CAAC;AACH,CAAC;AAED,OAAO,MAAMC,2BAA2B,GAAGA,CAAA,KAA8B;EACvE,MAAMC,kBAAkB,GAAG,IAAIhB,GAAG,CAAoC,CAAC;EAEvE,OAAO;IACLC,MAAM,EAAE;MACNtC,IAAI,EAAE,sBAAsB;MAC5B,MAAMuB,WAAWA,CAACC,OAAO,EAAEC,IAAI,EAAE;QAAA,IAAA6B,qBAAA;QAC/B,IAAI9B,OAAO,CAAC+B,MAAM,KAAK,KAAK,EAAE,OAAO9B,IAAI,CAACD,OAAO,CAAC;QAClD,MAAMgB,GAAG,GAAGgB,IAAI,CAACC,SAAS,CAAC,CAACjC,OAAO,CAACkC,GAAG,EAAElC,OAAO,CAACmC,IAAI,CAAC,CAAC;QACvD,MAAMjC,QAAQ,IAAA4B,qBAAA,GAAGD,kBAAkB,CAACX,GAAG,CAACF,GAAG,CAAC,cAAAc,qBAAA,cAAAA,qBAAA,GAAI7B,IAAI,CAACD,OAAO,CAAC;QAC7D6B,kBAAkB,CAACJ,GAAG,CAACT,GAAG,EAAEd,QAAQ,CAAC;QACrC,IAAI;UACF,OAAO,MAAMA,QAAQ;QACvB,CAAC,SAAS;UACR2B,kBAAkB,CAACV,MAAM,CAACH,GAAG,CAAC;QAChC;MACF;IACF,CAAC;IACDW,QAAQ,EAAE;EACZ,CAAC;AACH,CAAC;AAED,OAAO,MAAMS,oCAAoC,GAAGA,CAAA,KAA8B;EAChF,MAAMC,WAAW,GAAG,IAAIxB,GAAG,CAAoC,CAAC;EAEhE,OAAO;IACLC,MAAM,EAAE;MACNtC,IAAI,EAAE,gCAAgC;MACtC,MAAMuB,WAAWA,CAACC,OAAO,EAAEC,IAAI,EAAE;QAAA,IAAAqC,gBAAA;QAC/B,IAAItC,OAAO,CAAC+B,MAAM,KAAK,KAAK,EAAE,OAAO9B,IAAI,CAACD,OAAO,CAAC;QAClD,MAAMgB,GAAG,GAAGgB,IAAI,CAACC,SAAS,CAAC,CAACjC,OAAO,CAACkC,GAAG,EAAElC,OAAO,CAACmC,IAAI,CAAC,CAAC;QACvD,MAAMjC,QAAQ,IAAAoC,gBAAA,GAAGD,WAAW,CAACnB,GAAG,CAACF,GAAG,CAAC,cAAAsB,gBAAA,cAAAA,gBAAA,GAAIrC,IAAI,CAACD,OAAO,CAAC;QACtDqC,WAAW,CAACZ,GAAG,CAACT,GAAG,EAAEd,QAAQ,CAAC;QAC9B,OAAOA,QAAQ;MACjB;IACF,CAAC;IACDyB,QAAQ,EAAE;EACZ,CAAC;AACH,CAAC;AAED,OAAO,MAAMY,uBAAuB,GAClCC,UAA8B,KACF;EAC5B1B,MAAM,EAAE;IACNtC,IAAI,EAAE,iBAAiB;IACvB,MAAMuB,WAAWA,CAACC,OAAO,EAAEC,IAAI,EAAE;MAC/B,IAAI;QACF,OAAO,MAAMA,IAAI,CAACD,OAAO,CAAC;MAC5B,CAAC,CAAC,OAAOyC,KAAK,EAAE;QACd,IACE,EAAEA,KAAK,YAAYrF,SAAS,CAAC,IAC7BqF,KAAK,CAACzC,OAAO,IAAI,IAAI,IACrByC,KAAK,CAACC,OAAO,CAAC5D,UAAU,CAAC,QAAQ,CAAC,EAElC,MAAM2D,KAAK;QACb,MAAM/B,MAAM,GAAG,GAAG,IAAIiC,GAAG,CAACF,KAAK,CAACzC,OAAO,CAACkC,GAAG,CAAC,CAACU,QAAQ,CAACC,KAAK,CAAC,CAAC,CAAC,QAAQ;QAEtE,IAAIJ,KAAK,CAACvC,QAAQ,EAAEC,UAAU,IAAI,IAAI,EAAE;UACtC,IAAIsC,KAAK,CAACC,OAAO,KAAK,EAAE,EAAED,KAAK,CAACC,OAAO,GAAG,GAAGhC,MAAM,KAAK+B,KAAK,CAACK,IAAI,EAAE;UACpE,MAAML,KAAK;QACb;QAEA,MAAMN,IAAI,GAAIM,KAAK,CAACvC,QAAQ,CAA2B6C,UAAU;QACjEN,KAAK,CAACC,OAAO,GAAGhC,MAAM;QACtB,MAAMgC,OAAO,GAAGP,IAAI,IAAI,IAAI,GAAG,IAAIM,KAAK,CAACvC,QAAQ,CAAC8C,MAAM,cAAc,GAAGR,UAAU,CAACL,IAAI,CAAC;QACzF,IAAIO,OAAO,KAAK,EAAE,EAAED,KAAK,CAACC,OAAO,IAAI,IAAIA,OAAO,EAAE;QAClD,MAAMD,KAAK;MACb;IACF;EACF,CAAC;EACDd,QAAQ,EAAE;AACZ,CAAC,CAAC;AAEF,OAAO,MAAMsB,qBAAqB,GAAGA,CACnCzE,IAAY,EACZ0E,SAAyD,EACzDC,SAAiB,EACjBC,SAAiB,EACjBC,aAAsB,MACM;EAC5BvC,MAAM,EAAE;IACNtC,IAAI,EAAE,eAAe;IACrB,MAAMuB,WAAWA,CAACC,OAAO,EAAEC,IAAI,EAAE;MAC/B,IAAID,OAAO,CAACiB,OAAO,CAACqC,GAAG,CAAC,iBAAiB,CAAC,EAAE;QAC1CtD,OAAO,CAACiB,OAAO,CAACE,MAAM,CAAC,iBAAiB,CAAC;QACzC,OAAOlB,IAAI,CAACD,OAAO,CAAC;MACtB;MACA,MAAM1B,OAAO,GAAG;QAAEiF,cAAc,EAAE;UAAEC,aAAa,EAAE;YAAE,iBAAiB,EAAE;UAAO;QAAE;MAAE,CAAC;MACpF,MAAM3F,IAAI,GAAG,CAAC,MAAMqF,SAAS,CAAC5E,OAAO,CAAC,EAAE6E,SAAS,EAAEC,SAAS,CAAU;MACtE,IAAI,CAAC5F,eAAe,CAAC,GAAGK,IAAI,CAAC,EAAE;QAC7B,MAAM4E,KAAK,GAAG,IAAI9E,uBAAuB,CAACa,IAAI,EAAE,GAAGX,IAAI,CAAC;QACxD,IAAIwF,aAAa,EAAEtE,OAAO,CAACC,IAAI,CAACyD,KAAK,CAACC,OAAO,CAAC,CAAC,KAC1C,MAAMD,KAAK;MAClB;MACA,OAAOxC,IAAI,CAACD,OAAO,CAAC;IACtB;EACF,CAAC;EACD2B,QAAQ,EAAE;AACZ,CAAC,CAAC;AAEF,OAAO,MAAM8B,uBAAuB,GAAGA,CACrCC,UAAkB,EAClBC,iBAAyB,MACG;EAC5B7C,MAAM,EAAE;IACNtC,IAAI,EAAE,kBAAkB;IACxB,MAAMuB,WAAWA,CAACC,OAAO,EAAEC,IAAI,EAAE;MAAA,IAAA2D,oBAAA;MAC/B,IAAI5D,OAAO,CAACiB,OAAO,CAACC,GAAG,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE;QAC7ClB,OAAO,CAACiB,OAAO,CAACE,MAAM,CAAC,YAAY,CAAC;QACpC,OAAOlB,IAAI,CAACD,OAAO,CAAC;MACtB;MAEA,MAAM6D,SAAS,IAAAD,oBAAA,GAAG5D,OAAO,CAACiB,OAAO,CAACC,GAAG,CAAC,cAAc,CAAC,cAAA0C,oBAAA,cAAAA,oBAAA,GAAIE,GAAG;MAC5D9D,OAAO,CAACiB,OAAO,CAACE,MAAM,CAAC,cAAc,CAAC;MACtC,MAAM4C,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAACC,MAAM,CAAEC,CAAC,IAAKA,CAAC,KAAK,CAACJ,SAAS,CAAC;MAEpF,MAAMK,SAAS,GAAG,IAAIC,KAAK,CAACT,UAAU,CAAC,CACpCU,IAAI,CAAC,CAAC,CAAC,CACPC,GAAG,CAAC,CAACC,CAAC,EAAEC,GAAG,KAAK,CAAC,CAACA,GAAG,GAAG,CAAC,IAAIb,UAAU,KAAK,CAAC,CAAC;MACjD,MAAMc,WAAW,GAAGN,SAAS,CAACO,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,EAAE,CAAC,CAAC;MACxD,MAAMC,aAAa,GAAGV,SAAS,CAACG,GAAG,CAAEQ,CAAC,IAAKC,IAAI,CAACC,KAAK,CAAEF,CAAC,GAAGL,WAAW,GAAIb,iBAAiB,CAAC,CAAC;MAE7F,IAAIlB,KAAK,GAAG,IAAIrF,SAAS,CAAC,2BAA2B,CAAC;MACtD,KAAK,IAAI4H,OAAO,GAAG,CAAC,EAAEA,OAAO,IAAItB,UAAU,EAAEsB,OAAO,IAAI,CAAC,EAAE;QACzD,IAAIA,OAAO,KAAK,CAAC,EAAE;UACjB,MAAMzH,KAAK,CAACqH,aAAa,CAACI,OAAO,GAAG,CAAC,CAAC,CAAC;UACvC,MAAMC,SAAS,GAAG,IAAItC,GAAG,CAAC3C,OAAO,CAACkC,GAAG,CAAC;UACtC+C,SAAS,CAACC,YAAY,CAACzD,GAAG,CAAC,aAAa,EAAEuD,OAAO,CAACpG,QAAQ,CAAC,CAAC,CAAC;UAC7DoB,OAAO,CAACkC,GAAG,GAAG+C,SAAS,CAACrG,QAAQ,CAAC,CAAC;QACpC;QACA,IAAI;UACF,OAAO,MAAMqB,IAAI,CAACD,OAAO,CAAC;QAC5B,CAAC,CAAC,OAAO6E,CAAC,EAAE;UAAA,IAAAM,kBAAA;UACV,IAAI,EAAEN,CAAC,YAAYzH,SAAS,CAAC,EAAE,MAAMyH,CAAC;UACtC,IAAId,kBAAkB,CAACqB,QAAQ,EAAAD,kBAAA,GAACN,CAAC,CAAC3E,QAAQ,EAAE8C,MAAM,cAAAmC,kBAAA,cAAAA,kBAAA,GAAI,CAAC,CAAC,EAAE,MAAMN,CAAC;UACjEpC,KAAK,GAAGoC,CAAC;QACX;MACF;MACA,MAAMpC,KAAK;IACb;EACF,CAAC;EACDd,QAAQ,EAAE;AACZ,CAAC,CAAC","ignoreList":[]}
|
package/es/utils/bignumber.d.ts
CHANGED
package/es/utils/bignumber.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bignumber.js","names":["BigNumber","isBigNumber","number","includes","isNaN","Number","isInteger","ceil","bigNumber","integerValue","ROUND_CEIL"],"sources":["../../src/utils/bignumber.ts"],"sourcesContent":["/**\n * Big Number Helpers\n */\nimport
|
|
1
|
+
{"version":3,"file":"bignumber.js","names":["BigNumber","isBigNumber","number","includes","isNaN","Number","isInteger","ceil","bigNumber","integerValue","ROUND_CEIL"],"sources":["../../src/utils/bignumber.ts"],"sourcesContent":["/**\n * Big Number Helpers\n */\nimport BigNumber from 'bignumber.js';\n\n/**\n * Check if value is BigNumber, Number, BigInt or number string representation\n * @param number - number to check\n */\nexport const isBigNumber = (number: string | number | bigint | BigNumber): boolean => {\n if (typeof number === 'bigint') return true;\n return (\n ['number', 'object', 'string'].includes(typeof number) &&\n // eslint-disable-next-line no-restricted-globals\n (!isNaN(number as number) || Number.isInteger(number) || BigNumber.isBigNumber(number))\n );\n};\n\n/**\n * BigNumber ceil operation\n */\nexport const ceil = (bigNumber: BigNumber): BigNumber =>\n bigNumber.integerValue(BigNumber.ROUND_CEIL);\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,SAAS,MAAM,cAAc;;AAEpC;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAIC,MAA4C,IAAc;EACpF,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE,OAAO,IAAI;EAC3C,OACE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAACC,QAAQ,CAAC,OAAOD,MAAM,CAAC;EACtD;EACC,CAACE,KAAK,CAACF,MAAgB,CAAC,IAAIG,MAAM,CAACC,SAAS,CAACJ,MAAM,CAAC,IAAIF,SAAS,CAACC,WAAW,CAACC,MAAM,CAAC,CAAC;AAE3F,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMK,IAAI,GAAIC,SAAoB,IACvCA,SAAS,CAACC,YAAY,CAACT,SAAS,CAACU,UAAU,CAAC","ignoreList":[]}
|
package/es/utils/bytes.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import
|
|
1
|
+
import BigNumber from 'bignumber.js';
|
|
2
2
|
/**
|
|
3
3
|
* Convert string, number, or BigNumber to byte array
|
|
4
4
|
* @param val - value to convert
|
|
5
5
|
* @param big - enables force conversion to BigNumber
|
|
6
6
|
* @returns Buffer
|
|
7
|
+
* @category utils
|
|
8
|
+
* @deprecated use `Buffer.from(<string>)` or `Buffer.from(<number>.toString(16), 'hex')` instead
|
|
7
9
|
*/
|
|
8
10
|
export declare function toBytes(val?: null | string | number | BigNumber, big?: boolean): Buffer;
|
package/es/utils/bytes.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Buffer as _Buffer } from "buffer";
|
|
2
|
-
import
|
|
2
|
+
import BigNumber from 'bignumber.js';
|
|
3
3
|
import { NoSerializerFoundError, TypeError } from './errors.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -7,6 +7,8 @@ import { NoSerializerFoundError, TypeError } from './errors.js';
|
|
|
7
7
|
* @param val - value to convert
|
|
8
8
|
* @param big - enables force conversion to BigNumber
|
|
9
9
|
* @returns Buffer
|
|
10
|
+
* @category utils
|
|
11
|
+
* @deprecated use `Buffer.from(<string>)` or `Buffer.from(<number>.toString(16), 'hex')` instead
|
|
10
12
|
*/
|
|
11
13
|
// eslint-disable-next-line import/prefer-default-export
|
|
12
14
|
export function toBytes(val, big = false) {
|
package/es/utils/bytes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bytes.js","names":["BigNumber","NoSerializerFoundError","TypeError","toBytes","val","big","_Buffer","from","Number","isInteger","isBigNumber","toFixed","hexString","toString","length"],"sources":["../../src/utils/bytes.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"bytes.js","names":["BigNumber","NoSerializerFoundError","TypeError","toBytes","val","big","_Buffer","from","Number","isInteger","isBigNumber","toFixed","hexString","toString","length"],"sources":["../../src/utils/bytes.ts"],"sourcesContent":["import BigNumber from 'bignumber.js';\nimport { NoSerializerFoundError, TypeError } from './errors.js';\n\n/**\n * Convert string, number, or BigNumber to byte array\n * @param val - value to convert\n * @param big - enables force conversion to BigNumber\n * @returns Buffer\n * @category utils\n * @deprecated use `Buffer.from(<string>)` or `Buffer.from(<number>.toString(16), 'hex')` instead\n */\n// eslint-disable-next-line import/prefer-default-export\nexport function toBytes(val?: null | string | number | BigNumber, big = false): Buffer {\n // Encode a value to bytes.\n // If the value is an int it will be encoded as bytes big endian\n // Raises ValueError if the input is not an int or string\n\n if (val == null) return Buffer.from([]);\n if (Number.isInteger(val) || BigNumber.isBigNumber(val) || big) {\n if (!BigNumber.isBigNumber(val)) val = new BigNumber(val);\n if (!val.isInteger()) throw new TypeError(`Unexpected not integer value: ${val.toFixed()}`);\n let hexString = val.toString(16);\n if (hexString.length % 2 === 1) hexString = `0${hexString}`;\n return Buffer.from(hexString, 'hex');\n }\n if (typeof val === 'string') {\n return Buffer.from(val);\n }\n throw new NoSerializerFoundError();\n}\n"],"mappings":";AAAA,OAAOA,SAAS,MAAM,cAAc;AACpC,SAASC,sBAAsB,EAAEC,SAAS,QAAQ,aAAa;;AAE/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,OAAOA,CAACC,GAAwC,EAAEC,GAAG,GAAG,KAAK,EAAU;EACrF;EACA;EACA;;EAEA,IAAID,GAAG,IAAI,IAAI,EAAE,OAAOE,OAAA,CAAOC,IAAI,CAAC,EAAE,CAAC;EACvC,IAAIC,MAAM,CAACC,SAAS,CAACL,GAAG,CAAC,IAAIJ,SAAS,CAACU,WAAW,CAACN,GAAG,CAAC,IAAIC,GAAG,EAAE;IAC9D,IAAI,CAACL,SAAS,CAACU,WAAW,CAACN,GAAG,CAAC,EAAEA,GAAG,GAAG,IAAIJ,SAAS,CAACI,GAAG,CAAC;IACzD,IAAI,CAACA,GAAG,CAACK,SAAS,CAAC,CAAC,EAAE,MAAM,IAAIP,SAAS,CAAC,iCAAiCE,GAAG,CAACO,OAAO,CAAC,CAAC,EAAE,CAAC;IAC3F,IAAIC,SAAS,GAAGR,GAAG,CAACS,QAAQ,CAAC,EAAE,CAAC;IAChC,IAAID,SAAS,CAACE,MAAM,GAAG,CAAC,KAAK,CAAC,EAAEF,SAAS,GAAG,IAAIA,SAAS,EAAE;IAC3D,OAAON,OAAA,CAAOC,IAAI,CAACK,SAAS,EAAE,KAAK,CAAC;EACtC;EACA,IAAI,OAAOR,GAAG,KAAK,QAAQ,EAAE;IAC3B,OAAOE,OAAA,CAAOC,IAAI,CAACH,GAAG,CAAC;EACzB;EACA,MAAM,IAAIH,sBAAsB,CAAC,CAAC;AACpC","ignoreList":[]}
|
package/es/utils/crypto.d.ts
CHANGED
|
@@ -2,17 +2,45 @@ import { Encoded, Encoding } from './encoder.js';
|
|
|
2
2
|
/**
|
|
3
3
|
* Check if address is valid
|
|
4
4
|
* @param maybeAddress - Address to check
|
|
5
|
+
* @category utils
|
|
6
|
+
* @deprecated Use {@link isEncoded} instead
|
|
5
7
|
*/
|
|
6
8
|
export declare function isAddressValid(maybeAddress: string): maybeAddress is Encoded.AccountAddress;
|
|
7
9
|
/**
|
|
8
10
|
* Check if data is encoded in one of provided encodings
|
|
9
11
|
* @param maybeEncoded - Data to check
|
|
10
12
|
* @param encodings - Rest parameters with encodings to check against
|
|
13
|
+
* @deprecated Use {@link isEncoded} instead
|
|
11
14
|
*/
|
|
12
15
|
export declare function isAddressValid<E extends Encoding>(maybeEncoded: string, ...encodings: E[]): maybeEncoded is Encoded.Generic<E>;
|
|
16
|
+
/**
|
|
17
|
+
* Check if data is encoded in any encoding
|
|
18
|
+
* @param maybeEncoded - Data to check
|
|
19
|
+
* @category utils
|
|
20
|
+
*/
|
|
21
|
+
export declare function ensureEncoded(maybeEncoded: string): asserts maybeEncoded is Encoded.Any;
|
|
22
|
+
/**
|
|
23
|
+
* Check if data is encoded in one of provided encodings
|
|
24
|
+
* @param maybeEncoded - Data to check
|
|
25
|
+
* @param encodings - Rest parameters with encodings to check against
|
|
26
|
+
*/
|
|
27
|
+
export declare function ensureEncoded<E extends Encoding>(maybeEncoded: string, ...encodings: E[]): asserts maybeEncoded is Encoded.Generic<E>;
|
|
28
|
+
/**
|
|
29
|
+
* Check if data is encoded in any encoding
|
|
30
|
+
* @param maybeEncoded - Data to check
|
|
31
|
+
* @category utils
|
|
32
|
+
*/
|
|
33
|
+
export declare function isEncoded(maybeEncoded: string): maybeEncoded is Encoded.Any;
|
|
34
|
+
/**
|
|
35
|
+
* Check if data is encoded in one of provided encodings
|
|
36
|
+
* @param maybeEncoded - Data to check
|
|
37
|
+
* @param encodings - Rest parameters with encodings to check against
|
|
38
|
+
*/
|
|
39
|
+
export declare function isEncoded<E extends Encoding>(maybeEncoded: string, ...encodings: E[]): maybeEncoded is Encoded.Generic<E>;
|
|
13
40
|
/**
|
|
14
41
|
* Generate a random salt (positive integer)
|
|
15
42
|
* @returns random salt
|
|
43
|
+
* @category utils
|
|
16
44
|
*/
|
|
17
45
|
export declare function genSalt(): number;
|
|
18
46
|
/**
|
|
@@ -20,37 +48,42 @@ export declare function genSalt(): number;
|
|
|
20
48
|
* representation in a binary digit representation
|
|
21
49
|
* @param value - Value to encode
|
|
22
50
|
* @returns Encoded number
|
|
51
|
+
* @category utils
|
|
52
|
+
* @deprecated This function is out of the sdk scope. Copy implementation from sdk if necessary.
|
|
23
53
|
*/
|
|
24
54
|
export declare function encodeUnsigned(value: number): Buffer;
|
|
25
55
|
/**
|
|
26
56
|
* Calculate 256bits Blake2b hash of `input`
|
|
27
57
|
* @param input - Data to hash
|
|
28
58
|
* @returns Hash
|
|
59
|
+
* @category utils
|
|
60
|
+
* @deprecated use "blakejs" package directly
|
|
29
61
|
*/
|
|
30
62
|
export declare function hash(input: string | Uint8Array): Buffer;
|
|
31
63
|
/**
|
|
32
|
-
*
|
|
33
|
-
* @category contract
|
|
34
|
-
* @param owner - Address of contract owner
|
|
35
|
-
* @param nonce - Round when contract was created
|
|
36
|
-
* @returns Contract address
|
|
37
|
-
*/
|
|
38
|
-
export declare function encodeContractAddress(owner: Encoded.AccountAddress, nonce: number): Encoded.ContractAddress;
|
|
39
|
-
/**
|
|
40
|
-
* Verify that signature was signed by public key
|
|
64
|
+
* Verify that data was signed by account
|
|
41
65
|
* @param data - Data that was signed
|
|
42
66
|
* @param signature - Signature of data
|
|
43
|
-
* @param address - Address to verify against
|
|
44
|
-
* @returns is data was signed by
|
|
67
|
+
* @param address - Address of account to verify against
|
|
68
|
+
* @returns is data was signed by account
|
|
69
|
+
* @category utils
|
|
70
|
+
*/
|
|
71
|
+
export declare function verifySignature(data: Uint8Array, signature: Uint8Array, address: Encoded.AccountAddress): boolean;
|
|
72
|
+
export declare function encodeVarUInt(value: number): Buffer;
|
|
73
|
+
export declare const messagePrefixLength: Buffer;
|
|
74
|
+
/**
|
|
75
|
+
* Hash message
|
|
76
|
+
* @param message - Message to hash
|
|
77
|
+
* @returns Hash of message
|
|
78
|
+
* @category utils
|
|
45
79
|
*/
|
|
46
|
-
export declare function
|
|
47
|
-
export declare const messagePrefixLength: Uint8Array;
|
|
48
|
-
export declare function messageToHash(message: string): Buffer;
|
|
80
|
+
export declare function hashMessage(message: string): Buffer;
|
|
49
81
|
/**
|
|
50
82
|
* Verify that message was signed by address
|
|
51
83
|
* @param message - Message that was signed
|
|
52
84
|
* @param signature - Signature of message
|
|
53
85
|
* @param address - Address to verify against
|
|
54
86
|
* @returns is data was signed by address
|
|
87
|
+
* @category utils
|
|
55
88
|
*/
|
|
56
|
-
export declare function
|
|
89
|
+
export declare function verifyMessageSignature(message: string, signature: Uint8Array, address: Encoded.AccountAddress): boolean;
|