From 32cf8576e7c9d4733d3d590265c5da4e25a97953 Mon Sep 17 00:00:00 2001 From: Denis Angell Date: Wed, 24 Sep 2025 08:57:24 +0200 Subject: [PATCH 01/22] feature --- .../src/enums/definitions.json | 498 +++++++------- .../src/serdes/binary-serializer.ts | 4 +- .../src/types/account-id.ts | 5 + .../ripple-binary-codec/src/types/amount.ts | 6 +- .../ripple-binary-codec/src/types/blob.ts | 6 +- .../ripple-binary-codec/src/types/currency.ts | 5 + .../ripple-binary-codec/src/types/data.ts | 496 ++++++++++++++ .../ripple-binary-codec/src/types/dataType.ts | 178 +++++ .../ripple-binary-codec/src/types/hash-128.ts | 5 + .../ripple-binary-codec/src/types/hash-160.ts | 5 + .../ripple-binary-codec/src/types/hash-192.ts | 5 + .../ripple-binary-codec/src/types/hash-256.ts | 5 + .../ripple-binary-codec/src/types/index.ts | 6 + .../ripple-binary-codec/src/types/issue.ts | 6 +- .../ripple-binary-codec/src/types/json.ts | 641 ++++++++++++++++++ .../ripple-binary-codec/src/types/path-set.ts | 6 +- .../src/types/serialized-type.ts | 149 ++++ .../ripple-binary-codec/src/types/st-array.ts | 6 +- .../src/types/st-number.ts | 6 +- .../src/types/st-object.ts | 14 +- .../ripple-binary-codec/src/types/uint-16.ts | 5 + .../ripple-binary-codec/src/types/uint-32.ts | 5 + .../ripple-binary-codec/src/types/uint-64.ts | 5 + .../ripple-binary-codec/src/types/uint-8.ts | 5 + .../src/types/vector-256.ts | 6 +- .../src/types/xchain-bridge.ts | 6 +- .../ripple-binary-codec/test/st-data.test.ts | 486 +++++++++++++ packages/xrpl/src/models/common/index.ts | 40 ++ .../xrpl/src/models/ledger/AccountRoot.ts | 6 + packages/xrpl/src/models/ledger/Contract.ts | 25 + .../xrpl/src/models/ledger/ContractData.ts | 20 + .../xrpl/src/models/ledger/ContractSource.ts | 67 ++ .../xrpl/src/models/methods/contractInfo.ts | 58 ++ .../xrpl/src/models/transactions/common.ts | 23 + .../src/models/transactions/contractCall.ts | 42 ++ .../models/transactions/contractClawback.ts | 35 + .../src/models/transactions/contractCreate.ts | 74 ++ .../src/models/transactions/contractDelete.ts | 27 + .../src/models/transactions/contractModify.ts | 52 ++ .../models/transactions/contractUserDelete.ts | 42 ++ .../xrpl/src/models/transactions/index.ts | 10 + .../src/models/transactions/transaction.ts | 39 ++ .../xrpl/test/models/contractCall.test.ts | 130 ++++ .../xrpl/test/models/contractClawback.test.ts | 67 ++ .../xrpl/test/models/contractCreate.test.ts | 112 +++ .../xrpl/test/models/contractDelete.test.ts | 52 ++ .../xrpl/test/models/contractModify.test.ts | 127 ++++ .../test/models/contractUserDelete.test.ts | 127 ++++ packages/xrpl/tools/generateModels.js | 12 +- 49 files changed, 3483 insertions(+), 274 deletions(-) create mode 100644 packages/ripple-binary-codec/src/types/data.ts create mode 100644 packages/ripple-binary-codec/src/types/dataType.ts create mode 100644 packages/ripple-binary-codec/src/types/json.ts create mode 100644 packages/ripple-binary-codec/test/st-data.test.ts create mode 100644 packages/xrpl/src/models/ledger/Contract.ts create mode 100644 packages/xrpl/src/models/ledger/ContractData.ts create mode 100644 packages/xrpl/src/models/ledger/ContractSource.ts create mode 100644 packages/xrpl/src/models/methods/contractInfo.ts create mode 100644 packages/xrpl/src/models/transactions/contractCall.ts create mode 100644 packages/xrpl/src/models/transactions/contractClawback.ts create mode 100644 packages/xrpl/src/models/transactions/contractCreate.ts create mode 100644 packages/xrpl/src/models/transactions/contractDelete.ts create mode 100644 packages/xrpl/src/models/transactions/contractModify.ts create mode 100644 packages/xrpl/src/models/transactions/contractUserDelete.ts create mode 100644 packages/xrpl/test/models/contractCall.test.ts create mode 100644 packages/xrpl/test/models/contractClawback.test.ts create mode 100644 packages/xrpl/test/models/contractCreate.test.ts create mode 100644 packages/xrpl/test/models/contractDelete.test.ts create mode 100644 packages/xrpl/test/models/contractModify.test.ts create mode 100644 packages/xrpl/test/models/contractUserDelete.test.ts diff --git a/packages/ripple-binary-codec/src/enums/definitions.json b/packages/ripple-binary-codec/src/enums/definitions.json index ccd7b7990f..52bb3a5094 100644 --- a/packages/ripple-binary-codec/src/enums/definitions.json +++ b/packages/ripple-binary-codec/src/enums/definitions.json @@ -130,46 +130,6 @@ "type": "UInt16" } ], - [ - "HookStateChangeCount", - { - "isSerialized": true, - "isSigningField": true, - "isVLEncoded": false, - "nth": 17, - "type": "UInt16" - } - ], - [ - "HookEmitCount", - { - "isSerialized": true, - "isSigningField": true, - "isVLEncoded": false, - "nth": 18, - "type": "UInt16" - } - ], - [ - "HookExecutionIndex", - { - "isSerialized": true, - "isSigningField": true, - "isVLEncoded": false, - "nth": 19, - "type": "UInt16" - } - ], - [ - "HookApiVersion", - { - "isSerialized": true, - "isSigningField": true, - "isVLEncoded": false, - "nth": 20, - "type": "UInt16" - } - ], [ "LedgerFixType", { @@ -630,26 +590,6 @@ "type": "UInt32" } ], - [ - "HookStateCount", - { - "isSerialized": true, - "isSigningField": true, - "isVLEncoded": false, - "nth": 45, - "type": "UInt32" - } - ], - [ - "EmitGeneration", - { - "isSerialized": true, - "isSigningField": true, - "isVLEncoded": false, - "nth": 46, - "type": "UInt32" - } - ], [ "VoteWeight", { @@ -850,6 +790,66 @@ "type": "UInt32" } ], + [ + "ExtensionComputeLimit", + { + "isSerialized": true, + "isSigningField": true, + "isVLEncoded": false, + "nth": 69, + "type": "UInt32" + } + ], + [ + "ExtensionSizeLimit", + { + "isSerialized": true, + "isSigningField": true, + "isVLEncoded": false, + "nth": 70, + "type": "UInt32" + } + ], + [ + "GasPrice", + { + "isSerialized": true, + "isSigningField": true, + "isVLEncoded": false, + "nth": 71, + "type": "UInt32" + } + ], + [ + "ComputationAllowance", + { + "isSerialized": true, + "isSigningField": true, + "isVLEncoded": false, + "nth": 72, + "type": "UInt32" + } + ], + [ + "GasUsed", + { + "isSerialized": true, + "isSigningField": true, + "isVLEncoded": false, + "nth": 73, + "type": "UInt32" + } + ], + [ + "ParameterFlag", + { + "isSerialized": true, + "isSigningField": true, + "isVLEncoded": false, + "nth": 74, + "type": "UInt32" + } + ], [ "IndexNext", { @@ -980,36 +980,6 @@ "type": "UInt64" } ], - [ - "HookOn", - { - "isSerialized": true, - "isSigningField": true, - "isVLEncoded": false, - "nth": 16, - "type": "UInt64" - } - ], - [ - "HookInstructionCount", - { - "isSerialized": true, - "isSigningField": true, - "isVLEncoded": false, - "nth": 17, - "type": "UInt64" - } - ], - [ - "HookReturnCode", - { - "isSerialized": true, - "isSigningField": true, - "isVLEncoded": false, - "nth": 18, - "type": "UInt64" - } - ], [ "ReferenceCount", { @@ -1421,92 +1391,72 @@ } ], [ - "HookStateKey", - { - "isSerialized": true, - "isSigningField": true, - "isVLEncoded": false, - "nth": 30, - "type": "Hash256" - } - ], - [ - "HookHash", - { - "isSerialized": true, - "isSigningField": true, - "isVLEncoded": false, - "nth": 31, - "type": "Hash256" - } - ], - [ - "HookNamespace", + "DomainID", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 32, + "nth": 34, "type": "Hash256" } ], [ - "HookSetTxnID", + "VaultID", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 33, + "nth": 35, "type": "Hash256" } ], [ - "DomainID", + "ParentBatchID", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 34, + "nth": 36, "type": "Hash256" } ], [ - "VaultID", + "LoanBrokerID", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 35, + "nth": 37, "type": "Hash256" } ], [ - "ParentBatchID", + "LoanID", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 36, + "nth": 38, "type": "Hash256" } ], [ - "LoanBrokerID", + "ContractHash", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 37, + "nth": 39, "type": "Hash256" } ], [ - "LoanID", + "ContractID", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 38, + "nth": 40, "type": "Hash256" } ], @@ -2001,102 +1951,92 @@ } ], [ - "HookStateData", - { - "isSerialized": true, - "isSigningField": true, - "isVLEncoded": true, - "nth": 22, - "type": "Blob" - } - ], - [ - "HookReturnString", + "DIDDocument", { "isSerialized": true, "isSigningField": true, "isVLEncoded": true, - "nth": 23, + "nth": 26, "type": "Blob" } ], [ - "HookParameterName", + "Data", { "isSerialized": true, "isSigningField": true, "isVLEncoded": true, - "nth": 24, + "nth": 27, "type": "Blob" } ], [ - "HookParameterValue", + "AssetClass", { "isSerialized": true, "isSigningField": true, "isVLEncoded": true, - "nth": 25, + "nth": 28, "type": "Blob" } ], [ - "DIDDocument", + "Provider", { "isSerialized": true, "isSigningField": true, "isVLEncoded": true, - "nth": 26, + "nth": 29, "type": "Blob" } ], [ - "Data", + "MPTokenMetadata", { "isSerialized": true, "isSigningField": true, "isVLEncoded": true, - "nth": 27, + "nth": 30, "type": "Blob" } ], [ - "AssetClass", + "CredentialType", { "isSerialized": true, "isSigningField": true, "isVLEncoded": true, - "nth": 28, + "nth": 31, "type": "Blob" } ], [ - "Provider", + "FinishFunction", { "isSerialized": true, "isSigningField": true, "isVLEncoded": true, - "nth": 29, + "nth": 32, "type": "Blob" } ], [ - "MPTokenMetadata", + "ContractCode", { "isSerialized": true, "isSigningField": true, "isVLEncoded": true, - "nth": 30, + "nth": 33, "type": "Blob" } ], [ - "CredentialType", + "FunctionName", { "isSerialized": true, "isSigningField": true, "isVLEncoded": true, - "nth": 31, + "nth": 34, "type": "Blob" } ], @@ -2210,16 +2150,6 @@ "type": "AccountID" } ], - [ - "HookAccount", - { - "isSerialized": true, - "isSigningField": true, - "isVLEncoded": true, - "nth": 16, - "type": "AccountID" - } - ], [ "OtherChainSource", { @@ -2310,6 +2240,16 @@ "type": "AccountID" } ], + [ + "ContractAccount", + { + "isSerialized": true, + "isSigningField": true, + "isVLEncoded": true, + "nth": 27, + "type": "AccountID" + } + ], [ "Number", { @@ -2490,6 +2430,16 @@ "type": "Int32" } ], + [ + "WasmReturnCode", + { + "isSerialized": true, + "isSigningField": true, + "isVLEncoded": false, + "nth": 2, + "type": "Int32" + } + ], [ "TransactionMetaData", { @@ -2610,16 +2560,6 @@ "type": "STObject" } ], - [ - "Hook", - { - "isSerialized": true, - "isSigningField": true, - "isVLEncoded": false, - "nth": 14, - "type": "STObject" - } - ], [ "Permission", { @@ -2661,182 +2601,172 @@ } ], [ - "EmittedTxn", + "VoteEntry", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 20, + "nth": 25, "type": "STObject" } ], [ - "HookExecution", + "AuctionSlot", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 21, + "nth": 26, "type": "STObject" } ], [ - "HookDefinition", + "AuthAccount", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 22, + "nth": 27, "type": "STObject" } ], [ - "HookParameter", + "XChainClaimProofSig", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 23, + "nth": 28, "type": "STObject" } ], [ - "HookGrant", + "XChainCreateAccountProofSig", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 24, + "nth": 29, "type": "STObject" } ], [ - "VoteEntry", + "XChainClaimAttestationCollectionElement", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 25, + "nth": 30, "type": "STObject" } ], [ - "AuctionSlot", + "XChainCreateAccountAttestationCollectionElement", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 26, + "nth": 31, "type": "STObject" } ], [ - "AuthAccount", + "PriceData", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 27, + "nth": 32, "type": "STObject" } ], [ - "XChainClaimProofSig", + "Credential", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 28, + "nth": 33, "type": "STObject" } ], [ - "XChainCreateAccountProofSig", + "RawTransaction", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 29, + "nth": 34, "type": "STObject" } ], [ - "XChainClaimAttestationCollectionElement", + "BatchSigner", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 30, + "nth": 35, "type": "STObject" } ], [ - "XChainCreateAccountAttestationCollectionElement", + "Book", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 31, + "nth": 36, "type": "STObject" } ], [ - "PriceData", + "CounterpartySignature", { "isSerialized": true, - "isSigningField": true, + "isSigningField": false, "isVLEncoded": false, - "nth": 32, + "nth": 37, "type": "STObject" } ], [ - "Credential", + "Function", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 33, + "nth": 38, "type": "STObject" } ], [ - "RawTransaction", + "InstanceParameter", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 34, + "nth": 39, "type": "STObject" } ], [ - "BatchSigner", + "InstanceParameterValue", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 35, + "nth": 40, "type": "STObject" } ], [ - "Book", + "Parameter", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 36, - "type": "STObject" - } - ], - [ - "CounterpartySignature", - { - "isSerialized": true, - "isSigningField": false, - "isVLEncoded": false, - "nth": 37, + "nth": 41, "type": "STObject" } ], @@ -2920,16 +2850,6 @@ "type": "STArray" } ], - [ - "Hooks", - { - "isSerialized": true, - "isSigningField": true, - "isVLEncoded": false, - "nth": 11, - "type": "STArray" - } - ], [ "VoteSlots", { @@ -2971,132 +2891,142 @@ } ], [ - "HookExecutions", + "XChainClaimAttestations", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 18, + "nth": 21, "type": "STArray" } ], [ - "HookParameters", + "XChainCreateAccountAttestations", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 19, + "nth": 22, "type": "STArray" } ], [ - "HookGrants", + "PriceDataSeries", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 20, + "nth": 24, "type": "STArray" } ], [ - "XChainClaimAttestations", + "AuthAccounts", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 21, + "nth": 25, "type": "STArray" } ], [ - "XChainCreateAccountAttestations", + "AuthorizeCredentials", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 22, + "nth": 26, "type": "STArray" } ], [ - "PriceDataSeries", + "UnauthorizeCredentials", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 24, + "nth": 27, "type": "STArray" } ], [ - "AuthAccounts", + "AcceptedCredentials", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 25, + "nth": 28, "type": "STArray" } ], [ - "AuthorizeCredentials", + "Permissions", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 26, + "nth": 29, "type": "STArray" } ], [ - "UnauthorizeCredentials", + "RawTransactions", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 27, + "nth": 30, "type": "STArray" } ], [ - "AcceptedCredentials", + "BatchSigners", + { + "isSerialized": true, + "isSigningField": false, + "isVLEncoded": false, + "nth": 31, + "type": "STArray" + } + ], + [ + "Functions", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 28, + "nth": 32, "type": "STArray" } ], [ - "Permissions", + "InstanceParameters", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 29, + "nth": 33, "type": "STArray" } ], [ - "RawTransactions", + "InstanceParameterValues", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 30, + "nth": 34, "type": "STArray" } ], [ - "BatchSigners", + "Parameters", { "isSerialized": true, - "isSigningField": false, + "isSigningField": true, "isVLEncoded": false, - "nth": 31, + "nth": 35, "type": "STArray" } ], @@ -3171,32 +3101,32 @@ } ], [ - "HookResult", + "WasLockingChainSend", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 18, + "nth": 19, "type": "UInt8" } ], [ - "WasLockingChainSend", + "WithdrawalPolicy", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 19, + "nth": 20, "type": "UInt8" } ], [ - "WithdrawalPolicy", + "ContractResult", { "isSerialized": true, "isSigningField": true, "isVLEncoded": false, - "nth": 20, + "nth": 21, "type": "UInt8" } ], @@ -3390,6 +3320,36 @@ "type": "Currency" } ], + [ + "ParameterValue", + { + "isSerialized": true, + "isSigningField": true, + "isVLEncoded": false, + "nth": 1, + "type": "Data" + } + ], + [ + "ParameterType", + { + "isSerialized": true, + "isSigningField": true, + "isVLEncoded": false, + "nth": 1, + "type": "Datatype" + } + ], + [ + "ContractJson", + { + "isSerialized": true, + "isSigningField": true, + "isVLEncoded": false, + "nth": 1, + "type": "Json" + } + ], [ "Transaction", { @@ -3437,6 +3397,9 @@ "Amendments": 102, "Bridge": 105, "Check": 67, + "Contract": 134, + "ContractData": 135, + "ContractSource": 133, "Credential": 129, "DID": 73, "Delegate": 131, @@ -3494,6 +3457,7 @@ "tecINSUF_RESERVE_LINE": 122, "tecINSUF_RESERVE_OFFER": 123, "tecINTERNAL": 144, + "tecINVALID_PARAMETERS": 200, "tecINVALID_UPDATE_TIME": 188, "tecINVARIANT_FAILED": 147, "tecKILLED": 150, @@ -3531,6 +3495,7 @@ "tecUNFUNDED_AMM": 162, "tecUNFUNDED_OFFER": 103, "tecUNFUNDED_PAYMENT": 104, + "tecWASM_REJECTED": 199, "tecWRONG_ASSET": 194, "tecXCHAIN_ACCOUNT_CREATE_PAST": 181, "tecXCHAIN_ACCOUNT_CREATE_TOO_MANY": 182, @@ -3569,8 +3534,10 @@ "tefNOT_MULTI_SIGNING": -184, "tefNO_AUTH_REQUIRED": -191, "tefNO_TICKET": -180, + "tefNO_WASM": -177, "tefPAST_SEQ": -190, "tefTOO_BIG": -181, + "tefWASM_FIELD_NOT_INCLUDED": -176, "tefWRONG_PRIOR": -189, "telBAD_DOMAIN": -398, @@ -3618,6 +3585,7 @@ "temBAD_TICK_SIZE": -269, "temBAD_TRANSFER_FEE": -251, "temBAD_TRANSFER_RATE": -280, + "temBAD_WASM": -249, "temBAD_WEIGHT": -270, "temCANNOT_PREAUTH_SELF": -267, "temDISABLED": -273, @@ -3633,6 +3601,7 @@ "temREDUNDANT": -275, "temRIPPLE_EMPTY": -274, "temSEQ_AND_TICKET": -263, + "temTEMP_DISABLED": -248, "temUNCERTAIN": -265, "temUNKNOWN": -264, "temXCHAIN_BAD_PROOF": -259, @@ -3675,6 +3644,12 @@ "CheckCash": 17, "CheckCreate": 16, "Clawback": 30, + "ContractCall": 90, + "ContractClawback": 88, + "ContractCreate": 85, + "ContractDelete": 87, + "ContractModify": 86, + "ContractUserDelete": 89, "CredentialAccept": 59, "CredentialCreate": 58, "CredentialDelete": 60, @@ -3743,6 +3718,8 @@ "Amount": 6, "Blob": 7, "Currency": 26, + "Data": 27, + "Datatype": 28, "Done": -1, "Hash128": 4, "Hash160": 17, @@ -3751,6 +3728,7 @@ "Int32": 10, "Int64": 11, "Issue": 24, + "Json": 29, "LedgerEntry": 10002, "Metadata": 10004, "NotPresent": 0, diff --git a/packages/ripple-binary-codec/src/serdes/binary-serializer.ts b/packages/ripple-binary-codec/src/serdes/binary-serializer.ts index 08de8ad093..cb5d62211e 100644 --- a/packages/ripple-binary-codec/src/serdes/binary-serializer.ts +++ b/packages/ripple-binary-codec/src/serdes/binary-serializer.ts @@ -99,7 +99,7 @@ class BinarySerializer { * * @param length the length of the bytes */ - private encodeVariableLength(length: number): Uint8Array { + static encodeVariableLength(length: number): Uint8Array { const lenBytes = new Uint8Array(3) if (length <= 192) { lenBytes[0] = length @@ -158,7 +158,7 @@ class BinarySerializer { // this part doesn't happen for the Account field in a UNLModify transaction value.toBytesSink(bytes) } - this.put(this.encodeVariableLength(bytes.getLength())) + this.put(BinarySerializer.encodeVariableLength(bytes.getLength())) this.writeBytesList(bytes) } } diff --git a/packages/ripple-binary-codec/src/types/account-id.ts b/packages/ripple-binary-codec/src/types/account-id.ts index 8bfa2c59dd..37d7b6b750 100644 --- a/packages/ripple-binary-codec/src/types/account-id.ts +++ b/packages/ripple-binary-codec/src/types/account-id.ts @@ -6,6 +6,7 @@ import { } from 'ripple-address-codec' import { Hash160 } from './hash-160' import { hexToBytes } from '@xrplf/isomorphic/utils' +import { SerializedTypeID } from './serialized-type' const HEX_REGEX = /^[A-F0-9]{40}$/ @@ -81,6 +82,10 @@ class AccountID extends Hash160 { toBase58(): string { return encodeAccountID(this.bytes) } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_ACCOUNT + } } export { AccountID } diff --git a/packages/ripple-binary-codec/src/types/amount.ts b/packages/ripple-binary-codec/src/types/amount.ts index 44fb567441..d133bf4102 100644 --- a/packages/ripple-binary-codec/src/types/amount.ts +++ b/packages/ripple-binary-codec/src/types/amount.ts @@ -2,7 +2,7 @@ import { BinaryParser } from '../serdes/binary-parser' import { AccountID } from './account-id' import { Currency } from './currency' -import { JsonObject, SerializedType } from './serialized-type' +import { JsonObject, SerializedType, SerializedTypeID } from './serialized-type' import BigNumber from 'bignumber.js' import { bytesToHex, concat, hexToBytes } from '@xrplf/isomorphic/utils' import { readUInt32BE, writeUInt32BE } from '../utils' @@ -357,6 +357,10 @@ class Amount extends SerializedType { private isIOU(): boolean { return (this.bytes[0] & 0x80) !== 0 } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_AMOUNT + } } export { Amount, AmountObject } diff --git a/packages/ripple-binary-codec/src/types/blob.ts b/packages/ripple-binary-codec/src/types/blob.ts index 36bd93f94a..19a4b35679 100644 --- a/packages/ripple-binary-codec/src/types/blob.ts +++ b/packages/ripple-binary-codec/src/types/blob.ts @@ -1,4 +1,4 @@ -import { SerializedType } from './serialized-type' +import { SerializedType, SerializedTypeID } from './serialized-type' import { BinaryParser } from '../serdes/binary-parser' import { hexToBytes } from '@xrplf/isomorphic/utils' @@ -41,6 +41,10 @@ class Blob extends SerializedType { throw new Error('Cannot construct Blob from value given') } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_VL + } } export { Blob } diff --git a/packages/ripple-binary-codec/src/types/currency.ts b/packages/ripple-binary-codec/src/types/currency.ts index d6c5a1c1ed..e8cdbc9740 100644 --- a/packages/ripple-binary-codec/src/types/currency.ts +++ b/packages/ripple-binary-codec/src/types/currency.ts @@ -1,5 +1,6 @@ import { Hash160 } from './hash-160' import { bytesToHex, hexToBytes, hexToString } from '@xrplf/isomorphic/utils' +import { SerializedTypeID } from './serialized-type' const XRP_HEX_REGEX = /^0{40}$/ const ISO_REGEX = /^[A-Z0-9a-z?!@#$%^&*(){}[\]|]{3}$/ @@ -135,6 +136,10 @@ class Currency extends Hash160 { } return bytesToHex(this.bytes) } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_CURRENCY + } } export { Currency } diff --git a/packages/ripple-binary-codec/src/types/data.ts b/packages/ripple-binary-codec/src/types/data.ts new file mode 100644 index 0000000000..ab8536d399 --- /dev/null +++ b/packages/ripple-binary-codec/src/types/data.ts @@ -0,0 +1,496 @@ +/* eslint-disable max-lines */ +/* eslint-disable complexity */ +import { BinaryParser } from '../serdes/binary-parser' +import { + JsonObject, + SerializedType, + SerializedTypeID, + TYPE_ID_TO_STRING, + TYPE_STRING_TO_ID, + TYPE_NUMBER_TO_ID, +} from './serialized-type' +import { readUInt16BE, writeUInt16BE } from '../utils' +import { bytesToHex, concat } from '@xrplf/isomorphic/utils' +import { Hash128 } from './hash-128' +import { Hash160 } from './hash-160' +import { Hash192 } from './hash-192' +import { Hash256 } from './hash-256' +import { AccountID } from './account-id' +import { Amount, AmountObject } from './amount' +import { Blob } from './blob' +import { Currency } from './currency' +import { STNumber } from './st-number' +import { Issue, IssueObject } from './issue' +import { UInt8 } from './uint-8' +import { UInt16 } from './uint-16' +import { UInt32 } from './uint-32' +import { UInt64 } from './uint-64' +import { BinarySerializer } from '../binary' + +/** + * Interface for Data JSON representation + */ +interface DataJSON extends JsonObject { + type: string + value: string | number | JsonObject +} + +/** + * Type union for all possible data values + */ +type DataValue = + | number + | string + | bigint + | Uint8Array + | UInt8 + | UInt16 + | UInt32 + | UInt64 + | Hash128 + | Hash160 + | Hash192 + | Hash256 + | AccountID + | Amount + | Blob + | Currency + | STNumber + | Issue + +/** + * STData: Encodes XRPL's "Data" type. + * + * This type wraps both a SerializedTypeID and the actual data value. + * It's encoded as a 2-byte type ID followed by the serialized data. + * + * Usage: + * Data.from({ type: "AMOUNT", value: "1000000" }) + * Data.from({ type: "UINT64", value: "123456789" }) + * Data.fromParser(parser) + */ +class Data extends SerializedType { + static readonly ZERO_DATA: Data = new Data( + concat([ + new Uint8Array([0x00, 0x01]), // Type ID for UINT16 (SerializedTypeID.STI_UINT16 = 1) as uint16 + new Uint8Array([0x00, 0x00]), // Value: two zero bytes for UINT16 + ]), + ) + + /** + * Construct Data from bytes + * @param bytes - Uint8Array containing type ID and data + */ + constructor(bytes: Uint8Array) { + super(bytes ?? Data.ZERO_DATA.bytes) + } + + /** + * Create Data from various input types + * + * @param value - Can be: + * - Data instance (returns as-is) + * - DataJSON object with 'type' and 'value' fields + * @returns Data instance + * @throws Error if value type is not supported + */ + static from(value: unknown): Data { + if (value instanceof Data) { + return value + } + + if ( + typeof value === 'object' && + value !== null && + 'type' in value && + 'value' in value + ) { + const json = value as DataJSON + return Data.fromJSON(json) + } + + throw new Error('Data.from: value must be Data instance or DataJSON object') + } + + /** + * Create Data from JSON representation + * + * @param json - Object with 'type' and 'value' fields + * @returns Data instance + * @throws Error if type is not supported + */ + static fromJSON(json: DataJSON): Data { + const typeId = TYPE_STRING_TO_ID[json.type] + if (typeId === undefined) { + throw new Error(`Data: unsupported type string: ${json.type}`) + } + + let dataValue: DataValue + let dataBytes: Uint8Array + + switch (typeId) { + case SerializedTypeID.STI_UINT8: { + const val = + typeof json.value === 'string' + ? parseInt(json.value, 10) + : typeof json.value === 'number' + ? json.value + : Number(json.value) + if ( + typeof val !== 'number' || + Number.isNaN(val) || + val < 0 || + val > 255 + ) { + throw new Error('UINT8 value out of range') + } + dataValue = UInt8.from(val) + dataBytes = (dataValue as UInt8).toBytes() + break + } + + case SerializedTypeID.STI_UINT16: { + const val = + typeof json.value === 'string' + ? parseInt(json.value, 10) + : typeof json.value === 'number' + ? json.value + : Number(json.value) + if ( + typeof val !== 'number' || + Number.isNaN(val) || + val < 0 || + val > 65535 + ) { + throw new Error('UINT16 value out of range') + } + dataValue = UInt16.from(val) + dataBytes = (dataValue as UInt16).toBytes() + break + } + + case SerializedTypeID.STI_UINT32: { + const val = + typeof json.value === 'string' + ? parseInt(json.value, 10) + : typeof json.value === 'number' + ? json.value + : Number(json.value) + dataValue = UInt32.from(val) + dataBytes = (dataValue as UInt32).toBytes() + break + } + + case SerializedTypeID.STI_UINT64: { + const val = + typeof json.value === 'string' ? json.value : json.value.toString() + dataValue = UInt64.from(val) + dataBytes = (dataValue as UInt64).toBytes() + break + } + + case SerializedTypeID.STI_UINT128: { + const val = + typeof json.value === 'string' ? json.value : json.value.toString() + dataValue = Hash128.from(val) + dataBytes = (dataValue as Hash128).toBytes() + break + } + + case SerializedTypeID.STI_UINT160: { + const val = + typeof json.value === 'string' ? json.value : json.value.toString() + dataValue = Hash160.from(val) + dataBytes = (dataValue as Hash160).toBytes() + break + } + + case SerializedTypeID.STI_UINT192: { + const val = + typeof json.value === 'string' ? json.value : json.value.toString() + dataValue = Hash192.from(val) + dataBytes = (dataValue as Hash192).toBytes() + break + } + + case SerializedTypeID.STI_UINT256: { + const val = + typeof json.value === 'string' ? json.value : json.value.toString() + dataValue = Hash256.from(val) + dataBytes = (dataValue as Hash256).toBytes() + break + } + + case SerializedTypeID.STI_VL: { + const val = + typeof json.value === 'string' ? json.value : json.value.toString() + dataValue = Blob.from(val) + dataBytes = dataValue.toBytes() + const lengthBytes = BinarySerializer.encodeVariableLength( + dataBytes.length, + ) + dataBytes = concat([lengthBytes, dataBytes]) + break + } + + case SerializedTypeID.STI_ACCOUNT: { + dataValue = AccountID.from( + typeof json.value === 'string' ? json.value : json.value.toString(), + ) + dataBytes = (dataValue as AccountID).toBytes() + dataBytes = concat([new Uint8Array([0x14]), dataBytes]) + break + } + + case SerializedTypeID.STI_AMOUNT: { + dataValue = Amount.from(json.value as AmountObject) + dataBytes = (dataValue as Amount).toBytes() + break + } + + case SerializedTypeID.STI_ISSUE: { + dataValue = Issue.from(json.value as IssueObject) + dataBytes = (dataValue as Issue).toBytes() + break + } + + case SerializedTypeID.STI_CURRENCY: { + const val = + typeof json.value === 'string' ? json.value : json.value.toString() + dataValue = Currency.from(val) + dataBytes = (dataValue as Currency).toBytes() + break + } + + case SerializedTypeID.STI_NUMBER: { + dataValue = STNumber.from(json.value) + dataBytes = (dataValue as STNumber).toBytes() + break + } + + default: + throw new Error(`Data.fromJSON(): unsupported type ID: ${typeId}`) + } + + // Combine type header with data bytes + const typeBytes = new Uint8Array(2) + writeUInt16BE(typeBytes, typeId, 0) + const fullBytes = concat([typeBytes, dataBytes]) + return new Data(fullBytes) + } + + /** + * Read Data from a BinaryParser stream + * + * @param parser - BinaryParser positioned at the start of Data + * @returns Data instance + */ + static fromParser(parser: BinaryParser): Data { + // Read the 2-byte type ID + const typeBytes = parser.read(2) + const typeId = TYPE_NUMBER_TO_ID[readUInt16BE(typeBytes, 0)] + + let dataValue: DataValue + let dataBytes: Uint8Array + + switch (typeId) { + case SerializedTypeID.STI_UINT8: + dataValue = UInt8.fromParser(parser) + dataBytes = (dataValue as UInt8).toBytes() + break + + case SerializedTypeID.STI_UINT16: + dataValue = UInt16.fromParser(parser) + dataBytes = (dataValue as UInt16).toBytes() + break + + case SerializedTypeID.STI_UINT32: + dataValue = UInt32.fromParser(parser) + dataBytes = (dataValue as UInt32).toBytes() + break + + case SerializedTypeID.STI_UINT64: + dataValue = UInt64.fromParser(parser) + dataBytes = (dataValue as UInt64).toBytes() + break + + case SerializedTypeID.STI_UINT128: + dataValue = Hash128.fromParser(parser) + dataBytes = (dataValue as Hash128).toBytes() + break + + case SerializedTypeID.STI_UINT160: + dataValue = Hash160.fromParser(parser) + dataBytes = (dataValue as Hash160).toBytes() + break + + case SerializedTypeID.STI_UINT192: + dataValue = Hash192.fromParser(parser) + dataBytes = (dataValue as Hash192).toBytes() + break + + case SerializedTypeID.STI_UINT256: + dataValue = Hash256.fromParser(parser) + dataBytes = (dataValue as Hash256).toBytes() + break + + case SerializedTypeID.STI_VL: + dataValue = Blob.fromParser(parser, parser.readVariableLengthLength()) + dataBytes = dataValue.toBytes() + break + + case SerializedTypeID.STI_ACCOUNT: + parser.skip(1) + dataValue = AccountID.fromParser(parser) + dataBytes = (dataValue as AccountID).toBytes() + break + + case SerializedTypeID.STI_AMOUNT: + dataValue = Amount.fromParser(parser) + dataBytes = (dataValue as Amount).toBytes() + break + + case SerializedTypeID.STI_ISSUE: + dataValue = Issue.fromParser(parser) + dataBytes = (dataValue as Issue).toBytes() + break + + case SerializedTypeID.STI_CURRENCY: + dataValue = Currency.fromParser(parser) + dataBytes = (dataValue as Currency).toBytes() + break + + case SerializedTypeID.STI_NUMBER: + dataValue = STNumber.fromParser(parser) + dataBytes = (dataValue as STNumber).toBytes() + break + + default: + throw new Error(`Data: unsupported type ID when parsing: ${typeId}`) + } + + const fullBytes = concat([typeBytes, dataBytes]) + return new Data(fullBytes) + } + + /** + * Get the inner SerializedTypeID + * + * @returns The inner type ID + */ + getInnerType(): SerializedTypeID { + return TYPE_NUMBER_TO_ID[readUInt16BE(this.bytes, 0)] + } + + /** + * Get the string representation of the inner type + * + * @returns String name of the type + */ + getInnerTypeString(): string { + const innerType = this.getInnerType() + return TYPE_ID_TO_STRING[innerType] || innerType.toString() + } + + /** + * Get the data value + * + * @returns The stored data value + */ + getValue(): DataValue { + const innerType = this.getInnerType() + const parser = new BinaryParser(bytesToHex(this.bytes.slice(2))) + + switch (innerType) { + case SerializedTypeID.STI_UINT8: + return UInt8.fromParser(parser) + case SerializedTypeID.STI_UINT16: + return UInt16.fromParser(parser) + case SerializedTypeID.STI_UINT32: + return UInt32.fromParser(parser) + case SerializedTypeID.STI_UINT64: + return UInt64.fromParser(parser) + case SerializedTypeID.STI_UINT128: + return Hash128.fromParser(parser) + case SerializedTypeID.STI_UINT160: + return Hash160.fromParser(parser) + case SerializedTypeID.STI_UINT192: + return Hash192.fromParser(parser) + case SerializedTypeID.STI_UINT256: + return Hash256.fromParser(parser) + case SerializedTypeID.STI_VL: + return Blob.fromParser(parser, parser.size()) + case SerializedTypeID.STI_ACCOUNT: + return AccountID.fromParser(parser) + case SerializedTypeID.STI_AMOUNT: + return Amount.fromParser(parser) + case SerializedTypeID.STI_ISSUE: + return Issue.fromParser(parser) + case SerializedTypeID.STI_CURRENCY: + return Currency.fromParser(parser) + case SerializedTypeID.STI_NUMBER: + return STNumber.fromParser(parser) + default: + throw new Error( + `Data.getValue(): unsupported type ID: ${typeof innerType}`, + ) + } + } + + /** + * Convert to JSON representation + * + * @returns JSON object with 'type' and 'value' fields + */ + toJSON(): DataJSON { + const data = this.getValue() + let jsonValue: string | number | JsonObject + + // Convert the data value to its JSON representation + if (data instanceof SerializedType) { + jsonValue = data.toJSON() as JsonObject + } else if (data instanceof Uint8Array) { + jsonValue = bytesToHex(data) + } else if (typeof data === 'bigint') { + jsonValue = data.toString() + } else { + jsonValue = data + } + + return { + type: this.getInnerTypeString(), + value: jsonValue, + } + } + + /** + * Compare with another Data for equality + * + * @param other - Another Data to compare with + * @returns true if both have the same inner type and data + */ + equals(other: Data): boolean { + if (!(other instanceof Data)) { + return false + } + + // Compare bytes directly + if (this.bytes.length !== other.bytes.length) { + return false + } + + for (let i = 0; i < this.bytes.length; i++) { + if (this.bytes[i] !== other.bytes[i]) { + return false + } + } + + return true + } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_DATA + } +} + +export { Data } diff --git a/packages/ripple-binary-codec/src/types/dataType.ts b/packages/ripple-binary-codec/src/types/dataType.ts new file mode 100644 index 0000000000..d01c44ec8a --- /dev/null +++ b/packages/ripple-binary-codec/src/types/dataType.ts @@ -0,0 +1,178 @@ +import { BinaryParser } from '../serdes/binary-parser' +import { + JsonObject, + SerializedType, + SerializedTypeID, + TYPE_ID_TO_STRING, + TYPE_STRING_TO_ID, +} from './serialized-type' +import { readUInt16BE, writeUInt16BE } from '../utils' + +/** + * Interface for DataType JSON representation + */ +interface DataTypeJSON extends JsonObject { + type: string +} + +/** + * STDataType: Encodes XRPL's "DataType" type. + * + * This type wraps an inner SerializedTypeID to indicate what type of data + * a field contains. It's encoded as a 2-byte unsigned integer representing + * the inner type. + * + * Usage: + * DataType.from({ type: "AMOUNT" }) + * DataType.from("UINT64") + * DataType.fromParser(parser) + */ +class DataType extends SerializedType { + private innerType: SerializedTypeID + + /** + * Default bytes for DataType (STI_NOTPRESENT) + */ + static readonly defaultBytes = new Uint8Array([0x00, 0x01]) + + /** + * Construct a DataType from bytes + * @param bytes - 2-byte Uint8Array containing the inner type ID + * @param innerType - Optional explicit inner type (used when constructing from value) + * @throws Error if bytes is not a 2-byte Uint8Array + */ + constructor(bytes?: Uint8Array, innerType?: SerializedTypeID) { + const used = bytes ?? DataType.defaultBytes + if (!(used instanceof Uint8Array) || used.length !== 2) { + throw new Error( + `DataType must be constructed from a 2-byte Uint8Array, got ${used?.length} bytes`, + ) + } + super(used) + + // If innerType is explicitly provided, use it; otherwise read from bytes + if (innerType !== undefined) { + this.innerType = innerType + } else { + this.innerType = readUInt16BE(used, 0) as unknown as SerializedTypeID + } + } + + /** + * Construct from various input types + * + * @param value - Can be: + * - DataType instance (returns as-is) + * - DataTypeJSON object with 'type' field + * - String type name (e.g., "AMOUNT", "UINT64") + * - SerializedTypeID enum value + * @returns DataType instance + * @throws Error if value type is not supported or type string is unknown + */ + static from(value: unknown): DataType { + if (value instanceof DataType) { + return value + } + + if (typeof value === 'object' && value !== null && 'type' in value) { + const json = value as DataTypeJSON + return DataType.fromTypeString(json.type) + } + + if (typeof value === 'string') { + return DataType.fromTypeString(value) + } + + if (typeof value === 'number') { + return DataType.fromTypeId(value as SerializedTypeID) + } + + throw new Error( + 'DataType.from: value must be DataType, DataTypeJSON, string, or SerializedTypeID', + ) + } + + /** + * Construct from a type string + * + * @param typeStr - Type string like "AMOUNT", "UINT64", etc. + * @returns DataType instance + * @throws Error if type string is not recognized + */ + static fromTypeString(typeStr: string): DataType { + const typeId = TYPE_STRING_TO_ID[typeStr] + if (typeId === undefined) { + throw new Error(`DataType: unsupported type string: ${typeStr}`) + } + return DataType.fromTypeId(typeId) + } + + /** + * Construct from a SerializedTypeID + * + * @param typeId - The SerializedTypeID enum value + * @returns DataType instance + */ + static fromTypeId(typeId: SerializedTypeID): DataType { + const bytes = new Uint8Array(2) + writeUInt16BE(bytes, typeId, 0) + return new DataType(bytes, typeId) + } + + /** + * Read a DataType from a BinaryParser stream (2 bytes) + * + * @param parser - BinaryParser positioned at the start of a DataType + * @returns DataType instance + */ + static fromParser(parser: BinaryParser): DataType { + const bytes = parser.read(2) + return new DataType(bytes) + } + + /** + * Get the inner SerializedTypeID + * + * @returns The inner type ID + */ + getInnerType(): SerializedTypeID { + return this.innerType + } + + /** + * Set the inner SerializedTypeID + * + * @param typeId - The new inner type ID + */ + setInnerType(typeId: SerializedTypeID): void { + this.innerType = typeId + writeUInt16BE(this.bytes, typeId, 0) + } + + /** + * Get the string representation of the inner type + * + * @returns String name of the type, or numeric string if unknown + */ + getInnerTypeString(): string { + return TYPE_ID_TO_STRING[this.innerType] || this.innerType.toString() + } + + /** + * Convert to JSON representation + * + * @returns JSON object with 'type' field + */ + toJSON(): DataTypeJSON { + return { + type: this.getInnerTypeString(), + } + } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_DATATYPE + } +} + +// Export the DataType class for external use +export { DataType } diff --git a/packages/ripple-binary-codec/src/types/hash-128.ts b/packages/ripple-binary-codec/src/types/hash-128.ts index 52790ffeaa..83393219b4 100644 --- a/packages/ripple-binary-codec/src/types/hash-128.ts +++ b/packages/ripple-binary-codec/src/types/hash-128.ts @@ -1,5 +1,6 @@ import { Hash } from './hash' import { bytesToHex } from '@xrplf/isomorphic/utils' +import { SerializedTypeID } from './serialized-type' /** * Hash with a width of 128 bits @@ -28,6 +29,10 @@ class Hash128 extends Hash { } return hex } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_UINT128 + } } export { Hash128 } diff --git a/packages/ripple-binary-codec/src/types/hash-160.ts b/packages/ripple-binary-codec/src/types/hash-160.ts index 053a27dd02..f49adb28a4 100644 --- a/packages/ripple-binary-codec/src/types/hash-160.ts +++ b/packages/ripple-binary-codec/src/types/hash-160.ts @@ -1,4 +1,5 @@ import { Hash } from './hash' +import { SerializedTypeID } from './serialized-type' /** * Hash with a width of 160 bits @@ -14,6 +15,10 @@ class Hash160 extends Hash { super(bytes ?? Hash160.ZERO_160.bytes) } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_UINT160 + } } export { Hash160 } diff --git a/packages/ripple-binary-codec/src/types/hash-192.ts b/packages/ripple-binary-codec/src/types/hash-192.ts index 2f0d2b4867..5b2d117dcb 100644 --- a/packages/ripple-binary-codec/src/types/hash-192.ts +++ b/packages/ripple-binary-codec/src/types/hash-192.ts @@ -1,4 +1,5 @@ import { Hash } from './hash' +import { SerializedTypeID } from './serialized-type' /** * Hash with a width of 192 bits @@ -14,6 +15,10 @@ class Hash192 extends Hash { super(bytes ?? Hash192.ZERO_192.bytes) } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_UINT192 + } } export { Hash192 } diff --git a/packages/ripple-binary-codec/src/types/hash-256.ts b/packages/ripple-binary-codec/src/types/hash-256.ts index a8a48ff245..3fb981b29a 100644 --- a/packages/ripple-binary-codec/src/types/hash-256.ts +++ b/packages/ripple-binary-codec/src/types/hash-256.ts @@ -1,4 +1,5 @@ import { Hash } from './hash' +import { SerializedTypeID } from './serialized-type' /** * Hash with a width of 256 bits @@ -10,6 +11,10 @@ class Hash256 extends Hash { constructor(bytes: Uint8Array) { super(bytes ?? Hash256.ZERO_256.bytes) } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_UINT256 + } } export { Hash256 } diff --git a/packages/ripple-binary-codec/src/types/index.ts b/packages/ripple-binary-codec/src/types/index.ts index 890d726862..c7bc575b4f 100644 --- a/packages/ripple-binary-codec/src/types/index.ts +++ b/packages/ripple-binary-codec/src/types/index.ts @@ -2,6 +2,8 @@ import { AccountID } from './account-id' import { Amount } from './amount' import { Blob } from './blob' import { Currency } from './currency' +import { Data } from './data' +import { DataType } from './dataType' import { Hash128 } from './hash-128' import { Hash160 } from './hash-160' import { Hash192 } from './hash-192' @@ -26,6 +28,8 @@ const coreTypes: Record = { Amount, Blob, Currency, + Data, + DataType, Hash128, Hash160, Hash192, @@ -55,6 +59,8 @@ export { Amount, Blob, Currency, + Data, + DataType, Hash128, Hash160, Hash192, diff --git a/packages/ripple-binary-codec/src/types/issue.ts b/packages/ripple-binary-codec/src/types/issue.ts index 011b8d05ae..0fc15fd9dc 100644 --- a/packages/ripple-binary-codec/src/types/issue.ts +++ b/packages/ripple-binary-codec/src/types/issue.ts @@ -3,7 +3,7 @@ import { BinaryParser } from '../serdes/binary-parser' import { AccountID } from './account-id' import { Currency } from './currency' -import { JsonObject, SerializedType } from './serialized-type' +import { JsonObject, SerializedType, SerializedTypeID } from './serialized-type' import { Hash192 } from './hash-192' import { readUInt32BE, writeUInt32BE } from '../utils' @@ -158,6 +158,10 @@ class Issue extends SerializedType { issuer: issuer.toJSON(), } } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_ISSUE + } } export { Issue, IssueObject } diff --git a/packages/ripple-binary-codec/src/types/json.ts b/packages/ripple-binary-codec/src/types/json.ts new file mode 100644 index 0000000000..8feffcbba2 --- /dev/null +++ b/packages/ripple-binary-codec/src/types/json.ts @@ -0,0 +1,641 @@ +/* eslint-disable max-lines */ +/* eslint-disable complexity */ +import { BinaryParser } from '../serdes/binary-parser' +import { JsonObject, SerializedType, SerializedTypeID } from './serialized-type' +import { bytesToHex } from '@xrplf/isomorphic/utils' +import { BinarySerializer, BytesList } from '../serdes/binary-serializer' + +/** + * STJson: Serialized Type for JSON-like structures (objects or arrays). + * + * Supports two modes: + * - Object: Key-value pairs where keys are VL-encoded strings + * - Array: Ordered list of values + * + * Values are [SType marker][VL-encoded SType serialization]. + * Values can be any SType, including nested STJson. + * + * Serialization format: [type_byte][VL_length][data...] + * - type_byte: 0x00 = Object, 0x01 = Array + * + * Depth constraint: Maximum nesting depth of 1 level + */ +class STJson extends SerializedType { + private static readonly JsonType = { + Object: 0x00, + Array: 0x01, + } + + private data: Map | (SerializedType | null)[] + private jsonType: number + private default_: boolean = false + + /** + * Construct STJson from bytes + * @param bytes - Uint8Array containing serialized JSON + */ + constructor(bytes: Uint8Array) { + super(bytes) + this.data = new Map() + this.jsonType = STJson.JsonType.Object + } + + /** + * Parse STJson from BinaryParser + * + * @param parser - BinaryParser positioned at the start of STJson + * @returns STJson instance + */ + static fromParser(parser: BinaryParser): STJson { + const dataLength = parser.readVariableLengthLength() + + if (dataLength < 0) { + throw new Error('Invalid STJson length') + } + + if (dataLength === 0) { + const json = new STJson(new Uint8Array()) + json.data = new Map() + return json + } + + // Read type byte + const typeByte = parser.read(1)[0] + const type = typeByte + const initialBytesLeft = parser.size() + + if (type === STJson.JsonType.Array) { + const array: (SerializedType | null)[] = [] + while ( + parser.size() > 0 && + initialBytesLeft - parser.size() < dataLength + ) { + const valueVL = parser.readVariableLength() + if (valueVL.length > 0) { + const valueSit = new BinaryParser(bytesToHex(valueVL)) + const value = STJson.makeValueFromVLWithType(valueSit) + array.push(value) + } else { + array.push(null) + } + } + + const json = new STJson(new Uint8Array()) + json.data = array + json.jsonType = STJson.JsonType.Array + return json + } else { + // JsonType.Object + const map = new Map() + while ( + parser.size() > 0 && + initialBytesLeft - parser.size() < dataLength + ) { + const [key, value] = STJson.parsePair(parser) + map.set(key, value) + } + + const json = new STJson(new Uint8Array()) + json.data = map + json.jsonType = STJson.JsonType.Object + return json + } + } + + /** + * Parse a single key-value pair from the parser + */ + private static parsePair( + parser: BinaryParser, + ): [string, SerializedType | null] { + const keyVL = parser.readVariableLength() + const key = new TextDecoder().decode(keyVL) + + const valueVL = parser.readVariableLength() + let value: SerializedType | null = null + + if (valueVL.length > 0) { + const valueSit = new BinaryParser(bytesToHex(valueVL)) + value = STJson.makeValueFromVLWithType(valueSit) + } + + return [key, value] + } + + /** + * Factory for SType value from VL blob (with SType marker) + */ + private static makeValueFromVLWithType(parser: BinaryParser): SerializedType { + if (parser.size() === 0) { + throw new Error('Empty data when parsing STJson value') + } + + const typeId = parser.read(1)[0] + + // Delegate to appropriate type's fromParser + // This is a placeholder - actual implementation would dispatch to concrete types + // For now, we create an STJson if type is Object or Array + if (typeId === STJson.JsonType.Object || typeId === STJson.JsonType.Array) { + return STJson.fromParser(parser) + } + + throw new Error(`Unsupported type ID in STJson: ${typeId}`) + } + + /** + * Check if this is an array type + */ + isArray(): boolean { + return this.jsonType === STJson.JsonType.Array + } + + /** + * Check if this is an object type + */ + isObject(): boolean { + return this.jsonType === STJson.JsonType.Object + } + + /** + * Get the JSON type + */ + getType(): number { + return this.jsonType + } + + /** + * Get nesting depth (0 = no nesting, 1 = one level of nesting) + */ + getDepth(): number { + if (this.isArray()) { + const array = this.data as (SerializedType | null)[] + for (const value of array) { + if (value && value instanceof STJson) { + return 1 + value.getDepth() + } + } + return 0 + } else { + // isObject() + const map = this.data as Map + for (const value of map.values()) { + if (value && value instanceof STJson) { + return 1 + value.getDepth() + } + } + return 0 + } + } + + /** + * Validate nesting depth (max 1 level) + */ + private validateDepth( + value: SerializedType | null, + currentDepth: number, + ): void { + if (!value) { + return + } + + if (!(value instanceof STJson)) { + return + } + + const valueDepth = value.getDepth() + if (currentDepth + valueDepth > 1) { + throw new Error('STJson nesting depth exceeds maximum of 1') + } + } + + /** + * Set a field in an object + */ + setObjectField(key: string, value: SerializedType | null): void { + if (!this.isObject()) { + throw new Error('STJson::setObjectField called on non-object') + } + this.validateDepth(value, 0) + ;(this.data as Map).set(key, value) + } + + /** + * Get a field from an object + */ + getObjectField(key: string): SerializedType | null | undefined { + if (!this.isObject()) { + return undefined + } + return (this.data as Map).get(key) + } + + /** + * Set a nested object field (one level deep) + */ + setNestedObjectField( + key: string, + nestedKey: string, + value: SerializedType | null, + ): void { + if (!this.isObject()) { + throw new Error('STJson::setNestedObjectField called on non-object') + } + + const map = this.data as Map + let nestedObj = map.get(key) + + if (!nestedObj || !(nestedObj instanceof STJson) || !nestedObj.isObject()) { + const newNested = new STJson(new Uint8Array()) + ;(newNested as any).data = new Map() + ;(newNested as any).jsonType = STJson.JsonType.Object + map.set(key, newNested as SerializedType) + nestedObj = newNested + } + + if (nestedObj instanceof STJson) { + nestedObj.setObjectField(nestedKey, value) + } + } + + /** + * Get a nested object field + */ + getNestedObjectField( + key: string, + nestedKey: string, + ): SerializedType | null | undefined { + if (!this.isObject()) { + return undefined + } + + const nestedObj = (this.data as Map).get(key) + if (nestedObj instanceof STJson && nestedObj.isObject()) { + return nestedObj.getObjectField(nestedKey) + } + return undefined + } + + /** + * Get the inner data as a Map (for objects) + */ + getMap(): Map { + if (!this.isObject()) { + throw new Error('STJson is not an object type') + } + return this.data as Map + } + + /** + * Get the inner data as an array + */ + getArray(): (SerializedType | null)[] { + if (!this.isArray()) { + throw new Error('STJson is not an array type') + } + return this.data as (SerializedType | null)[] + } + + /** + * Push an element to an array + */ + pushArrayElement(value: SerializedType | null): void { + if (!this.isArray()) { + throw new Error('STJson::pushArrayElement called on non-array') + } + this.validateDepth(value, 0) + ;(this.data as (SerializedType | null)[]).push(value) + } + + /** + * Get an array element by index + */ + getArrayElement(index: number): SerializedType | null | undefined { + if (!this.isArray()) { + return undefined + } + const array = this.data as (SerializedType | null)[] + return array[index] + } + + /** + * Set an array element by index + */ + setArrayElement(index: number, value: SerializedType | null): void { + if (!this.isArray()) { + throw new Error('STJson::setArrayElement called on non-array') + } + this.validateDepth(value, 0) + + const array = this.data as (SerializedType | null)[] + // Auto-resize with nulls if needed + if (index >= array.length) { + array.length = index + 1 + array.fill(null) + } + array[index] = value + } + + /** + * Set a field within an array element (element must be an object) + */ + setArrayElementField( + index: number, + key: string, + value: SerializedType | null, + ): void { + if (!this.isArray()) { + throw new Error('STJson::setArrayElementField called on non-array') + } + + this.validateDepth(value, 1) + + const array = this.data as (SerializedType | null)[] + // Auto-resize with nulls if needed + if (index >= array.length) { + array.length = index + 1 + array.fill(null) + } + + let element = array[index] + if (!element || !(element instanceof STJson) || !element.isObject()) { + const newElement = new STJson(new Uint8Array()) + ;(newElement as any).data = new Map() + ;(newElement as any).jsonType = STJson.JsonType.Object + array[index] = newElement as SerializedType + element = newElement + } + + if (element instanceof STJson) { + element.setObjectField(key, value) + } + } + + /** + * Get a field within an array element + */ + getArrayElementField( + index: number, + key: string, + ): SerializedType | null | undefined { + if (!this.isArray()) { + return undefined + } + + const array = this.data as (SerializedType | null)[] + if (index >= array.length) { + return undefined + } + + const element = array[index] + if (element instanceof STJson && element.isObject()) { + return element.getObjectField(key) + } + return undefined + } + + /** + * Get the size of the array + */ + arraySize(): number { + if (!this.isArray()) { + return 0 + } + return (this.data as (SerializedType | null)[]).length + } + + /** + * Set a nested array element (array stored in object field) + */ + setNestedArrayElement( + key: string, + index: number, + value: SerializedType | null, + ): void { + if (!this.isObject()) { + throw new Error('STJson::setNestedArrayElement called on non-object') + } + + this.validateDepth(value, 1) + + const map = this.data as Map + let arrayJson = map.get(key) + + if (!arrayJson || !(arrayJson instanceof STJson) || !arrayJson.isArray()) { + const newArray = new STJson(new Uint8Array()) + ;(newArray as any).data = [] + ;(newArray as any).jsonType = STJson.JsonType.Array + map.set(key, newArray as SerializedType) + arrayJson = newArray + } + + if (arrayJson instanceof STJson) { + arrayJson.setArrayElement(index, value) + } + } + + /** + * Set a field within a nested array element + */ + setNestedArrayElementField( + key: string, + index: number, + nestedKey: string, + value: SerializedType | null, + ): void { + if (!this.isObject()) { + throw new Error('STJson::setNestedArrayElementField called on non-object') + } + + this.validateDepth(value, 1) + + const map = this.data as Map + let arrayJson = map.get(key) + + if (!arrayJson || !(arrayJson instanceof STJson) || !arrayJson.isArray()) { + const newArray = new STJson(new Uint8Array()) + ;(newArray as any).data = [] + ;(newArray as any).jsonType = STJson.JsonType.Array + map.set(key, newArray as SerializedType) + arrayJson = newArray + } + + if (arrayJson instanceof STJson) { + arrayJson.setArrayElementField(index, nestedKey, value) + } + } + + /** + * Get a nested array element + */ + getNestedArrayElement( + key: string, + index: number, + ): SerializedType | null | undefined { + if (!this.isObject()) { + return undefined + } + + const arrayJson = (this.data as Map).get(key) + if (arrayJson instanceof STJson && arrayJson.isArray()) { + return arrayJson.getArrayElement(index) + } + return undefined + } + + /** + * Get a field within a nested array element + */ + getNestedArrayElementField( + key: string, + index: number, + nestedKey: string, + ): SerializedType | null | undefined { + if (!this.isObject()) { + return undefined + } + + const arrayJson = (this.data as Map).get(key) + if (arrayJson instanceof STJson && arrayJson.isArray()) { + return arrayJson.getArrayElementField(index, nestedKey) + } + return undefined + } + + /** + * Serialize to binary + */ + add(s: BinarySerializer): void { + const bytesList = new BytesList() + const tmp = new BinarySerializer(bytesList) + + // Add type byte + tmp.put(new Uint8Array([this.jsonType])) + + if (this.isArray()) { + const array = this.data as (SerializedType | null)[] + for (const value of array) { + STJson.addVLValue(tmp, value) + } + } else { + // isObject() + const map = this.data as Map + for (const [key, value] of map.entries()) { + STJson.addVLKey(tmp, key) + STJson.addVLValue(tmp, value) + } + } + + const innerBytes = bytesList.toBytes() + const lengthBytes = BinarySerializer.encodeVariableLength(innerBytes.length) + s.put(lengthBytes) + s.put(innerBytes) + } + + /** + * Encode a key as VL + */ + private static addVLKey(s: BinarySerializer, str: string): void { + const keyBytes = new TextEncoder().encode(str) + const lengthBytes = BinarySerializer.encodeVariableLength(keyBytes.length) + s.put(lengthBytes) + s.put(keyBytes) + } + + /** + * Encode a value as [SType marker][VL] + */ + private static addVLValue( + s: BinarySerializer, + value: SerializedType | null, + ): void { + if (!value) { + s.put(BinarySerializer.encodeVariableLength(0)) + return + } + + const bytesList = new BytesList() + const tmp = new BinarySerializer(bytesList) + tmp.put(new Uint8Array([value.getSType()])) + value.toBytesSink(bytesList) + + const innerBytes = bytesList.toBytes() + const lengthBytes = BinarySerializer.encodeVariableLength(innerBytes.length) + s.put(lengthBytes) + s.put(innerBytes) + } + + /** + * Convert to JSON representation + */ + toJSON(): JsonObject | JsonObject[] { + if (this.isArray()) { + const array = this.data as (SerializedType | null)[] + return array.map((item) => (item ? item.toJSON() : null)) as JsonObject[] + } else { + // isObject() + const map = this.data as Map + const result: JsonObject = {} + for (const [key, value] of map.entries()) { + result[key] = value ? value.toJSON() : null + } + return result as JsonObject + } + } + + /** + * Compare with another STJson for equivalence + */ + isEquivalent(t: SerializedType): boolean { + if (!(t instanceof STJson)) { + return false + } + return bytesToHex(this.bytes) === bytesToHex(t.bytes) + } + + /** + * Check if this is the default value + */ + isDefault(): boolean { + return this.default_ + } + + /** + * Get blob representation + */ + toBlob(): Uint8Array { + const bytesList = new BytesList() + const s = new BinarySerializer(bytesList) + this.add(s) + return bytesList.toBytes() + } + + /** + * Get the size (number of bytes in serialized form) + */ + size(): number { + const bytesList = new BytesList() + const s = new BinarySerializer(bytesList) + this.add(s) + return bytesList.getLength() + } + + /** + * Set the value from another STJson + */ + setValue(v: STJson): void { + if (!(v instanceof STJson)) { + throw new Error('setValue: value must be STJson') + } + ;(this as any).data = (v as any).data + ;(this as any).jsonType = (v as any).jsonType + } + + /** + * Get serialized type ID + */ + getSType(): SerializedTypeID { + return SerializedTypeID.STI_JSON + } +} + +export { STJson } diff --git a/packages/ripple-binary-codec/src/types/path-set.ts b/packages/ripple-binary-codec/src/types/path-set.ts index 4359255df9..603571fa56 100644 --- a/packages/ripple-binary-codec/src/types/path-set.ts +++ b/packages/ripple-binary-codec/src/types/path-set.ts @@ -1,7 +1,7 @@ import { AccountID } from './account-id' import { Currency } from './currency' import { BinaryParser } from '../serdes/binary-parser' -import { SerializedType, JsonObject } from './serialized-type' +import { SerializedType, JsonObject, SerializedTypeID } from './serialized-type' import { bytesToHex, concat } from '@xrplf/isomorphic/utils' /** @@ -285,6 +285,10 @@ class PathSet extends SerializedType { return json } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_PATHSET + } } export { PathSet } diff --git a/packages/ripple-binary-codec/src/types/serialized-type.ts b/packages/ripple-binary-codec/src/types/serialized-type.ts index 2f039f0cd1..64f0e694b9 100644 --- a/packages/ripple-binary-codec/src/types/serialized-type.ts +++ b/packages/ripple-binary-codec/src/types/serialized-type.ts @@ -3,6 +3,151 @@ import { BinaryParser } from '../serdes/binary-parser' import { XrplDefinitionsBase } from '../enums' import { bytesToHex } from '@xrplf/isomorphic/utils' +/** + * Enum for SerializedTypeID values used in XRPL + * These match the C++ implementation's STI_ constants + */ +export enum SerializedTypeID { + STI_NOTPRESENT = 0, + STI_UINT16 = 1, + STI_UINT32 = 2, + STI_UINT64 = 3, + STI_UINT128 = 4, + STI_UINT256 = 5, + STI_AMOUNT = 6, + STI_VL = 7, + STI_ACCOUNT = 8, + STI_NUMBER = 9, + STI_INT32 = 10, + STI_INT64 = 11, + + STI_OBJECT = 14, + STI_ARRAY = 15, + + STI_UINT8 = 16, + STI_UINT160 = 17, + STI_PATHSET = 18, + STI_VECTOR256 = 19, + STI_UINT96 = 20, + STI_UINT192 = 21, + STI_UINT384 = 22, + STI_UINT512 = 23, + STI_ISSUE = 24, + STI_XCHAIN_BRIDGE = 25, + STI_CURRENCY = 26, + STI_DATA = 27, + STI_DATATYPE = 28, + STI_JSON = 29, +} + +/** + * Map of type strings to SerializedTypeID values + */ +export const TYPE_STRING_TO_ID: Record = { + NOTPRESENT: SerializedTypeID.STI_NOTPRESENT, + UINT16: SerializedTypeID.STI_UINT16, + UINT32: SerializedTypeID.STI_UINT32, + UINT64: SerializedTypeID.STI_UINT64, + UINT128: SerializedTypeID.STI_UINT128, + UINT256: SerializedTypeID.STI_UINT256, + AMOUNT: SerializedTypeID.STI_AMOUNT, + VL: SerializedTypeID.STI_VL, + ACCOUNT: SerializedTypeID.STI_ACCOUNT, + NUMBER: SerializedTypeID.STI_NUMBER, + INT32: SerializedTypeID.STI_INT32, + INT64: SerializedTypeID.STI_INT64, + + OBJECT: SerializedTypeID.STI_OBJECT, + ARRAY: SerializedTypeID.STI_ARRAY, + + UINT8: SerializedTypeID.STI_UINT8, + UINT160: SerializedTypeID.STI_UINT160, + PATHSET: SerializedTypeID.STI_PATHSET, + VECTOR256: SerializedTypeID.STI_VECTOR256, + UINT96: SerializedTypeID.STI_UINT96, + UINT192: SerializedTypeID.STI_UINT192, + UINT384: SerializedTypeID.STI_UINT384, + UINT512: SerializedTypeID.STI_UINT512, + ISSUE: SerializedTypeID.STI_ISSUE, + XCHAIN_BRIDGE: SerializedTypeID.STI_XCHAIN_BRIDGE, + CURRENCY: SerializedTypeID.STI_CURRENCY, + DATA: SerializedTypeID.STI_DATA, + DATATYPE: SerializedTypeID.STI_DATATYPE, + JSON: SerializedTypeID.STI_JSON, +} + +/** + * Map of type strings to SerializedTypeID values + */ +export const TYPE_NUMBER_TO_ID: Record = { + 0: SerializedTypeID.STI_NOTPRESENT, + 1: SerializedTypeID.STI_UINT16, + 2: SerializedTypeID.STI_UINT32, + 3: SerializedTypeID.STI_UINT64, + 4: SerializedTypeID.STI_UINT128, + 5: SerializedTypeID.STI_UINT256, + 6: SerializedTypeID.STI_AMOUNT, + 7: SerializedTypeID.STI_VL, + 8: SerializedTypeID.STI_ACCOUNT, + 9: SerializedTypeID.STI_NUMBER, + 10: SerializedTypeID.STI_INT32, + 11: SerializedTypeID.STI_INT64, + + 14: SerializedTypeID.STI_OBJECT, + 15: SerializedTypeID.STI_ARRAY, + + 16: SerializedTypeID.STI_UINT8, + 17: SerializedTypeID.STI_UINT160, + 18: SerializedTypeID.STI_PATHSET, + 19: SerializedTypeID.STI_VECTOR256, + 20: SerializedTypeID.STI_UINT96, + 21: SerializedTypeID.STI_UINT192, + 22: SerializedTypeID.STI_UINT384, + 23: SerializedTypeID.STI_UINT512, + 24: SerializedTypeID.STI_ISSUE, + 25: SerializedTypeID.STI_XCHAIN_BRIDGE, + 26: SerializedTypeID.STI_CURRENCY, + 27: SerializedTypeID.STI_DATA, + 28: SerializedTypeID.STI_DATATYPE, + 29: SerializedTypeID.STI_JSON, +} + +/** + * Map of SerializedTypeID values to type strings + */ +export const TYPE_ID_TO_STRING: Record = { + [SerializedTypeID.STI_NOTPRESENT]: '', + [SerializedTypeID.STI_UINT16]: 'UINT16', + [SerializedTypeID.STI_UINT32]: 'UINT32', + [SerializedTypeID.STI_UINT64]: 'UINT64', + [SerializedTypeID.STI_UINT128]: 'UINT128', + [SerializedTypeID.STI_UINT256]: 'UINT256', + [SerializedTypeID.STI_AMOUNT]: 'AMOUNT', + [SerializedTypeID.STI_VL]: 'VL', + [SerializedTypeID.STI_ACCOUNT]: 'ACCOUNT', + [SerializedTypeID.STI_NUMBER]: 'NUMBER', + [SerializedTypeID.STI_INT32]: 'INT32', + [SerializedTypeID.STI_INT64]: 'INT64', + + [SerializedTypeID.STI_OBJECT]: 'OBJECT', + [SerializedTypeID.STI_ARRAY]: 'ARRAY', + + [SerializedTypeID.STI_UINT8]: 'UINT8', + [SerializedTypeID.STI_UINT160]: 'UINT160', + [SerializedTypeID.STI_PATHSET]: 'PATHSET', + [SerializedTypeID.STI_VECTOR256]: 'VECTOR256', + [SerializedTypeID.STI_UINT96]: 'UINT96', + [SerializedTypeID.STI_UINT192]: 'UINT192', + [SerializedTypeID.STI_UINT384]: 'UINT384', + [SerializedTypeID.STI_UINT512]: 'UINT512', + [SerializedTypeID.STI_ISSUE]: 'ISSUE', + [SerializedTypeID.STI_XCHAIN_BRIDGE]: 'XCHAIN_BRIDGE', + [SerializedTypeID.STI_CURRENCY]: 'CURRENCY', + [SerializedTypeID.STI_DATA]: 'DATA', + [SerializedTypeID.STI_DATATYPE]: 'DATATYPE', + [SerializedTypeID.STI_JSON]: 'JSON', +} + type JSON = string | number | boolean | null | undefined | JSON[] | JsonObject type JsonObject = { [key: string]: JSON } @@ -77,6 +222,10 @@ class SerializedType { toString(): string { return this.toHex() } + + getSType(): SerializedTypeID { + return this.getSType() + } } /** diff --git a/packages/ripple-binary-codec/src/types/st-array.ts b/packages/ripple-binary-codec/src/types/st-array.ts index c705d4d864..5edc4db9eb 100644 --- a/packages/ripple-binary-codec/src/types/st-array.ts +++ b/packages/ripple-binary-codec/src/types/st-array.ts @@ -1,5 +1,5 @@ import { DEFAULT_DEFINITIONS, XrplDefinitionsBase } from '../enums' -import { SerializedType, JsonObject } from './serialized-type' +import { SerializedType, JsonObject, SerializedTypeID } from './serialized-type' import { STObject } from './st-object' import { BinaryParser } from '../serdes/binary-parser' import { concat } from '@xrplf/isomorphic/utils' @@ -108,6 +108,10 @@ class STArray extends SerializedType { return result } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_ARRAY + } } export { STArray } diff --git a/packages/ripple-binary-codec/src/types/st-number.ts b/packages/ripple-binary-codec/src/types/st-number.ts index 2e432bf374..efea789a23 100644 --- a/packages/ripple-binary-codec/src/types/st-number.ts +++ b/packages/ripple-binary-codec/src/types/st-number.ts @@ -1,6 +1,6 @@ /* eslint-disable complexity -- required for various checks */ import { BinaryParser } from '../serdes/binary-parser' -import { SerializedType } from './serialized-type' +import { SerializedType, SerializedTypeID } from './serialized-type' import { writeInt32BE, writeInt64BE, readInt32BE, readInt64BE } from '../utils' /** @@ -307,4 +307,8 @@ export class STNumber extends SerializedType { fractionPart ? '.' + fractionPart : '' }` } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_NUMBER + } } diff --git a/packages/ripple-binary-codec/src/types/st-object.ts b/packages/ripple-binary-codec/src/types/st-object.ts index f17bafc62d..0b507cdfd0 100644 --- a/packages/ripple-binary-codec/src/types/st-object.ts +++ b/packages/ripple-binary-codec/src/types/st-object.ts @@ -4,7 +4,7 @@ import { Bytes, XrplDefinitionsBase, } from '../enums' -import { SerializedType, JsonObject } from './serialized-type' +import { SerializedType, JsonObject, SerializedTypeID } from './serialized-type' import { xAddressToClassicAddress, isValidXAddress } from 'ripple-address-codec' import { BinaryParser } from '../serdes/binary-parser' import { BinarySerializer, BytesList } from '../serdes/binary-serializer' @@ -151,7 +151,13 @@ class STObject extends SerializedType { ? STArray.from(xAddressDecoded[field.name], definitions) : field.type.name === 'UInt64' ? UInt64.from(xAddressDecoded[field.name], field.name) - : field.associatedType.from(xAddressDecoded[field.name]) + : field.associatedType?.from + ? field.associatedType.from(xAddressDecoded[field.name]) + : (() => { + throw new Error( + `Type ${field.type.name} for field ${field.name} is missing associatedType.from`, + ) + })() if (associatedValue == undefined) { throw new TypeError( @@ -201,6 +207,10 @@ class STObject extends SerializedType { return accumulator } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_OBJECT + } } export { STObject } diff --git a/packages/ripple-binary-codec/src/types/uint-16.ts b/packages/ripple-binary-codec/src/types/uint-16.ts index a217333d5b..5e2c68f6e6 100644 --- a/packages/ripple-binary-codec/src/types/uint-16.ts +++ b/packages/ripple-binary-codec/src/types/uint-16.ts @@ -1,6 +1,7 @@ import { UInt } from './uint' import { BinaryParser } from '../serdes/binary-parser' import { readUInt16BE, writeUInt16BE } from '../utils' +import { SerializedTypeID } from './serialized-type' /** * Derived UInt class for serializing/deserializing 16 bit UInt @@ -48,6 +49,10 @@ class UInt16 extends UInt { valueOf(): number { return parseInt(readUInt16BE(this.bytes, 0)) } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_UINT16 + } } export { UInt16 } diff --git a/packages/ripple-binary-codec/src/types/uint-32.ts b/packages/ripple-binary-codec/src/types/uint-32.ts index e188ae910c..d9c47a2b31 100644 --- a/packages/ripple-binary-codec/src/types/uint-32.ts +++ b/packages/ripple-binary-codec/src/types/uint-32.ts @@ -1,6 +1,7 @@ import { UInt } from './uint' import { BinaryParser } from '../serdes/binary-parser' import { readUInt32BE, writeUInt32BE } from '../utils' +import { SerializedTypeID } from './serialized-type' /** * Derived UInt class for serializing/deserializing 32 bit UInt @@ -54,6 +55,10 @@ class UInt32 extends UInt { valueOf(): number { return parseInt(readUInt32BE(this.bytes, 0), 10) } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_UINT32 + } } export { UInt32 } diff --git a/packages/ripple-binary-codec/src/types/uint-64.ts b/packages/ripple-binary-codec/src/types/uint-64.ts index bb18e6775a..540cfad9e0 100644 --- a/packages/ripple-binary-codec/src/types/uint-64.ts +++ b/packages/ripple-binary-codec/src/types/uint-64.ts @@ -3,6 +3,7 @@ import { BinaryParser } from '../serdes/binary-parser' import { bytesToHex, concat, hexToBytes } from '@xrplf/isomorphic/utils' import { readUInt32BE, writeUInt32BE } from '../utils' import { DEFAULT_DEFINITIONS, XrplDefinitionsBase } from '../enums' +import { SerializedTypeID } from './serialized-type' const HEX_REGEX = /^[a-fA-F0-9]{1,16}$/ const BASE10_REGEX = /^[0-9]{1,20}$/ @@ -131,6 +132,10 @@ class UInt64 extends UInt { toBytes(): Uint8Array { return this.bytes } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_UINT64 + } } export { UInt64 } diff --git a/packages/ripple-binary-codec/src/types/uint-8.ts b/packages/ripple-binary-codec/src/types/uint-8.ts index 7d7ae9753f..ca805ffc6c 100644 --- a/packages/ripple-binary-codec/src/types/uint-8.ts +++ b/packages/ripple-binary-codec/src/types/uint-8.ts @@ -2,6 +2,7 @@ import { UInt } from './uint' import { BinaryParser } from '../serdes/binary-parser' import { bytesToHex } from '@xrplf/isomorphic/utils' import { writeUInt8 } from '../utils' +import { SerializedTypeID } from './serialized-type' /** * Derived UInt class for serializing/deserializing 8 bit UInt @@ -47,6 +48,10 @@ class UInt8 extends UInt { valueOf(): number { return parseInt(bytesToHex(this.bytes), 16) } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_UINT8 + } } export { UInt8 } diff --git a/packages/ripple-binary-codec/src/types/vector-256.ts b/packages/ripple-binary-codec/src/types/vector-256.ts index 0f7bc2ccb0..808f1bc120 100644 --- a/packages/ripple-binary-codec/src/types/vector-256.ts +++ b/packages/ripple-binary-codec/src/types/vector-256.ts @@ -1,4 +1,4 @@ -import { SerializedType } from './serialized-type' +import { SerializedType, SerializedTypeID } from './serialized-type' import { BinaryParser } from '../serdes/binary-parser' import { Hash256 } from './hash-256' import { BytesList } from '../serdes/binary-serializer' @@ -74,6 +74,10 @@ class Vector256 extends SerializedType { } return result } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_VECTOR256 + } } export { Vector256 } diff --git a/packages/ripple-binary-codec/src/types/xchain-bridge.ts b/packages/ripple-binary-codec/src/types/xchain-bridge.ts index 6bda43ae33..560747875f 100644 --- a/packages/ripple-binary-codec/src/types/xchain-bridge.ts +++ b/packages/ripple-binary-codec/src/types/xchain-bridge.ts @@ -1,7 +1,7 @@ import { BinaryParser } from '../serdes/binary-parser' import { AccountID } from './account-id' -import { JsonObject, SerializedType } from './serialized-type' +import { JsonObject, SerializedType, SerializedTypeID } from './serialized-type' import { Issue, IssueObject } from './issue' import { concat } from '@xrplf/isomorphic/utils' @@ -123,6 +123,10 @@ class XChainBridge extends SerializedType { }) return json as XChainBridgeObject } + + getSType(): SerializedTypeID { + return SerializedTypeID.STI_XCHAIN_BRIDGE + } } export { XChainBridge, XChainBridgeObject } diff --git a/packages/ripple-binary-codec/test/st-data.test.ts b/packages/ripple-binary-codec/test/st-data.test.ts new file mode 100644 index 0000000000..3806dd3927 --- /dev/null +++ b/packages/ripple-binary-codec/test/st-data.test.ts @@ -0,0 +1,486 @@ +import { BinaryParser } from '../src/binary' +import { coreTypes } from '../src/types' +// import { bytesToHex, hexToBytes } from '@xrplf/isomorphic/utils' + +const { Data } = coreTypes + +describe('Data Type with all STTypes', () => { + describe('UINT8', () => { + it('should encode and decode UINT8', () => { + const data = Data.from({ type: 'UINT8', value: 255 }) + const hex = data.toHex() + expect(hex).toBe('0010FF') // 0010 = type ID for UINT8, FF = 255 + + const parser = new BinaryParser(hex) + const parsed = Data.fromParser(parser) + expect(parsed.toJSON()).toEqual({ type: 'UINT8', value: 255 }) + }) + + it('should handle UINT8 zero', () => { + const data = Data.from({ type: 'UINT8', value: 0 }) + expect(data.toHex()).toBe('001000') + expect(data.toJSON()).toEqual({ type: 'UINT8', value: 0 }) + }) + + it('should handle UINT8 from string', () => { + const data = Data.from({ type: 'UINT8', value: '128' }) + expect(data.toHex()).toBe('001080') + expect(data.toJSON()).toEqual({ type: 'UINT8', value: 128 }) + }) + }) + + describe('UINT16', () => { + it('should encode and decode UINT16', () => { + const data = Data.from({ type: 'UINT16', value: 65535 }) + const hex = data.toHex() + expect(hex).toBe('0001FFFF') // 0001 = type ID for UINT16, FFFF = 65535 + + const parser = new BinaryParser(hex) + const parsed = Data.fromParser(parser) + expect(parsed.toJSON()).toEqual({ type: 'UINT16', value: 65535 }) + }) + + it('should handle UINT16 zero', () => { + const data = Data.from({ type: 'UINT16', value: 0 }) + expect(data.toHex()).toBe('00010000') + }) + }) + + describe('UINT32', () => { + it('should encode and decode UINT32', () => { + const data = Data.from({ type: 'UINT32', value: 4294967295 }) + const hex = data.toHex() + expect(hex).toBe('0002FFFFFFFF') // 0002 = type ID for UINT32 + + const parser = new BinaryParser(hex) + const parsed = Data.fromParser(parser) + expect(parsed.toJSON()).toEqual({ type: 'UINT32', value: 4294967295 }) + }) + }) + + describe('UINT64', () => { + it('should encode and decode UINT64', () => { + const data = Data.from({ type: 'UINT64', value: '7fffffffffffffff' }) + const hex = data.toHex() + expect(hex).toBe('00037FFFFFFFFFFFFFFF') // 0003 = type ID for UINT64 + + const parser = new BinaryParser(hex) + const parsed = Data.fromParser(parser) + expect(parsed.toJSON()).toEqual({ + type: 'UINT64', + value: '7FFFFFFFFFFFFFFF', + }) + }) + + // it('should handle UINT64 as number string', () => { + // const data = Data.from({ type: 'UINT64', value: '123456789' }) + // const parser = new BinaryParser(data.toHex()) + // const parsed = Data.fromParser(parser) + // expect(parsed.getValue().toJSON()).toBe('123456789') + // }) + }) + + describe('UINT128 (Hash128)', () => { + it('should encode and decode UINT128', () => { + const value = '00000000000000000000000000000001' + const data = Data.from({ type: 'UINT128', value }) + const hex = data.toHex() + expect(hex).toBe('0004' + value) // 0004 = type ID for UINT128 + + const parser = new BinaryParser(hex) + const parsed = Data.fromParser(parser) + expect(parsed.toJSON()).toEqual({ + type: 'UINT128', + value: value.toUpperCase(), + }) + }) + }) + + describe('UINT160 (Hash160)', () => { + it('should encode and decode UINT160', () => { + const value = '0000000000000000000000000000000000000001' + const data = Data.from({ type: 'UINT160', value }) + const hex = data.toHex() + expect(hex).toBe('0011' + value) // 0011 = type ID for UINT160 + + const parser = new BinaryParser(hex) + const parsed = Data.fromParser(parser) + expect(parsed.toJSON()).toEqual({ + type: 'UINT160', + value: value.toUpperCase(), + }) + }) + }) + + describe('UINT192 (Hash192)', () => { + it('should encode and decode UINT192', () => { + const value = '000000000000000000000000000000000000000000000001' + const data = Data.from({ type: 'UINT192', value }) + const hex = data.toHex() + expect(hex).toBe('0015' + value) // 0015 = type ID for UINT192 + + const parser = new BinaryParser(hex) + const parsed = Data.fromParser(parser) + expect(parsed.toJSON()).toEqual({ + type: 'UINT192', + value: value.toUpperCase(), + }) + }) + }) + + describe('UINT256 (Hash256)', () => { + it('should encode and decode UINT256', () => { + const value = + 'D955DAC2E77519F05AD151A5D3C99FC8125FB39D58FF9F106F1ACA4491902C25' + const data = Data.from({ type: 'UINT256', value }) + const hex = data.toHex() + expect(hex).toBe('0005' + value) // 0005 = type ID for UINT256 + + const parser = new BinaryParser(hex) + const parsed = Data.fromParser(parser) + expect(parsed.toJSON()).toEqual({ type: 'UINT256', value }) + }) + }) + + describe('VL (Variable Length Blob)', () => { + it('should encode and decode VL with hex string', () => { + const value = 'DEADBEEF' + const data = Data.from({ type: 'VL', value }) + const hex = data.toHex() + + // VL encoding: type ID (0007) + length prefix (04 for 4 bytes) + data + expect(hex).toBe('000704DEADBEEF') + + const parser = new BinaryParser(hex) + const parsed = Data.fromParser(parser) + expect(parsed.toJSON()).toEqual({ type: 'VL', value }) + }) + + it('should handle empty VL', () => { + const data = Data.from({ type: 'VL', value: '' }) + const hex = data.toHex() + expect(hex).toBe('000700') // 00 = length 0 + + const parser = new BinaryParser(hex) + const parsed = Data.fromParser(parser) + expect(parsed.toJSON()).toEqual({ type: 'VL', value: '' }) + }) + + it('should handle longer VL data', () => { + const value = 'DEADBEEFCAFE' + '00'.repeat(100) // Long hex string + const data = Data.from({ type: 'VL', value }) + const parser = new BinaryParser(data.toHex()) + const parsed = Data.fromParser(parser) + expect(parsed.toJSON()).toEqual({ type: 'VL', value }) + }) + }) + + describe('ACCOUNT', () => { + it('should encode and decode ACCOUNT', () => { + const value = 'rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn' + const data = Data.from({ type: 'ACCOUNT', value }) + const hex = data.toHex() + + // ACCOUNT encoding: type ID (0008) + (14) + 20 bytes of account ID + expect(hex.substring(0, 4)).toBe('0008') + expect(hex.length).toBe(6 + 40) // 2 bytes type + 1 byte length + 20 bytes account + + const parser = new BinaryParser(hex) + const parsed = Data.fromParser(parser) + expect(parsed.toJSON()).toEqual({ type: 'ACCOUNT', value }) + }) + + it('should handle different account format', () => { + const value = 'rExKpRKXNz25UAjbckCRtQsJFcSfjL9Er3' + const data = Data.from({ type: 'ACCOUNT', value }) + const parser = new BinaryParser(data.toHex()) + const parsed = Data.fromParser(parser) + expect(parsed.toJSON()).toEqual({ type: 'ACCOUNT', value }) + }) + }) + + // describe('AMOUNT', () => { + // it('should encode and decode XRP AMOUNT', () => { + // const value = '1000000' + // const data = Data.from({ type: 'AMOUNT', value }) + // const hex = data.toHex() + + // // XRP amount encoding: type ID (0006) + positive bit + amount + // expect(hex).toBe('000640000000000F4240') // 0F4240 = 1000000 in hex + + // const parser = new BinaryParser(hex) + // const parsed = Data.fromParser(parser) + // expect(parsed.toJSON()).toEqual({ type: 'AMOUNT', value }) + // }) + + // it('should encode and decode issued currency AMOUNT', () => { + // const value = { + // currency: 'USD', + // issuer: 'rExKpRKXNz25UAjbckCRtQsJFcSfjL9Er3', + // value: '1.2', + // } + // const data = Data.from({ type: 'AMOUNT', value }) + // const hex = data.toHex() + + // // Issued currency: type ID (0006) + 48 bytes (8 bytes amount + 20 bytes currency + 20 bytes issuer) + // expect(hex.substring(0, 4)).toBe('0006') + // expect(hex.length).toBe(4 + 96) // 2 bytes type + 48 bytes for issued currency + + // const parser = new BinaryParser(hex) + // const parsed = Data.fromParser(parser) + // const parsedValue = parsed.toJSON().value + + // // The parsed value should match the original structure + // expect(parsedValue).toMatchObject({ + // currency: 'USD', + // issuer: value.issuer, + // value: '1.2', + // }) + // }) + + // it('should handle negative issued currency amount', () => { + // const value = { + // currency: 'EUR', + // issuer: 'rExKpRKXNz25UAjbckCRtQsJFcSfjL9Er3', + // value: '-100.5', + // } + // const data = Data.from({ type: 'AMOUNT', value }) + // const parser = new BinaryParser(data.toHex()) + // const parsed = Data.fromParser(parser) + // const parsedValue = parsed.toJSON().value + + // expect(parsedValue).toMatchObject({ + // currency: 'EUR', + // value: '-100.5', + // }) + // }) + // }) + + // describe('CURRENCY', () => { + // it('should encode and decode standard CURRENCY', () => { + // const value = 'USD' + // const data = Data.from({ type: 'CURRENCY', value }) + // const hex = data.toHex() + + // // CURRENCY encoding: type ID (000A) + 20 bytes currency code + // expect(hex.substring(0, 4)).toBe('000A') + // expect(hex.length).toBe(4 + 40) // 2 bytes type + 20 bytes currency + + // const parser = new BinaryParser(hex) + // const parsed = Data.fromParser(parser) + // expect(parsed.toJSON()).toEqual({ type: 'CURRENCY', value }) + // }) + + // it('should handle non-standard currency code', () => { + // const value = '0158415500000000C1F76FF6ECB0BAC600000000' + // const data = Data.from({ type: 'CURRENCY', value }) + // const parser = new BinaryParser(data.toHex()) + // const parsed = Data.fromParser(parser) + // expect(parsed.toJSON()).toEqual({ + // type: 'CURRENCY', + // value: value.toUpperCase(), + // }) + // }) + // }) + + describe('NUMBER (STNumber)', () => { + it('should encode and decode positive decimal NUMBER', () => { + const value = '1.2' + const data = Data.from({ type: 'NUMBER', value }) + const hex = data.toHex() + + // NUMBER encoding: type ID (0009) + serialized number + expect(hex.substring(0, 4)).toBe('0009') + + const parser = new BinaryParser(hex) + const parsed = Data.fromParser(parser) + expect(parsed.toJSON()).toEqual({ type: 'NUMBER', value }) + }) + + it('should handle integer NUMBER', () => { + const value = '123456789' + const data = Data.from({ type: 'NUMBER', value }) + const parser = new BinaryParser(data.toHex()) + const parsed = Data.fromParser(parser) + expect(parsed.toJSON()).toEqual({ type: 'NUMBER', value }) + }) + + it('should handle negative NUMBER', () => { + const value = '-987.654' + const data = Data.from({ type: 'NUMBER', value }) + const parser = new BinaryParser(data.toHex()) + const parsed = Data.fromParser(parser) + expect(parsed.toJSON()).toEqual({ type: 'NUMBER', value }) + }) + + it('should handle zero NUMBER', () => { + const value = '0' + const data = Data.from({ type: 'NUMBER', value }) + const parser = new BinaryParser(data.toHex()) + const parsed = Data.fromParser(parser) + expect(parsed.toJSON()).toEqual({ type: 'NUMBER', value }) + }) + + it('should handle scientific notation NUMBER', () => { + const value = '1.23e5' + const data = Data.from({ type: 'NUMBER', value }) + const parser = new BinaryParser(data.toHex()) + const parsed = Data.fromParser(parser) + // STNumber normalizes scientific notation to decimal + expect(parsed.toJSON()).toEqual({ type: 'NUMBER', value: '123000' }) + }) + }) + + // describe('ISSUE', () => { + // it('should encode and decode ISSUE with currency only', () => { + // const value = { currency: 'USD' } + // const data = Data.from({ type: 'ISSUE', value }) + // const hex = data.toHex() + + // // ISSUE encoding: type ID (000C) + currency (20 bytes) + issuer (20 bytes if present) + // expect(hex.substring(0, 4)).toBe('000C') + + // const parser = new BinaryParser(hex) + // const parsed = Data.fromParser(parser) + // expect(parsed.toJSON()).toEqual({ type: 'ISSUE', value }) + // }) + + // it('should encode and decode ISSUE with currency and issuer', () => { + // const value = { + // currency: 'EUR', + // issuer: 'rExKpRKXNz25UAjbckCRtQsJFcSfjL9Er3', + // } + // const data = Data.from({ type: 'ISSUE', value }) + // const parser = new BinaryParser(data.toHex()) + // const parsed = Data.fromParser(parser) + // expect(parsed.toJSON()).toEqual({ type: 'ISSUE', value }) + // }) + // }) + + // describe('Complex roundtrip tests', () => { + // it('should correctly serialize all parameter types from the contract call', () => { + // const parameters = [ + // { type: 'UINT8', value: 255 }, + // { type: 'UINT16', value: 65535 }, + // { type: 'UINT32', value: 4294967295 }, + // { type: 'UINT64', value: '7fffffffffffffff' }, + // { type: 'UINT128', value: '00000000000000000000000000000001' }, + // { type: 'UINT160', value: '0000000000000000000000000000000000000001' }, + // { + // type: 'UINT192', + // value: '000000000000000000000000000000000000000000000001', + // }, + // { + // type: 'UINT256', + // value: + // 'D955DAC2E77519F05AD151A5D3C99FC8125FB39D58FF9F106F1ACA4491902C25', + // }, + // { type: 'VL', value: 'DEADBEEF' }, + // { type: 'ACCOUNT', value: 'rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn' }, + // { type: 'AMOUNT', value: '1000000' }, + // { + // type: 'AMOUNT', + // value: { + // currency: 'USD', + // issuer: 'rExKpRKXNz25UAjbckCRtQsJFcSfjL9Er3', + // value: '1.2', + // }, + // }, + // { type: 'NUMBER', value: '1.2' }, + // ] + + // const results: string[] = [] + + // parameters.forEach((param, index) => { + // const data = Data.from(param) + // const hex = data.toHex() + // results.push(`Parameter ${index} (${param.type}): ${hex}`) + + // // Verify roundtrip + // const parser = new BinaryParser(hex) + // const parsed = Data.fromParser(parser) + // const json = parsed.toJSON() + + // // Log any mismatches + // if (JSON.stringify(json.value) !== JSON.stringify(param.value)) { + // console.log(`Mismatch at parameter ${index}:`) + // console.log(' Original:', param.value) + // console.log(' Parsed:', json.value) + // } + // }) + + // // Log all results for debugging + // console.log('All parameter encodings:') + // results.forEach((r) => console.log(r)) + // }) + // }) + + // describe('Error handling', () => { + // it('should throw on invalid type string', () => { + // expect(() => { + // Data.from({ type: 'INVALID_TYPE', value: '123' }) + // }).toThrow('Data: unsupported type string: INVALID_TYPE') + // }) + + // it('should throw on UINT8 out of range', () => { + // expect(() => { + // Data.from({ type: 'UINT8', value: 256 }) + // }).toThrow('UINT8 value out of range') + // }) + + // it('should throw on UINT16 out of range', () => { + // expect(() => { + // Data.from({ type: 'UINT16', value: 65536 }) + // }).toThrow('UINT16 value out of range') + // }) + + // it('should throw on invalid input format', () => { + // expect(() => { + // Data.from('invalid') + // }).toThrow('Data.from: value must be Data instance or DataJSON object') + // }) + // }) + + // describe('Data equality', () => { + // it('should correctly compare equal Data instances', () => { + // const data1 = Data.from({ type: 'UINT32', value: 12345 }) + // const data2 = Data.from({ type: 'UINT32', value: 12345 }) + // expect(data1.equals(data2)).toBe(true) + // }) + + // it('should correctly identify unequal Data instances', () => { + // const data1 = Data.from({ type: 'UINT32', value: 12345 }) + // const data2 = Data.from({ type: 'UINT32', value: 54321 }) + // expect(data1.equals(data2)).toBe(false) + // }) + + // it('should identify different types as unequal', () => { + // const data1 = Data.from({ type: 'UINT16', value: 100 }) + // const data2 = Data.from({ type: 'UINT32', value: 100 }) + // expect(data1.equals(data2)).toBe(false) + // }) + // }) + + // describe('Data getValue method', () => { + // it('should correctly retrieve UINT8 value', () => { + // const data = Data.from({ type: 'UINT8', value: 42 }) + // const value = data.getValue() + // expect(value).toBeInstanceOf(UInt8) + // expect(value.toJSON()).toBe(42) + // }) + + // it('should correctly retrieve VL value', () => { + // const data = Data.from({ type: 'VL', value: 'DEADBEEF' }) + // const value = data.getValue() + // expect(value).toBeInstanceOf(Blob) + // expect(value.toJSON()).toBe('DEADBEEF') + // }) + + // it('should correctly retrieve AMOUNT value', () => { + // const data = Data.from({ type: 'AMOUNT', value: '1000000' }) + // const value = data.getValue() + // expect(value).toBeInstanceOf(Amount) + // expect(value.toJSON()).toBe('1000000') + // }) + // }) +}) diff --git a/packages/xrpl/src/models/common/index.ts b/packages/xrpl/src/models/common/index.ts index 4297f47252..a7d2738eae 100644 --- a/packages/xrpl/src/models/common/index.ts +++ b/packages/xrpl/src/models/common/index.ts @@ -326,3 +326,43 @@ export interface MPTokenMetadataUri { */ title: string } + +export interface Function { + Function: { + FunctionName: string + Parameters?: Parameter[] + } +} + +export interface ParameterType { + type: string +} + +export interface ParameterValue { + type: string + value: any +} + +export interface Parameter { + Parameter: { + ParameterFlag?: number + ParameterName?: string + ParameterType?: ParameterType + ParameterValue?: ParameterValue + } +} + +export interface InstanceParameter { + InstanceParameter: { + ParameterFlag: number + ParameterName: string + ParameterType: ParameterType + } +} + +export interface InstanceParameterValue { + InstanceParameterValue: { + ParameterFlag: number + ParameterValue: ParameterValue + } +} diff --git a/packages/xrpl/src/models/ledger/AccountRoot.ts b/packages/xrpl/src/models/ledger/AccountRoot.ts index fdcc5e0f86..1a6249ad47 100644 --- a/packages/xrpl/src/models/ledger/AccountRoot.ts +++ b/packages/xrpl/src/models/ledger/AccountRoot.ts @@ -34,6 +34,12 @@ export default interface AccountRoot extends BaseLedgerEntry, HasPreviousTxnID { * If present, indicates that this is a special AMM AccountRoot; always omitted on non-AMM accounts. */ AMMID?: string + /** + * The ledger entry ID of the corresponding Contract ledger entry. + * Set during contract creation; cannot be modified. + * If present, indicates that this is a special Contract AccountRoot; always omitted on non-Contract accounts. + */ + ContractID?: string /** * A domain associated with this account. In JSON, this is the hexadecimal * for the ASCII representation of the domain. diff --git a/packages/xrpl/src/models/ledger/Contract.ts b/packages/xrpl/src/models/ledger/Contract.ts new file mode 100644 index 0000000000..54ce33fbd1 --- /dev/null +++ b/packages/xrpl/src/models/ledger/Contract.ts @@ -0,0 +1,25 @@ +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' +import { InstanceParameterValue } from '../common' + +/** + * + * + * @category Ledger Entries + */ +export default interface Contract extends BaseLedgerEntry, HasPreviousTxnID { + LedgerEntryType: 'Contract' + /** The sequence number of the next valid transaction for this account. */ + Sequence: number + /** The owner node for this contract. */ + OwnerNode: string + /** The account that owns this contract. */ + Owner: string + /** The account associated with this contract. */ + ContractAccount: string + /** The hash of the contract. */ + ContractHash: string + /** Instance parameter values for the contract. */ + InstanceParameterValues?: InstanceParameterValue[] + /** URI associated with the contract. */ + URI?: string +} diff --git a/packages/xrpl/src/models/ledger/ContractData.ts b/packages/xrpl/src/models/ledger/ContractData.ts new file mode 100644 index 0000000000..70719e2bf7 --- /dev/null +++ b/packages/xrpl/src/models/ledger/ContractData.ts @@ -0,0 +1,20 @@ +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' + +/** + * + * + * @category Ledger Entries + */ +export default interface ContractData + extends BaseLedgerEntry, + HasPreviousTxnID { + LedgerEntryType: 'ContractData' + /** The owner node for this contract data. */ + OwnerNode: string + /** The account that owns this contract data. */ + Owner: string + /** The account associated with this contract. */ + ContractAccount: string + /** The JSON data for the contract. */ + ContractJson: Record +} diff --git a/packages/xrpl/src/models/ledger/ContractSource.ts b/packages/xrpl/src/models/ledger/ContractSource.ts new file mode 100644 index 0000000000..cb87c796a0 --- /dev/null +++ b/packages/xrpl/src/models/ledger/ContractSource.ts @@ -0,0 +1,67 @@ +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' +import { Function, InstanceParameter } from '../common' + +/** + * + * + * @category Ledger Entries + */ +export default interface ContractSource + extends BaseLedgerEntry, + HasPreviousTxnID { + LedgerEntryType: 'ContractSource' + /** The hash of the contract. */ + ContractHash: string + /** The code for the contract. */ + ContractCode: string + /** The functions available in this contract. */ + Functions: Function[] + /** Instance parameters for the contract. */ + InstanceParameters?: InstanceParameter[] + /** Reference count for this contract source. */ + ReferenceCount: number + + Flags: number +} + +/** + * A boolean map of ContractFlags for simplified code checking Contract settings. + * For submitting settings flags to the ledger, use ContractFlags instead. + */ +export interface ContractFlagsInterface { + /** + * Indicates whether the contract is immutable. + */ + lsfImmutable?: boolean + /** + * Indicates whether the contract code is immutable. + */ + tfCodeImmutable?: boolean + /** + * Indicates whether the contract ABI is immutable. + */ + tfABIImmutable?: boolean + /** + * Indicates whether the contract is undeletable. + */ + tfUndeletable?: boolean +} + +export enum ContractFlags { + /** + * Indicates whether the contract is immutable. + */ + lsfImmutable = 0x00010000, + /** + * Indicates whether the contract code is immutable. + */ + tfCodeImmutable = 0x00020000, + /** + * Indicates whether the contract ABI is immutable. + */ + tfABIImmutable = 0x00040000, + /** + * Indicates whether the contract is undeletable. + */ + tfUndeletable = 0x00080000, +} diff --git a/packages/xrpl/src/models/methods/contractInfo.ts b/packages/xrpl/src/models/methods/contractInfo.ts new file mode 100644 index 0000000000..30c702dea9 --- /dev/null +++ b/packages/xrpl/src/models/methods/contractInfo.ts @@ -0,0 +1,58 @@ +import { AccountRoot } from '../ledger' + +import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' + +/** + * The `contract_info` command retrieves information about a contract, its + * activity, and its XRP balance. All information retrieved is relative to a + * particular version of the ledger. Returns an {@link ContractInfoResponse}. + * + * @category Requests + */ +export interface ContractInfoRequest + extends BaseRequest, + LookupByLedgerRequest { + command: 'contract_info' + /** A unique identifier for the contract, most commonly the contract's address. */ + contract_account: string + /** If you include an account we will return the contract data for that account. */ + account?: string + /** If you include a function we will return the contract data for that function. */ + function?: string +} + +interface ContractInfoResponse extends BaseResponse { + result: { + // IDEA + // contract: any // LedgerObject Contract for the contract instance + // contract_source: any // LedgerObject ContractSource for the contract code + // contract_account: any LedgerObject AccountRoot for pseudo-account of the contract + + contract_account: string + code: string + hash: string + functions: any[] + source_code_uri: string + + /** + * The AccountRoot ledger object with this account's information, as stored + * in the ledger. + */ + account_data: AccountRoot + contract_data: any + user_data?: any + + /** + * The ledger index of the current in-progress ledger, which was used when + * retrieving this information. + */ + ledger_current_index?: number + /** + * The ledger index of the ledger version used when retrieving this + * information. The information does not contain any changes from ledger + * versions newer than this one. + */ + ledger_index?: number + validated?: boolean + } +} diff --git a/packages/xrpl/src/models/transactions/common.ts b/packages/xrpl/src/models/transactions/common.ts index 42dfe47cbf..639c5ac480 100644 --- a/packages/xrpl/src/models/transactions/common.ts +++ b/packages/xrpl/src/models/transactions/common.ts @@ -778,3 +778,26 @@ export function isDomainID(domainID: unknown): domainID is string { isHex(domainID) ) } + +/** + * Enum representing values of {@link ContractParameter} transaction flags. + * + * @category Transaction Flags + */ +export enum ContractParameterFlags { + tfSendAmount = 0x00010000, + tfSendNFToken = 0x00020000, + tfAuthorizeToken = 0x00040000, +} + +/** + * Map of flags to boolean values representing {@link ContractParameter} transaction + * flags. + * + * @category Transaction Flags + */ +export interface ContractParameterFlagsInterface extends GlobalFlagsInterface { + tfSendAmount?: boolean + tfSendNFToken?: boolean + tfAuthorizeToken?: boolean +} diff --git a/packages/xrpl/src/models/transactions/contractCall.ts b/packages/xrpl/src/models/transactions/contractCall.ts new file mode 100644 index 0000000000..405d38f138 --- /dev/null +++ b/packages/xrpl/src/models/transactions/contractCall.ts @@ -0,0 +1,42 @@ +import { Parameter } from '../common' +import { + BaseTransaction, + // isNumber, + // isString, + validateBaseTransaction, + // validateOptionalField, + // validateRequiredField, +} from './common' + +/** + * @category Transaction Models + */ +export interface ContractCall extends BaseTransaction { + TransactionType: 'ContractCall' + + ComputationAllowance: number + + ContractAccount: string + + FunctionName: string + + Parameters?: Parameter[] +} + +/** + * Verify the form and type of a ContractCall at runtime. + * + * @param tx - A ContractCall Transaction. + * @throws When the ContractCall is malformed. + */ +export function validateContractCall(tx: Record): void { + validateBaseTransaction(tx) + + // validateRequiredField(tx, 'ComputationAllowance', isNumber) + + // validateRequiredField(tx, 'ContractAccount', isString) + + // validateRequiredField(tx, 'FunctionName', isString) + + // validateOptionalField(tx, 'Parameters', isany[]) +} diff --git a/packages/xrpl/src/models/transactions/contractClawback.ts b/packages/xrpl/src/models/transactions/contractClawback.ts new file mode 100644 index 0000000000..2976a9b9a2 --- /dev/null +++ b/packages/xrpl/src/models/transactions/contractClawback.ts @@ -0,0 +1,35 @@ +import { Amount } from '../common' + +import { + BaseTransaction, + // isAmount, + // isString, + validateBaseTransaction, + // validateOptionalField, + // validateRequiredField, +} from './common' + +/** + * @category Transaction Models + */ +export interface ContractClawback extends BaseTransaction { + TransactionType: 'ContractClawback' + + Amount: Amount + + ContractAccount?: string +} + +/** + * Verify the form and type of a ContractClawback at runtime. + * + * @param tx - A ContractClawback Transaction. + * @throws When the ContractClawback is malformed. + */ +export function validateContractClawback(tx: Record): void { + validateBaseTransaction(tx) + + // validateRequiredField(tx, 'Amount', isAmount) + + // validateOptionalField(tx, 'ContractAccount', isString) +} diff --git a/packages/xrpl/src/models/transactions/contractCreate.ts b/packages/xrpl/src/models/transactions/contractCreate.ts new file mode 100644 index 0000000000..497dafce60 --- /dev/null +++ b/packages/xrpl/src/models/transactions/contractCreate.ts @@ -0,0 +1,74 @@ +import { Function, InstanceParameter, InstanceParameterValue } from '../common' +import { + BaseTransaction, + GlobalFlagsInterface, + // isString, + validateBaseTransaction, + // validateOptionalField, +} from './common' + +/** + * Enum representing values of {@link Contract} transaction flags. + * + * @category Transaction Flags + */ +export enum ContractFlags { + tfImmutable = 0x00010000, + tfCodeImmutable = 0x00020000, + tfABIImmutable = 0x00040000, + tfUndeletable = 0x00080000, +} + +/** + * Map of flags to boolean values representing {@link Contract} transaction + * flags. + * + * @category Transaction Flags + */ +export interface ContractFlagsInterface extends GlobalFlagsInterface { + tfImmutable?: boolean + tfCodeImmutable?: boolean + tfABIImmutable?: boolean + tfUndeletable?: boolean +} + +/** + * @category Transaction Models + */ +export interface ContractCreate extends BaseTransaction { + TransactionType: 'ContractCreate' + + ContractCode?: string + + ContractHash?: string + + Functions?: Function[] + + InstanceParameters?: InstanceParameter[] + + InstanceParameterValues?: InstanceParameterValue[] + + URI?: string +} + +/** + * Verify the form and type of a ContractCreate at runtime. + * + * @param tx - A ContractCreate Transaction. + * @throws When the ContractCreate is malformed. + */ +export function validateContractCreate(tx: Record): void { + validateBaseTransaction(tx) + + // validateOptionalField(tx, 'ContractCode', isString) + + // validateOptionalField(tx, 'ContractHash', isString) + + // validateOptionalField(tx, 'Functions', isany[]) + + // validateOptionalField(tx, 'InstanceParameters', isany[]) + + // validateOptionalField(tx, 'InstanceParameterValues', isany[]) + + // validateOptionalField(tx, 'URI', isString) +} diff --git a/packages/xrpl/src/models/transactions/contractDelete.ts b/packages/xrpl/src/models/transactions/contractDelete.ts new file mode 100644 index 0000000000..60501195f2 --- /dev/null +++ b/packages/xrpl/src/models/transactions/contractDelete.ts @@ -0,0 +1,27 @@ +import { + BaseTransaction, + // isString, + validateBaseTransaction, + // validateRequiredField, +} from './common' + +/** + * @category Transaction Models + */ +export interface ContractDelete extends BaseTransaction { + TransactionType: 'ContractDelete' + + ContractAccount: string +} + +/** + * Verify the form and type of a ContractDelete at runtime. + * + * @param tx - A ContractDelete Transaction. + * @throws When the ContractDelete is malformed. + */ +export function validateContractDelete(tx: Record): void { + validateBaseTransaction(tx) + + // validateRequiredField(tx, 'ContractAccount', isString) +} diff --git a/packages/xrpl/src/models/transactions/contractModify.ts b/packages/xrpl/src/models/transactions/contractModify.ts new file mode 100644 index 0000000000..c16f79b9c9 --- /dev/null +++ b/packages/xrpl/src/models/transactions/contractModify.ts @@ -0,0 +1,52 @@ +import { Function, InstanceParameter, InstanceParameterValue } from '../common' +import { + BaseTransaction, + // isString, + validateBaseTransaction, + // validateOptionalField, +} from './common' + +/** + * @category Transaction Models + */ +export interface ContractModify extends BaseTransaction { + TransactionType: 'ContractModify' + + ContractAccount?: string + + ContractCode?: string + + ContractHash?: string + + Functions?: Function[] + + InstanceParameters?: InstanceParameter[] + + InstanceParameterValues?: InstanceParameterValue[] + + URI?: string +} + +/** + * Verify the form and type of a ContractModify at runtime. + * + * @param tx - A ContractModify Transaction. + * @throws When the ContractModify is malformed. + */ +export function validateContractModify(tx: Record): void { + validateBaseTransaction(tx) + + // validateOptionalField(tx, 'ContractAccount', isString) + + // validateOptionalField(tx, 'ContractCode', isString) + + // validateOptionalField(tx, 'ContractHash', isString) + + // validateOptionalField(tx, 'Functions', isany[]) + + // validateOptionalField(tx, 'InstanceParameters', isany[]) + + // validateOptionalField(tx, 'InstanceParameterValues', isany[]) + + // validateOptionalField(tx, 'URI', isString) +} diff --git a/packages/xrpl/src/models/transactions/contractUserDelete.ts b/packages/xrpl/src/models/transactions/contractUserDelete.ts new file mode 100644 index 0000000000..a1e07f944f --- /dev/null +++ b/packages/xrpl/src/models/transactions/contractUserDelete.ts @@ -0,0 +1,42 @@ +import { Parameter } from '../common' +import { + BaseTransaction, + // isNumber, + // isString, + validateBaseTransaction, + // validateOptionalField, + // validateRequiredField, +} from './common' + +/** + * @category Transaction Models + */ +export interface ContractUserDelete extends BaseTransaction { + TransactionType: 'ContractUserDelete' + + ComputationAllowance: number + + ContractAccount: string + + FunctionName: string + + Parameters?: Parameter[] +} + +/** + * Verify the form and type of a ContractUserDelete at runtime. + * + * @param tx - A ContractUserDelete Transaction. + * @throws When the ContractUserDelete is malformed. + */ +export function validateContractUserDelete(tx: Record): void { + validateBaseTransaction(tx) + + // validateRequiredField(tx, 'ComputationAllowance', isNumber) + + // validateRequiredField(tx, 'ContractAccount', isString) + + // validateRequiredField(tx, 'FunctionName', isString) + + // validateOptionalField(tx, 'Parameters', isany[]) +} diff --git a/packages/xrpl/src/models/transactions/index.ts b/packages/xrpl/src/models/transactions/index.ts index d7afb63012..a61071f187 100644 --- a/packages/xrpl/src/models/transactions/index.ts +++ b/packages/xrpl/src/models/transactions/index.ts @@ -43,6 +43,16 @@ export { CheckCancel } from './checkCancel' export { CheckCash } from './checkCash' export { CheckCreate } from './checkCreate' export { Clawback } from './clawback' +export { ContractCall } from './contractCall' +export { ContractClawback } from './contractClawback' +export { + ContractFlags, + ContractFlagsInterface, + ContractCreate, +} from './contractCreate' +export { ContractDelete } from './contractDelete' +export { ContractModify } from './contractModify' +export { ContractUserDelete } from './contractUserDelete' export { CredentialAccept } from './CredentialAccept' export { CredentialCreate } from './CredentialCreate' export { CredentialDelete } from './CredentialDelete' diff --git a/packages/xrpl/src/models/transactions/transaction.ts b/packages/xrpl/src/models/transactions/transaction.ts index 97f710a2ea..40e542861d 100644 --- a/packages/xrpl/src/models/transactions/transaction.ts +++ b/packages/xrpl/src/models/transactions/transaction.ts @@ -23,6 +23,15 @@ import { isIssuedCurrencyAmount, validateBaseTransaction, } from './common' +import { ContractCall, validateContractCall } from './contractCall' +import { ContractClawback, validateContractClawback } from './contractClawback' +import { ContractCreate, validateContractCreate } from './contractCreate' +import { ContractDelete, validateContractDelete } from './contractDelete' +import { ContractModify, validateContractModify } from './contractModify' +import { + ContractUserDelete, + validateContractUserDelete, +} from './contractUserDelete' import { CredentialAccept, validateCredentialAccept } from './CredentialAccept' import { CredentialCreate, validateCredentialCreate } from './CredentialCreate' import { CredentialDelete, validateCredentialDelete } from './CredentialDelete' @@ -165,6 +174,12 @@ export type SubmittableTransaction = | CheckCash | CheckCreate | Clawback + | ContractCall + | ContractClawback + | ContractCreate + | ContractDelete + | ContractModify + | ContractUserDelete | CredentialAccept | CredentialCreate | CredentialDelete @@ -346,6 +361,30 @@ export function validate(transaction: Record): void { validateClawback(tx) break + case 'ContractCall': + validateContractCall(tx) + break + + case 'ContractClawback': + validateContractClawback(tx) + break + + case 'ContractCreate': + validateContractCreate(tx) + break + + case 'ContractDelete': + validateContractDelete(tx) + break + + case 'ContractModify': + validateContractModify(tx) + break + + case 'ContractUserDelete': + validateContractUserDelete(tx) + break + case 'CredentialAccept': validateCredentialAccept(tx) break diff --git a/packages/xrpl/test/models/contractCall.test.ts b/packages/xrpl/test/models/contractCall.test.ts new file mode 100644 index 0000000000..4ed5845605 --- /dev/null +++ b/packages/xrpl/test/models/contractCall.test.ts @@ -0,0 +1,130 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateContractCall } from '../../src/models/transactions/ContractCall' + +/** + * ContractCall Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('ContractCall', function () { + let tx + + beforeEach(function () { + tx = { + /* TODO: add sample transaction */ + } as any + }) + + it('verifies valid ContractCall', function () { + assert.doesNotThrow(() => validateContractCall(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + + it('throws w/ missing ComputationAllowance', function () { + delete tx.ComputationAllowance + + assert.throws( + () => validateContractCall(tx), + ValidationError, + 'ContractCall: missing field ComputationAllowance', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractCall: missing field ComputationAllowance', + ) + }) + + it('throws w/ invalid ComputationAllowance', function () { + tx.ComputationAllowance = 'number' + + assert.throws( + () => validateContractCall(tx), + ValidationError, + 'ContractCall: invalid field ComputationAllowance', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractCall: invalid field ComputationAllowance', + ) + }) + + it('throws w/ missing ContractAccount', function () { + delete tx.ContractAccount + + assert.throws( + () => validateContractCall(tx), + ValidationError, + 'ContractCall: missing field ContractAccount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractCall: missing field ContractAccount', + ) + }) + + it('throws w/ invalid ContractAccount', function () { + tx.ContractAccount = 123 + + assert.throws( + () => validateContractCall(tx), + ValidationError, + 'ContractCall: invalid field ContractAccount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractCall: invalid field ContractAccount', + ) + }) + + it('throws w/ missing FunctionName', function () { + delete tx.FunctionName + + assert.throws( + () => validateContractCall(tx), + ValidationError, + 'ContractCall: missing field FunctionName', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractCall: missing field FunctionName', + ) + }) + + it('throws w/ invalid FunctionName', function () { + tx.FunctionName = 123 + + assert.throws( + () => validateContractCall(tx), + ValidationError, + 'ContractCall: invalid field FunctionName', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractCall: invalid field FunctionName', + ) + }) + + it('throws w/ invalid Parameters', function () { + tx.Parameters = + /*TODO*/ + + assert.throws( + () => validateContractCall(tx), + ValidationError, + 'ContractCall: invalid field Parameters', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractCall: invalid field Parameters', + ) + }) +}) diff --git a/packages/xrpl/test/models/contractClawback.test.ts b/packages/xrpl/test/models/contractClawback.test.ts new file mode 100644 index 0000000000..7cfa7e02c1 --- /dev/null +++ b/packages/xrpl/test/models/contractClawback.test.ts @@ -0,0 +1,67 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateContractClawback } from '../../src/models/transactions/ContractClawback' + +/** + * ContractClawback Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('ContractClawback', function () { + let tx + + beforeEach(function () { + tx = { /* TODO: add sample transaction */ } as any + }) + + it('verifies valid ContractClawback', function () { + assert.doesNotThrow(() => validateContractClawback(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + + it("throws w/ missing Amount", function () { + delete tx.Amount + + assert.throws( + () => validateContractClawback(tx), + ValidationError, + 'ContractClawback: missing field Amount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractClawback: missing field Amount', + ) + }) + + it('throws w/ invalid Amount', function () { + tx.Amount = {"currency":"ETH"} + + assert.throws( + () => validateContractClawback(tx), + ValidationError, + 'ContractClawback: invalid field Amount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractClawback: invalid field Amount', + ) + }) + + it('throws w/ invalid ContractAccount', function () { + tx.ContractAccount = 123 + + assert.throws( + () => validateContractClawback(tx), + ValidationError, + 'ContractClawback: invalid field ContractAccount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractClawback: invalid field ContractAccount', + ) + }) +}) diff --git a/packages/xrpl/test/models/contractCreate.test.ts b/packages/xrpl/test/models/contractCreate.test.ts new file mode 100644 index 0000000000..0bf00fc2e3 --- /dev/null +++ b/packages/xrpl/test/models/contractCreate.test.ts @@ -0,0 +1,112 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateContractCreate } from '../../src/models/transactions/ContractCreate' + +/** + * ContractCreate Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('ContractCreate', function () { + let tx + + beforeEach(function () { + tx = { /* TODO: add sample transaction */ } as any + }) + + it('verifies valid ContractCreate', function () { + assert.doesNotThrow(() => validateContractCreate(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + + it('throws w/ invalid ContractCode', function () { + tx.ContractCode = 123 + + assert.throws( + () => validateContractCreate(tx), + ValidationError, + 'ContractCreate: invalid field ContractCode', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractCreate: invalid field ContractCode', + ) + }) + + it('throws w/ invalid ContractHash', function () { + tx.ContractHash = 123 + + assert.throws( + () => validateContractCreate(tx), + ValidationError, + 'ContractCreate: invalid field ContractHash', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractCreate: invalid field ContractHash', + ) + }) + + it('throws w/ invalid Functions', function () { + tx.Functions = /*TODO*/ + + assert.throws( + () => validateContractCreate(tx), + ValidationError, + 'ContractCreate: invalid field Functions', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractCreate: invalid field Functions', + ) + }) + + it('throws w/ invalid InstanceParameters', function () { + tx.InstanceParameters = /*TODO*/ + + assert.throws( + () => validateContractCreate(tx), + ValidationError, + 'ContractCreate: invalid field InstanceParameters', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractCreate: invalid field InstanceParameters', + ) + }) + + it('throws w/ invalid InstanceParameterValues', function () { + tx.InstanceParameterValues = /*TODO*/ + + assert.throws( + () => validateContractCreate(tx), + ValidationError, + 'ContractCreate: invalid field InstanceParameterValues', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractCreate: invalid field InstanceParameterValues', + ) + }) + + it('throws w/ invalid URI', function () { + tx.URI = 123 + + assert.throws( + () => validateContractCreate(tx), + ValidationError, + 'ContractCreate: invalid field URI', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractCreate: invalid field URI', + ) + }) +}) diff --git a/packages/xrpl/test/models/contractDelete.test.ts b/packages/xrpl/test/models/contractDelete.test.ts new file mode 100644 index 0000000000..9547af2e96 --- /dev/null +++ b/packages/xrpl/test/models/contractDelete.test.ts @@ -0,0 +1,52 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateContractDelete } from '../../src/models/transactions/ContractDelete' + +/** + * ContractDelete Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('ContractDelete', function () { + let tx + + beforeEach(function () { + tx = { /* TODO: add sample transaction */ } as any + }) + + it('verifies valid ContractDelete', function () { + assert.doesNotThrow(() => validateContractDelete(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + + it("throws w/ missing ContractAccount", function () { + delete tx.ContractAccount + + assert.throws( + () => validateContractDelete(tx), + ValidationError, + 'ContractDelete: missing field ContractAccount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractDelete: missing field ContractAccount', + ) + }) + + it('throws w/ invalid ContractAccount', function () { + tx.ContractAccount = 123 + + assert.throws( + () => validateContractDelete(tx), + ValidationError, + 'ContractDelete: invalid field ContractAccount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractDelete: invalid field ContractAccount', + ) + }) +}) diff --git a/packages/xrpl/test/models/contractModify.test.ts b/packages/xrpl/test/models/contractModify.test.ts new file mode 100644 index 0000000000..a15525f857 --- /dev/null +++ b/packages/xrpl/test/models/contractModify.test.ts @@ -0,0 +1,127 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateContractModify } from '../../src/models/transactions/ContractModify' + +/** + * ContractModify Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('ContractModify', function () { + let tx + + beforeEach(function () { + tx = { /* TODO: add sample transaction */ } as any + }) + + it('verifies valid ContractModify', function () { + assert.doesNotThrow(() => validateContractModify(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + + it('throws w/ invalid ContractAccount', function () { + tx.ContractAccount = 123 + + assert.throws( + () => validateContractModify(tx), + ValidationError, + 'ContractModify: invalid field ContractAccount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractModify: invalid field ContractAccount', + ) + }) + + it('throws w/ invalid ContractCode', function () { + tx.ContractCode = 123 + + assert.throws( + () => validateContractModify(tx), + ValidationError, + 'ContractModify: invalid field ContractCode', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractModify: invalid field ContractCode', + ) + }) + + it('throws w/ invalid ContractHash', function () { + tx.ContractHash = 123 + + assert.throws( + () => validateContractModify(tx), + ValidationError, + 'ContractModify: invalid field ContractHash', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractModify: invalid field ContractHash', + ) + }) + + it('throws w/ invalid Functions', function () { + tx.Functions = /*TODO*/ + + assert.throws( + () => validateContractModify(tx), + ValidationError, + 'ContractModify: invalid field Functions', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractModify: invalid field Functions', + ) + }) + + it('throws w/ invalid InstanceParameters', function () { + tx.InstanceParameters = /*TODO*/ + + assert.throws( + () => validateContractModify(tx), + ValidationError, + 'ContractModify: invalid field InstanceParameters', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractModify: invalid field InstanceParameters', + ) + }) + + it('throws w/ invalid InstanceParameterValues', function () { + tx.InstanceParameterValues = /*TODO*/ + + assert.throws( + () => validateContractModify(tx), + ValidationError, + 'ContractModify: invalid field InstanceParameterValues', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractModify: invalid field InstanceParameterValues', + ) + }) + + it('throws w/ invalid URI', function () { + tx.URI = 123 + + assert.throws( + () => validateContractModify(tx), + ValidationError, + 'ContractModify: invalid field URI', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractModify: invalid field URI', + ) + }) +}) diff --git a/packages/xrpl/test/models/contractUserDelete.test.ts b/packages/xrpl/test/models/contractUserDelete.test.ts new file mode 100644 index 0000000000..269356a07d --- /dev/null +++ b/packages/xrpl/test/models/contractUserDelete.test.ts @@ -0,0 +1,127 @@ +import { assert } from 'chai' + +import { validate, ValidationError } from '../../src' +import { validateContractUserDelete } from '../../src/models/transactions/ContractUserDelete' + +/** + * ContractUserDelete Transaction Verification Testing. + * + * Providing runtime verification testing for each specific transaction type. + */ +describe('ContractUserDelete', function () { + let tx + + beforeEach(function () { + tx = { /* TODO: add sample transaction */ } as any + }) + + it('verifies valid ContractUserDelete', function () { + assert.doesNotThrow(() => validateContractUserDelete(tx)) + assert.doesNotThrow(() => validate(tx)) + }) + + it("throws w/ missing ComputationAllowance", function () { + delete tx.ComputationAllowance + + assert.throws( + () => validateContractUserDelete(tx), + ValidationError, + 'ContractUserDelete: missing field ComputationAllowance', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractUserDelete: missing field ComputationAllowance', + ) + }) + + it('throws w/ invalid ComputationAllowance', function () { + tx.ComputationAllowance = 'number' + + assert.throws( + () => validateContractUserDelete(tx), + ValidationError, + 'ContractUserDelete: invalid field ComputationAllowance', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractUserDelete: invalid field ComputationAllowance', + ) + }) + + it("throws w/ missing ContractAccount", function () { + delete tx.ContractAccount + + assert.throws( + () => validateContractUserDelete(tx), + ValidationError, + 'ContractUserDelete: missing field ContractAccount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractUserDelete: missing field ContractAccount', + ) + }) + + it('throws w/ invalid ContractAccount', function () { + tx.ContractAccount = 123 + + assert.throws( + () => validateContractUserDelete(tx), + ValidationError, + 'ContractUserDelete: invalid field ContractAccount', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractUserDelete: invalid field ContractAccount', + ) + }) + + it("throws w/ missing FunctionName", function () { + delete tx.FunctionName + + assert.throws( + () => validateContractUserDelete(tx), + ValidationError, + 'ContractUserDelete: missing field FunctionName', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractUserDelete: missing field FunctionName', + ) + }) + + it('throws w/ invalid FunctionName', function () { + tx.FunctionName = 123 + + assert.throws( + () => validateContractUserDelete(tx), + ValidationError, + 'ContractUserDelete: invalid field FunctionName', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractUserDelete: invalid field FunctionName', + ) + }) + + it('throws w/ invalid Parameters', function () { + tx.Parameters = /*TODO*/ + + assert.throws( + () => validateContractUserDelete(tx), + ValidationError, + 'ContractUserDelete: invalid field Parameters', + ) + assert.throws( + () => validate(tx), + ValidationError, + 'ContractUserDelete: invalid field Parameters', + ) + }) +}) diff --git a/packages/xrpl/tools/generateModels.js b/packages/xrpl/tools/generateModels.js index 0dd4ea67d1..1d1a601220 100644 --- a/packages/xrpl/tools/generateModels.js +++ b/packages/xrpl/tools/generateModels.js @@ -60,7 +60,7 @@ async function processRippledSource(folder) { 'include/xrpl/protocol/detail/transactions.macro', ) const txFormatsHits = transactionsMacroFile.matchAll( - /^ *TRANSACTION\(tt[A-Z_]+ *,* [0-9]+ *, *([A-Za-z]+)[ \n]*,[ \n]*Delegation::[A-Za-z]+[ \n]*,[ \n]*\({[ \n]*(({sf[A-Za-z0-9]+, soe(OPTIONAL|REQUIRED|DEFAULT)(, soeMPT(None|Supported|NotSupported))?},[ \n]+)*)}\)\)$/gm, + /^ *TRANSACTION\(tt[A-Z_]+ *,* [0-9]+ *, *([A-Za-z]+)[ \n]*,[ \n]*Delegation::[A-Za-z]+[ \n]*,[ \n]*[A-Za-z0-9_{}]+[ \n]*,[ \n]*[A-Za-z|]+[ \n]*,[ \n]*\({[ \n]*(({sf[A-Za-z0-9]+, soe(OPTIONAL|REQUIRED|DEFAULT)(, soeMPT(None|Supported|NotSupported))?},[ \n]+)*)}\)\)$/gm, ) const txFormats = {} for (const hit of txFormatsHits) { @@ -79,7 +79,12 @@ async function processRippledSource(folder) { .split('\n | ') .filter((value) => !value.includes('export type')) .map((value) => value.trim()) - existingLibraryTxs.push('EnableAmendment', 'SetFee', 'UNLModify') + existingLibraryTxs.push( + 'EnableAmendment', + 'SetFee', + 'UNLModify', + 'LedgerStateFix', + ) const txsToAdd = [] @@ -116,6 +121,9 @@ const typeMap = { XCHAIN_BRIDGE: 'XChainBridge', OBJECT: 'any', ARRAY: 'any[]', + DATA: 'any', + DATA_TYPE: 'any', + JSON: 'any', } const allCommonImports = ['Amount', 'Currency', 'Path', 'XChainBridge'] From f7bef8c71620fd8b500991737b38984c1cf561b3 Mon Sep 17 00:00:00 2001 From: Denis Angell Date: Wed, 22 Oct 2025 03:30:04 +0200 Subject: [PATCH 02/22] fix failing test --- packages/ripple-binary-codec/src/enums/definitions.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/ripple-binary-codec/src/enums/definitions.json b/packages/ripple-binary-codec/src/enums/definitions.json index 52bb3a5094..5366d98ef5 100644 --- a/packages/ripple-binary-codec/src/enums/definitions.json +++ b/packages/ripple-binary-codec/src/enums/definitions.json @@ -3707,6 +3707,7 @@ "XChainAccountCreateCommit": 44, "XChainAddAccountCreateAttestation": 46, "XChainAddClaimAttestation": 45, + "XChainAddAccountCreateAttestation": 46, "XChainClaim": 43, "XChainCommit": 42, "XChainCreateBridge": 48, From 3a01761f68786b4765c142437d7aa7fba5391a8f Mon Sep 17 00:00:00 2001 From: Denis Angell Date: Wed, 24 Sep 2025 08:57:24 +0200 Subject: [PATCH 03/22] add data and datatype --- packages/ripple-binary-codec/src/types/data.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/ripple-binary-codec/src/types/data.ts b/packages/ripple-binary-codec/src/types/data.ts index ab8536d399..0209edaa96 100644 --- a/packages/ripple-binary-codec/src/types/data.ts +++ b/packages/ripple-binary-codec/src/types/data.ts @@ -134,8 +134,8 @@ class Data extends SerializedType { typeof json.value === 'string' ? parseInt(json.value, 10) : typeof json.value === 'number' - ? json.value - : Number(json.value) + ? json.value + : Number(json.value) if ( typeof val !== 'number' || Number.isNaN(val) || @@ -154,8 +154,8 @@ class Data extends SerializedType { typeof json.value === 'string' ? parseInt(json.value, 10) : typeof json.value === 'number' - ? json.value - : Number(json.value) + ? json.value + : Number(json.value) if ( typeof val !== 'number' || Number.isNaN(val) || @@ -174,8 +174,8 @@ class Data extends SerializedType { typeof json.value === 'string' ? parseInt(json.value, 10) : typeof json.value === 'number' - ? json.value - : Number(json.value) + ? json.value + : Number(json.value) dataValue = UInt32.from(val) dataBytes = (dataValue as UInt32).toBytes() break From 2607d1ac3a5347557f74050355cdd92af983b742 Mon Sep 17 00:00:00 2001 From: Denis Angell Date: Sun, 12 Oct 2025 18:21:24 +0200 Subject: [PATCH 04/22] contracts --- .../xrpl/src/models/transactions/common.ts | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/packages/xrpl/src/models/transactions/common.ts b/packages/xrpl/src/models/transactions/common.ts index 639c5ac480..7e675c5e4a 100644 --- a/packages/xrpl/src/models/transactions/common.ts +++ b/packages/xrpl/src/models/transactions/common.ts @@ -801,3 +801,26 @@ export interface ContractParameterFlagsInterface extends GlobalFlagsInterface { tfSendNFToken?: boolean tfAuthorizeToken?: boolean } + +/** + * Enum representing values of {@link ContractParameter} transaction flags. + * + * @category Transaction Flags + */ +export enum ContractParameterFlags { + tfSendAmount = 0x00010000, + tfSendNFToken = 0x00020000, + tfAuthorizeToken = 0x00040000, +} + +/** + * Map of flags to boolean values representing {@link ContractParameter} transaction + * flags. + * + * @category Transaction Flags + */ +export interface ContractParameterFlagsInterface extends GlobalFlagsInterface { + tfSendAmount?: boolean + tfSendNFToken?: boolean + tfAuthorizeToken?: boolean +} From cd9da5f70828d448b356396075abd303d79979c0 Mon Sep 17 00:00:00 2001 From: Denis Angell Date: Thu, 16 Oct 2025 15:12:49 +0200 Subject: [PATCH 05/22] fix --- packages/ripple-binary-codec/src/enums/definitions.json | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/ripple-binary-codec/src/enums/definitions.json b/packages/ripple-binary-codec/src/enums/definitions.json index 5366d98ef5..52bb3a5094 100644 --- a/packages/ripple-binary-codec/src/enums/definitions.json +++ b/packages/ripple-binary-codec/src/enums/definitions.json @@ -3707,7 +3707,6 @@ "XChainAccountCreateCommit": 44, "XChainAddAccountCreateAttestation": 46, "XChainAddClaimAttestation": 45, - "XChainAddAccountCreateAttestation": 46, "XChainClaim": 43, "XChainCommit": 42, "XChainCreateBridge": 48, From 4466d4ac54ca929d298c1000f5fa1891c7996bad Mon Sep 17 00:00:00 2001 From: Denis Angell Date: Fri, 17 Oct 2025 20:33:30 +0200 Subject: [PATCH 06/22] add stjson --- .../src/types/st-object.ts | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/ripple-binary-codec/src/types/st-object.ts b/packages/ripple-binary-codec/src/types/st-object.ts index 0b507cdfd0..53916154ff 100644 --- a/packages/ripple-binary-codec/src/types/st-object.ts +++ b/packages/ripple-binary-codec/src/types/st-object.ts @@ -148,16 +148,16 @@ class STObject extends SerializedType { field.type.name === ST_OBJECT ? this.from(xAddressDecoded[field.name], undefined, definitions) : field.type.name === 'STArray' - ? STArray.from(xAddressDecoded[field.name], definitions) - : field.type.name === 'UInt64' - ? UInt64.from(xAddressDecoded[field.name], field.name) - : field.associatedType?.from - ? field.associatedType.from(xAddressDecoded[field.name]) - : (() => { - throw new Error( - `Type ${field.type.name} for field ${field.name} is missing associatedType.from`, - ) - })() + ? STArray.from(xAddressDecoded[field.name], definitions) + : field.type.name === 'UInt64' + ? UInt64.from(xAddressDecoded[field.name], field.name) + : field.associatedType?.from + ? field.associatedType.from(xAddressDecoded[field.name]) + : (() => { + throw new Error( + `Type ${field.type.name} for field ${field.name} is missing associatedType.from`, + ) + })() if (associatedValue == undefined) { throw new TypeError( From 1df8914c488a26a27f2ea2697875284b27631b63 Mon Sep 17 00:00:00 2001 From: Denis Angell Date: Thu, 23 Oct 2025 20:19:27 +0200 Subject: [PATCH 07/22] fix bug --- .../ripple-binary-codec/src/types/data.ts | 17 ++- .../test/binary-serializer.test.ts | 15 ++ .../test/fixtures/contract-call-binary.json | 1 + .../test/fixtures/contract-call-tx.json | 132 ++++++++++++++++++ 4 files changed, 161 insertions(+), 4 deletions(-) create mode 100644 packages/ripple-binary-codec/test/fixtures/contract-call-binary.json create mode 100644 packages/ripple-binary-codec/test/fixtures/contract-call-tx.json diff --git a/packages/ripple-binary-codec/src/types/data.ts b/packages/ripple-binary-codec/src/types/data.ts index 0209edaa96..e6c6ec42cf 100644 --- a/packages/ripple-binary-codec/src/types/data.ts +++ b/packages/ripple-binary-codec/src/types/data.ts @@ -335,14 +335,21 @@ class Data extends SerializedType { break case SerializedTypeID.STI_VL: - dataValue = Blob.fromParser(parser, parser.readVariableLengthLength()) - dataBytes = dataValue.toBytes() + const valueVL = parser.readVariableLength() + dataValue = Blob.from(bytesToHex(valueVL)) + dataBytes = concat([ + BinarySerializer.encodeVariableLength(valueVL.length), + valueVL, + ]) break case SerializedTypeID.STI_ACCOUNT: parser.skip(1) dataValue = AccountID.fromParser(parser) - dataBytes = (dataValue as AccountID).toBytes() + dataBytes = concat([ + new Uint8Array([0x14]), + (dataValue as AccountID).toBytes(), + ]) break case SerializedTypeID.STI_AMOUNT: @@ -419,8 +426,10 @@ class Data extends SerializedType { case SerializedTypeID.STI_UINT256: return Hash256.fromParser(parser) case SerializedTypeID.STI_VL: - return Blob.fromParser(parser, parser.size()) + const vlLength = parser.readVariableLengthLength() + return Blob.fromParser(parser, vlLength) case SerializedTypeID.STI_ACCOUNT: + parser.skip(1) return AccountID.fromParser(parser) case SerializedTypeID.STI_AMOUNT: return Amount.fromParser(parser) diff --git a/packages/ripple-binary-codec/test/binary-serializer.test.ts b/packages/ripple-binary-codec/test/binary-serializer.test.ts index 5d690d5295..d39630b6b9 100644 --- a/packages/ripple-binary-codec/test/binary-serializer.test.ts +++ b/packages/ripple-binary-codec/test/binary-serializer.test.ts @@ -55,6 +55,13 @@ const Ticket = { }, } +const Contract = { + call: { + tx: require('./fixtures/contract-call-tx.json'), + binary: require('./fixtures/contract-call-binary.json'), + }, +} + let json_undefined = { TakerPays: '223174650', Account: 'rPk2dXr27rMw9G5Ej9ad2Tt7RJzGy8ycBp', @@ -280,6 +287,13 @@ function nfTokenTest() { } } +function ContractTest() { + it('can serialize ContractCall', () => { + expect(encode(Contract.call.tx)).toEqual(Contract.call.binary) + expect(decode(Contract.call.binary)).toEqual(Contract.call.tx) + }) +} + describe('Binary Serialization', function () { describe('nestedObjectTests', nestedObjectTests) describe('BytesList', bytesListTest) @@ -292,4 +306,5 @@ describe('Binary Serialization', function () { describe('OmitUndefined', omitUndefinedTest) describe('TicketTest', ticketTest) describe('NFToken', nfTokenTest) + describe('Contract', ContractTest) }) diff --git a/packages/ripple-binary-codec/test/fixtures/contract-call-binary.json b/packages/ripple-binary-codec/test/fixtures/contract-call-binary.json new file mode 100644 index 0000000000..c6fedef905 --- /dev/null +++ b/packages/ripple-binary-codec/test/fixtures/contract-call-binary.json @@ -0,0 +1 @@ +"12004D24000000052039000F42406840000000000000C870220F66756E6374696F6E5F706172616D738114AE123A8556F3CF91154711376AFB0F894F832B3D80191478A28D084038E5C11F268DE3AAF7182805BE87BFF024E028203B00000000011B0010FFE1E028203B00000000011B0001FFFFE1E028203B00000000011B0002FFFFFFFFE1E028203B00000000011B00037FFFFFFFFFFFFFFFE1E028203B00000000011B000400000000000000000000000000000001E1E028203B00000000011B00110000000000000000000000000000000000000001E1E028203B00000000011B0015000000000000000000000000000000000000000000000001E1E028203B00000000011B0005D955DAC2E77519F05AD151A5D3C99FC8125FB39D58FF9F106F1ACA4491902C25E1E028203B00000000011B000704DEADBEEFE1E028203B00000000011B000814AE123A8556F3CF91154711376AFB0F894F832B3DE1E028203B00000000011B000640000000000F4240E1E028203B00000000011B0006D4844364C5BB00000000000000000000000000005553440000000000A407AF5856CCF3C42619DAA925813FC955C72983E1E028203B00000000011B000900044364C5BB0000FFFFFFF1E1F1" diff --git a/packages/ripple-binary-codec/test/fixtures/contract-call-tx.json b/packages/ripple-binary-codec/test/fixtures/contract-call-tx.json new file mode 100644 index 0000000000..0213c80409 --- /dev/null +++ b/packages/ripple-binary-codec/test/fixtures/contract-call-tx.json @@ -0,0 +1,132 @@ +{ + "Account": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn", + "ComputationAllowance": 1000000, + "ContractAccount": "rBziFEmkBf1QaVKq36EHu9BXaLGmvDC6ww", + "Fee": "200", + "FunctionName": "66756E6374696F6E5F706172616D73", + "Parameters": [ + { + "Parameter": { + "ParameterFlag": 0, + "ParameterValue": { + "type": "UINT8", + "value": 255 + } + } + }, + { + "Parameter": { + "ParameterFlag": 0, + "ParameterValue": { + "type": "UINT16", + "value": 65535 + } + } + }, + { + "Parameter": { + "ParameterFlag": 0, + "ParameterValue": { + "type": "UINT32", + "value": 4294967295 + } + } + }, + { + "Parameter": { + "ParameterFlag": 0, + "ParameterValue": { + "type": "UINT64", + "value": "7FFFFFFFFFFFFFFF" + } + } + }, + { + "Parameter": { + "ParameterFlag": 0, + "ParameterValue": { + "type": "UINT128", + "value": "00000000000000000000000000000001" + } + } + }, + { + "Parameter": { + "ParameterFlag": 0, + "ParameterValue": { + "type": "UINT160", + "value": "0000000000000000000000000000000000000001" + } + } + }, + { + "Parameter": { + "ParameterFlag": 0, + "ParameterValue": { + "type": "UINT192", + "value": "000000000000000000000000000000000000000000000001" + } + } + }, + { + "Parameter": { + "ParameterFlag": 0, + "ParameterValue": { + "type": "UINT256", + "value": "D955DAC2E77519F05AD151A5D3C99FC8125FB39D58FF9F106F1ACA4491902C25" + } + } + }, + { + "Parameter": { + "ParameterFlag": 0, + "ParameterValue": { + "type": "VL", + "value": "DEADBEEF" + } + } + }, + { + "Parameter": { + "ParameterFlag": 0, + "ParameterValue": { + "type": "ACCOUNT", + "value": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn" + } + } + }, + { + "Parameter": { + "ParameterFlag": 0, + "ParameterValue": { + "type": "AMOUNT", + "value": "1000000" + } + } + }, + { + "Parameter": { + "ParameterFlag": 0, + "ParameterValue": { + "type": "AMOUNT", + "value": { + "currency": "USD", + "issuer": "rExKpRKXNz25UAjbckCRtQsJFcSfjL9Er3", + "value": "1.2" + } + } + } + }, + { + "Parameter": { + "ParameterFlag": 0, + "ParameterValue": { + "type": "NUMBER", + "value": "1.2" + } + } + } + ], + "Sequence": 5, + "TransactionType": "ContractCall" +} From d7af2aca35471f3fa6ca91f5d0aaacaac3eb063c Mon Sep 17 00:00:00 2001 From: Denis Angell Date: Tue, 28 Oct 2025 23:08:16 +0100 Subject: [PATCH 08/22] add autofill computation allowance --- packages/xrpl/src/client/index.ts | 5 ++ .../xrpl/src/models/transactions/metadata.ts | 1 + packages/xrpl/src/sugar/autofill.ts | 23 +++++- packages/xrpl/src/sugar/getFeeXrp.ts | 35 ++++++++ packages/xrpl/src/sugar/wasm.ts | 82 +++++++++++++++++++ 5 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 packages/xrpl/src/sugar/wasm.ts diff --git a/packages/xrpl/src/client/index.ts b/packages/xrpl/src/client/index.ts index bef7d06e76..012420a308 100644 --- a/packages/xrpl/src/client/index.ts +++ b/packages/xrpl/src/client/index.ts @@ -69,6 +69,7 @@ import { autofillBatchTxn, handleDeliverMax, getTransactionFee, + getComputationAllowance, } from '../sugar/autofill' import { formatBalances } from '../sugar/balances' import { @@ -663,6 +664,7 @@ class Client extends EventEmitter { * @returns The autofilled transaction. * @throws ValidationError If Amount and DeliverMax fields are not identical in a Payment Transaction */ + // eslint-disable-next-line complexity -- ignore public async autofill( transaction: T, signersCount?: number, @@ -692,6 +694,9 @@ class Client extends EventEmitter { if (tx.TransactionType === 'Payment' && tx.DeliverMax != null) { handleDeliverMax(tx) } + if (tx.TransactionType === 'ContractCall') { + promises.push(getComputationAllowance(this, tx)) + } return Promise.all(promises).then(() => tx) } diff --git a/packages/xrpl/src/models/transactions/metadata.ts b/packages/xrpl/src/models/transactions/metadata.ts index 9a9d7b0604..39eac20388 100644 --- a/packages/xrpl/src/models/transactions/metadata.ts +++ b/packages/xrpl/src/models/transactions/metadata.ts @@ -90,6 +90,7 @@ export interface TransactionMetadataBase { TransactionResult: string ParentBatchID?: string + GasUsed?: number } export type TransactionMetadata = diff --git a/packages/xrpl/src/sugar/autofill.ts b/packages/xrpl/src/sugar/autofill.ts index bb7809ac98..4a0ba146e6 100644 --- a/packages/xrpl/src/sugar/autofill.ts +++ b/packages/xrpl/src/sugar/autofill.ts @@ -2,6 +2,7 @@ /* eslint-disable max-lines -- lots of helper functions needed for autofill */ import BigNumber from 'bignumber.js' import { xAddressToClassicAddress, isValidXAddress } from 'ripple-address-codec' +import { encode } from 'ripple-binary-codec' import { type Client } from '..' import { ValidationError, XrplError } from '../errors' @@ -15,7 +16,7 @@ import { Batch, Payment, Transaction } from '../models/transactions' import { Account } from '../models/transactions/common' import { xrpToDrops } from '../utils' -import getFeeXrp from './getFeeXrp' +import getFeeXrp, { getGasEstimate } from './getFeeXrp' // Expire unconfirmed transactions after 20 ledger versions, approximately 1 minute, by default const LEDGER_OFFSET = 20 @@ -408,6 +409,26 @@ export async function getTransactionFee( tx.Fee = fee.toString(10) } +/** + * Estimates and sets the ComputationAllowance for a transaction by encoding + * a copy of the transaction with an empty SigningPubKey and zero Fee, then + * querying the gas estimate from the server. + * + * @param client - The client used to request the gas estimate. + * @param tx - The transaction object to set ComputationAllowance on. + * @returns A promise that resolves once ComputationAllowance has been set. + */ +export async function getComputationAllowance( + client: Client, + tx: Transaction, +): Promise { + const copyTx = { ...tx } + delete copyTx.SigningPubKey + const tx_blob = encode(copyTx) + // eslint-disable-next-line require-atomic-updates, no-param-reassign -- ignore + tx.ComputationAllowance = await getGasEstimate(client, tx_blob) +} + /** * Scales the given value by multiplying it with the provided multiplier. * diff --git a/packages/xrpl/src/sugar/getFeeXrp.ts b/packages/xrpl/src/sugar/getFeeXrp.ts index 1526cc6c8b..6262488d6d 100644 --- a/packages/xrpl/src/sugar/getFeeXrp.ts +++ b/packages/xrpl/src/sugar/getFeeXrp.ts @@ -44,3 +44,38 @@ export default async function getFeeXrp( // Round fee to 6 decimal places return new BigNumber(fee.toFixed(NUM_DECIMAL_PLACES)).toString(BASE_10) } + +/** + * Estimates the gas required for a transaction by simulating the provided tx blob. + * + * @param client - The Client used to connect to the ledger. + * @param txBlob - The transaction blob to simulate. + * @returns The estimated gas as a string. + */ +export async function getGasEstimate( + client: Client, + txBlob: string, +): Promise { + const response = await client.request({ + command: 'simulate', + tx_blob: txBlob, + }) + + if (response.result.engine_result !== 'tesSUCCESS') { + throw new Error(response.result.engine_result_message) + } + + if (typeof response.result.meta !== 'object') { + throw new XrplError( + 'getGasEstimate: Could not get meta from simulate response', + ) + } + + const meta = response.result.meta + if (typeof meta.GasUsed !== 'number') { + throw new XrplError( + 'getGasEstimate: GasUsed in simulate response is not a number', + ) + } + return Number(meta.GasUsed) +} diff --git a/packages/xrpl/src/sugar/wasm.ts b/packages/xrpl/src/sugar/wasm.ts new file mode 100644 index 0000000000..83de0581ef --- /dev/null +++ b/packages/xrpl/src/sugar/wasm.ts @@ -0,0 +1,82 @@ +import { XrplError } from '../errors' +import { Parameter, InstanceParameter } from '../models/common' + +function isHex(value: string): boolean { + return /^[0-9A-F]+$/iu.test(value) +} + +function hexValue(value: string): string { + return Buffer.from(value, 'utf8').toString('hex').toUpperCase() +} + +/** + * Convert each Parameter.ParameterName in the provided array to an uppercase hexadecimal string + * if it is not already a hex string. + * + * @param data - Array of Parameter objects to normalize. + * @returns A new array of Parameter objects with ParameterName values in uppercase hex. + * @throws {XrplError} If a Parameter is not an object or if ParameterName is not a string. + */ +export function hexParameters(data: Parameter[]): Parameter[] { + const hookParameters: Parameter[] = [] + for (const paramMap of data) { + if (typeof paramMap.Parameter !== 'object') { + throw new XrplError('hexParameters: Parameter must be an object') + } + + if (typeof paramMap.Parameter.ParameterName !== 'string') { + throw new XrplError('hexParameters: ParameterName must be a string') + } + let parameterName = paramMap.Parameter.ParameterName + if (!isHex(parameterName)) { + parameterName = hexValue(parameterName) + } + + hookParameters.push({ + Parameter: { + ...paramMap.Parameter, + ParameterName: parameterName, + }, + }) + } + return hookParameters +} + +/** + * Convert each InstanceParameter.ParameterName in the provided array to an uppercase hexadecimal string + * if it is not already a hex string. + * + * @param data - Array of InstanceParameter objects to normalize. + * @returns A new array of InstanceParameter objects with ParameterName values in uppercase hex. + * @throws {XrplError} If an InstanceParameter is not an object or if ParameterName is not a string. + */ +export function hexInstanceParameters( + data: InstanceParameter[], +): InstanceParameter[] { + const hookParameters: InstanceParameter[] = [] + for (const paramMap of data) { + if (typeof paramMap.InstanceParameter !== 'object') { + throw new XrplError( + 'hexInstanceParameters: InstanceParameter must be an object', + ) + } + + if (typeof paramMap.InstanceParameter.ParameterName !== 'string') { + throw new XrplError( + 'hexInstanceParameters: ParameterName must be a string', + ) + } + let parameterName = paramMap.InstanceParameter.ParameterName + if (!isHex(parameterName)) { + parameterName = hexValue(parameterName) + } + + hookParameters.push({ + InstanceParameter: { + ...paramMap.InstanceParameter, + ParameterName: parameterName, + }, + }) + } + return hookParameters +} From 9132e64c05b3dd7eff899fbf15ee8a7b05bf15c4 Mon Sep 17 00:00:00 2001 From: Denis Angell Date: Fri, 7 Nov 2025 17:49:19 +0100 Subject: [PATCH 09/22] fix --- packages/xrpl/src/models/common/index.ts | 2 - packages/xrpl/src/sugar/wasm.ts | 82 ------------------------ 2 files changed, 84 deletions(-) delete mode 100644 packages/xrpl/src/sugar/wasm.ts diff --git a/packages/xrpl/src/models/common/index.ts b/packages/xrpl/src/models/common/index.ts index a7d2738eae..ef1147c106 100644 --- a/packages/xrpl/src/models/common/index.ts +++ b/packages/xrpl/src/models/common/index.ts @@ -346,7 +346,6 @@ export interface ParameterValue { export interface Parameter { Parameter: { ParameterFlag?: number - ParameterName?: string ParameterType?: ParameterType ParameterValue?: ParameterValue } @@ -355,7 +354,6 @@ export interface Parameter { export interface InstanceParameter { InstanceParameter: { ParameterFlag: number - ParameterName: string ParameterType: ParameterType } } diff --git a/packages/xrpl/src/sugar/wasm.ts b/packages/xrpl/src/sugar/wasm.ts deleted file mode 100644 index 83de0581ef..0000000000 --- a/packages/xrpl/src/sugar/wasm.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { XrplError } from '../errors' -import { Parameter, InstanceParameter } from '../models/common' - -function isHex(value: string): boolean { - return /^[0-9A-F]+$/iu.test(value) -} - -function hexValue(value: string): string { - return Buffer.from(value, 'utf8').toString('hex').toUpperCase() -} - -/** - * Convert each Parameter.ParameterName in the provided array to an uppercase hexadecimal string - * if it is not already a hex string. - * - * @param data - Array of Parameter objects to normalize. - * @returns A new array of Parameter objects with ParameterName values in uppercase hex. - * @throws {XrplError} If a Parameter is not an object or if ParameterName is not a string. - */ -export function hexParameters(data: Parameter[]): Parameter[] { - const hookParameters: Parameter[] = [] - for (const paramMap of data) { - if (typeof paramMap.Parameter !== 'object') { - throw new XrplError('hexParameters: Parameter must be an object') - } - - if (typeof paramMap.Parameter.ParameterName !== 'string') { - throw new XrplError('hexParameters: ParameterName must be a string') - } - let parameterName = paramMap.Parameter.ParameterName - if (!isHex(parameterName)) { - parameterName = hexValue(parameterName) - } - - hookParameters.push({ - Parameter: { - ...paramMap.Parameter, - ParameterName: parameterName, - }, - }) - } - return hookParameters -} - -/** - * Convert each InstanceParameter.ParameterName in the provided array to an uppercase hexadecimal string - * if it is not already a hex string. - * - * @param data - Array of InstanceParameter objects to normalize. - * @returns A new array of InstanceParameter objects with ParameterName values in uppercase hex. - * @throws {XrplError} If an InstanceParameter is not an object or if ParameterName is not a string. - */ -export function hexInstanceParameters( - data: InstanceParameter[], -): InstanceParameter[] { - const hookParameters: InstanceParameter[] = [] - for (const paramMap of data) { - if (typeof paramMap.InstanceParameter !== 'object') { - throw new XrplError( - 'hexInstanceParameters: InstanceParameter must be an object', - ) - } - - if (typeof paramMap.InstanceParameter.ParameterName !== 'string') { - throw new XrplError( - 'hexInstanceParameters: ParameterName must be a string', - ) - } - let parameterName = paramMap.InstanceParameter.ParameterName - if (!isHex(parameterName)) { - parameterName = hexValue(parameterName) - } - - hookParameters.push({ - InstanceParameter: { - ...paramMap.InstanceParameter, - ParameterName: parameterName, - }, - }) - } - return hookParameters -} From 70c6e54a2c653dcf7f4843a5609c86cf04621af8 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 2 Apr 2026 15:13:18 -0400 Subject: [PATCH 10/22] update --- package-lock.json | 3891 ++++++----------- .../src/types/st-object.ts | 20 +- .../test/binary-parser.test.ts | 2 +- .../test/fixtures/contract-call-binary.json | 2 +- .../ripple-binary-codec/test/quality.test.ts | 2 +- packages/xrpl/src/Wallet/utils.ts | 24 + .../xrpl/src/models/transactions/common.ts | 23 - 7 files changed, 1390 insertions(+), 2574 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1a904ab26e..c2e8fb1db8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -208,7 +208,7 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", "dev": true, "license": "MIT", @@ -351,7 +351,7 @@ }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", "dev": true, "license": "MIT", @@ -461,7 +461,7 @@ }, "node_modules/@babel/plugin-syntax-typescript": { "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", "dev": true, "license": "MIT", @@ -519,7 +519,7 @@ }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true, "license": "MIT" @@ -562,8 +562,6 @@ }, "node_modules/@emnapi/core": { "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.1.tgz", - "integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==", "dev": true, "license": "MIT", "dependencies": { @@ -573,8 +571,6 @@ }, "node_modules/@emnapi/runtime": { "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", - "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", "dev": true, "license": "MIT", "dependencies": { @@ -583,8 +579,6 @@ }, "node_modules/@emnapi/wasi-threads": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", - "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", "dev": true, "license": "MIT", "dependencies": { @@ -626,8 +620,6 @@ }, "node_modules/@eslint-community/eslint-utils": { "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", - "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", "dev": true, "license": "MIT", "dependencies": { @@ -645,8 +637,6 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", - "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, "license": "MIT", "engines": { @@ -655,8 +645,6 @@ }, "node_modules/@eslint/config-array": { "version": "0.21.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", - "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -670,8 +658,6 @@ }, "node_modules/@eslint/config-array/node_modules/brace-expansion": { "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -680,9 +666,7 @@ } }, "node_modules/@eslint/config-array/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "version": "3.1.2", "dev": true, "license": "ISC", "dependencies": { @@ -694,8 +678,6 @@ }, "node_modules/@eslint/config-helpers": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", - "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -707,8 +689,6 @@ }, "node_modules/@eslint/core": { "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", - "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -761,9 +741,7 @@ } }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "version": "3.1.2", "dev": true, "license": "ISC", "dependencies": { @@ -775,8 +753,6 @@ }, "node_modules/@eslint/js": { "version": "9.39.2", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", - "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", "dev": true, "license": "MIT", "engines": { @@ -788,8 +764,6 @@ }, "node_modules/@eslint/object-schema": { "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", - "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -798,8 +772,6 @@ }, "node_modules/@eslint/plugin-kit": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", - "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -810,20 +782,8 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@gar/promise-retry": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@gar/promise-retry/-/promise-retry-1.0.3.tgz", - "integrity": "sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, "node_modules/@gerrit0/mini-shiki": { "version": "3.19.0", - "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.19.0.tgz", - "integrity": "sha512-ZSlWfLvr8Nl0T4iA3FF/8VH8HivYF82xQts2DY0tJxZd4wtXJ8AA0nmdW9lmO4hlrh3f9xNwEPtOgqETPqKwDA==", "dev": true, "license": "MIT", "dependencies": { @@ -892,8 +852,6 @@ }, "node_modules/@hutson/parse-repository-url": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", - "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", "dev": true, "license": "Apache-2.0", "engines": { @@ -902,8 +860,6 @@ }, "node_modules/@inquirer/ansi": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", - "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==", "dev": true, "license": "MIT", "engines": { @@ -912,8 +868,6 @@ }, "node_modules/@inquirer/checkbox": { "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.3.2.tgz", - "integrity": "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==", "dev": true, "license": "MIT", "dependencies": { @@ -937,8 +891,6 @@ }, "node_modules/@inquirer/confirm": { "version": "5.1.21", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.21.tgz", - "integrity": "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==", "dev": true, "license": "MIT", "dependencies": { @@ -959,8 +911,6 @@ }, "node_modules/@inquirer/core": { "version": "10.3.2", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz", - "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==", "dev": true, "license": "MIT", "dependencies": { @@ -987,8 +937,6 @@ }, "node_modules/@inquirer/core/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "license": "ISC", "engines": { @@ -1000,8 +948,6 @@ }, "node_modules/@inquirer/core/node_modules/wrap-ansi": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "license": "MIT", "dependencies": { @@ -1015,8 +961,6 @@ }, "node_modules/@inquirer/editor": { "version": "4.2.23", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.23.tgz", - "integrity": "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1038,8 +982,6 @@ }, "node_modules/@inquirer/expand": { "version": "4.0.23", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.23.tgz", - "integrity": "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==", "dev": true, "license": "MIT", "dependencies": { @@ -1061,8 +1003,6 @@ }, "node_modules/@inquirer/external-editor": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", - "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", "dev": true, "license": "MIT", "dependencies": { @@ -1083,8 +1023,6 @@ }, "node_modules/@inquirer/external-editor/node_modules/iconv-lite": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", - "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", "dev": true, "license": "MIT", "dependencies": { @@ -1100,8 +1038,6 @@ }, "node_modules/@inquirer/figures": { "version": "1.0.15", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", - "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==", "dev": true, "license": "MIT", "engines": { @@ -1110,8 +1046,6 @@ }, "node_modules/@inquirer/input": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.3.1.tgz", - "integrity": "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==", "dev": true, "license": "MIT", "dependencies": { @@ -1132,8 +1066,6 @@ }, "node_modules/@inquirer/number": { "version": "3.0.23", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.23.tgz", - "integrity": "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==", "dev": true, "license": "MIT", "dependencies": { @@ -1154,8 +1086,6 @@ }, "node_modules/@inquirer/password": { "version": "4.0.23", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.23.tgz", - "integrity": "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==", "dev": true, "license": "MIT", "dependencies": { @@ -1177,8 +1107,6 @@ }, "node_modules/@inquirer/prompts": { "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.10.1.tgz", - "integrity": "sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==", "dev": true, "license": "MIT", "dependencies": { @@ -1207,8 +1135,6 @@ }, "node_modules/@inquirer/rawlist": { "version": "4.1.11", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.11.tgz", - "integrity": "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==", "dev": true, "license": "MIT", "dependencies": { @@ -1230,8 +1156,6 @@ }, "node_modules/@inquirer/search": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.2.2.tgz", - "integrity": "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==", "dev": true, "license": "MIT", "dependencies": { @@ -1254,8 +1178,6 @@ }, "node_modules/@inquirer/select": { "version": "4.4.2", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.4.2.tgz", - "integrity": "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==", "dev": true, "license": "MIT", "dependencies": { @@ -1279,8 +1201,6 @@ }, "node_modules/@inquirer/type": { "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz", - "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==", "dev": true, "license": "MIT", "engines": { @@ -1295,10 +1215,27 @@ } } }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.1", + "dev": true, + "license": "MIT", + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, "node_modules/@isaacs/cliui": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", - "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -1307,8 +1244,6 @@ }, "node_modules/@isaacs/fs-minipass": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", - "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", "dev": true, "license": "ISC", "dependencies": { @@ -1320,14 +1255,12 @@ }, "node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", - "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==", "dev": true, "license": "ISC" }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "license": "ISC", @@ -1344,7 +1277,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "license": "MIT", @@ -1354,7 +1287,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", @@ -1368,7 +1301,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/js-yaml/-/js-yaml-3.14.2.tgz", "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, "license": "MIT", @@ -1382,7 +1315,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", @@ -1395,7 +1328,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", @@ -1411,7 +1344,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", @@ -1424,7 +1357,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", @@ -1441,17 +1374,17 @@ } }, "node_modules/@jest/console": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.2.0.tgz", - "integrity": "sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/console/-/console-30.3.0.tgz", + "integrity": "sha512-PAwCvFJ4696XP2qZj+LAn1BWjZaJ6RjG6c7/lkMaUJnkyMS34ucuIsfqYvfskVNvUI27R/u4P1HMYFnlVXG/Ww==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.2.0", + "@jest/types": "30.3.0", "@types/node": "*", "chalk": "^4.1.2", - "jest-message-util": "30.2.0", - "jest-util": "30.2.0", + "jest-message-util": "30.3.0", + "jest-util": "30.3.0", "slash": "^3.0.0" }, "engines": { @@ -1459,39 +1392,38 @@ } }, "node_modules/@jest/core": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.2.0.tgz", - "integrity": "sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/core/-/core-30.3.0.tgz", + "integrity": "sha512-U5mVPsBxLSO6xYbf+tgkymLx+iAhvZX43/xI1+ej2ZOPnPdkdO1CzDmFKh2mZBn2s4XZixszHeQnzp1gm/DIxw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.2.0", + "@jest/console": "30.3.0", "@jest/pattern": "30.0.1", - "@jest/reporters": "30.2.0", - "@jest/test-result": "30.2.0", - "@jest/transform": "30.2.0", - "@jest/types": "30.2.0", + "@jest/reporters": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "ci-info": "^4.2.0", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", - "jest-changed-files": "30.2.0", - "jest-config": "30.2.0", - "jest-haste-map": "30.2.0", - "jest-message-util": "30.2.0", + "jest-changed-files": "30.3.0", + "jest-config": "30.3.0", + "jest-haste-map": "30.3.0", + "jest-message-util": "30.3.0", "jest-regex-util": "30.0.1", - "jest-resolve": "30.2.0", - "jest-resolve-dependencies": "30.2.0", - "jest-runner": "30.2.0", - "jest-runtime": "30.2.0", - "jest-snapshot": "30.2.0", - "jest-util": "30.2.0", - "jest-validate": "30.2.0", - "jest-watcher": "30.2.0", - "micromatch": "^4.0.8", - "pretty-format": "30.2.0", + "jest-resolve": "30.3.0", + "jest-resolve-dependencies": "30.3.0", + "jest-runner": "30.3.0", + "jest-runtime": "30.3.0", + "jest-snapshot": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", + "jest-watcher": "30.3.0", + "pretty-format": "30.3.0", "slash": "^3.0.0" }, "engines": { @@ -1506,22 +1438,9 @@ } } }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@jest/core/node_modules/ci-info": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ci-info/-/ci-info-4.4.0.tgz", "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", "dev": true, "funding": [ @@ -1535,25 +1454,10 @@ "node": ">=8" } }, - "node_modules/@jest/core/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "30.0.5", - "ansi-styles": "^5.2.0", - "react-is": "^18.3.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, "node_modules/@jest/diff-sequences": { - "version": "30.0.1", - "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", - "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/diff-sequences/-/diff-sequences-30.3.0.tgz", + "integrity": "sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==", "dev": true, "license": "MIT", "engines": { @@ -1561,39 +1465,39 @@ } }, "node_modules/@jest/environment": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.2.0.tgz", - "integrity": "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/environment/-/environment-30.3.0.tgz", + "integrity": "sha512-SlLSF4Be735yQXyh2+mctBOzNDx5s5uLv88/j8Qn1wH679PDcwy67+YdADn8NJnGjzlXtN62asGH/T4vWOkfaw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/fake-timers": "30.2.0", - "@jest/types": "30.2.0", + "@jest/fake-timers": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", - "jest-mock": "30.2.0" + "jest-mock": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.2.0.tgz", - "integrity": "sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/expect/-/expect-30.3.0.tgz", + "integrity": "sha512-76Nlh4xJxk2D/9URCn3wFi98d2hb19uWE1idLsTt2ywhvdOldbw3S570hBgn25P4ICUZ/cBjybrBex2g17IDbg==", "dev": true, "license": "MIT", "dependencies": { - "expect": "30.2.0", - "jest-snapshot": "30.2.0" + "expect": "30.3.0", + "jest-snapshot": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.2.0.tgz", - "integrity": "sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/expect-utils/-/expect-utils-30.3.0.tgz", + "integrity": "sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA==", "dev": true, "license": "MIT", "dependencies": { @@ -1604,18 +1508,18 @@ } }, "node_modules/@jest/fake-timers": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.2.0.tgz", - "integrity": "sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/fake-timers/-/fake-timers-30.3.0.tgz", + "integrity": "sha512-WUQDs8SOP9URStX1DzhD425CqbN/HxUYCTwVrT8sTVBfMvFqYt/s61EK5T05qnHu0po6RitXIvP9otZxYDzTGQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.2.0", - "@sinonjs/fake-timers": "^13.0.0", + "@jest/types": "30.3.0", + "@sinonjs/fake-timers": "^15.0.0", "@types/node": "*", - "jest-message-util": "30.2.0", - "jest-mock": "30.2.0", - "jest-util": "30.2.0" + "jest-message-util": "30.3.0", + "jest-mock": "30.3.0", + "jest-util": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -1623,8 +1527,6 @@ }, "node_modules/@jest/get-type": { "version": "30.1.0", - "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz", - "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==", "dev": true, "license": "MIT", "engines": { @@ -1632,16 +1534,16 @@ } }, "node_modules/@jest/globals": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.2.0.tgz", - "integrity": "sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/globals/-/globals-30.3.0.tgz", + "integrity": "sha512-+owLCBBdfpgL3HU+BD5etr1SvbXpSitJK0is1kiYjJxAAJggYMRQz5hSdd5pq1sSggfxPbw2ld71pt4x5wwViA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.2.0", - "@jest/expect": "30.2.0", - "@jest/types": "30.2.0", - "jest-mock": "30.2.0" + "@jest/environment": "30.3.0", + "@jest/expect": "30.3.0", + "@jest/types": "30.3.0", + "jest-mock": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -1649,8 +1551,6 @@ }, "node_modules/@jest/pattern": { "version": "30.0.1", - "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", - "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", "dev": true, "license": "MIT", "dependencies": { @@ -1662,32 +1562,32 @@ } }, "node_modules/@jest/reporters": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.2.0.tgz", - "integrity": "sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/reporters/-/reporters-30.3.0.tgz", + "integrity": "sha512-a09z89S+PkQnL055bVj8+pe2Caed2PBOaczHcXCykW5ngxX9EWx/1uAwncxc/HiU0oZqfwseMjyhxgRjS49qPw==", "dev": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "30.2.0", - "@jest/test-result": "30.2.0", - "@jest/transform": "30.2.0", - "@jest/types": "30.2.0", + "@jest/console": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", "@jridgewell/trace-mapping": "^0.3.25", "@types/node": "*", "chalk": "^4.1.2", "collect-v8-coverage": "^1.0.2", "exit-x": "^0.2.2", - "glob": "^10.3.10", + "glob": "^10.5.0", "graceful-fs": "^4.2.11", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^5.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "30.2.0", - "jest-util": "30.2.0", - "jest-worker": "30.2.0", + "jest-message-util": "30.3.0", + "jest-util": "30.3.0", + "jest-worker": "30.3.0", "slash": "^3.0.0", "string-length": "^4.0.2", "v8-to-istanbul": "^9.0.1" @@ -1706,7 +1606,7 @@ }, "node_modules/@jest/reporters/node_modules/@isaacs/cliui": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, "license": "ISC", @@ -1724,7 +1624,7 @@ }, "node_modules/@jest/reporters/node_modules/ansi-regex": { "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ansi-regex/-/ansi-regex-6.2.2.tgz", "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, "license": "MIT", @@ -1737,7 +1637,7 @@ }, "node_modules/@jest/reporters/node_modules/ansi-styles": { "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ansi-styles/-/ansi-styles-6.2.3.tgz", "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", @@ -1750,7 +1650,7 @@ }, "node_modules/@jest/reporters/node_modules/glob": { "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/glob/-/glob-10.5.0.tgz", "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, @@ -1772,7 +1672,7 @@ }, "node_modules/@jest/reporters/node_modules/jackspeak": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "license": "BlueOak-1.0.0", @@ -1788,14 +1688,14 @@ }, "node_modules/@jest/reporters/node_modules/lru-cache": { "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, "license": "ISC" }, "node_modules/@jest/reporters/node_modules/path-scurry": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "license": "BlueOak-1.0.0", @@ -1812,7 +1712,7 @@ }, "node_modules/@jest/reporters/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "license": "MIT", @@ -1830,7 +1730,7 @@ }, "node_modules/@jest/reporters/node_modules/strip-ansi": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/strip-ansi/-/strip-ansi-7.2.0.tgz", "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", @@ -1846,7 +1746,7 @@ }, "node_modules/@jest/reporters/node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "license": "MIT", @@ -1864,7 +1764,7 @@ }, "node_modules/@jest/schemas": { "version": "30.0.5", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/schemas/-/schemas-30.0.5.tgz", "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", "dev": true, "license": "MIT", @@ -1876,13 +1776,13 @@ } }, "node_modules/@jest/snapshot-utils": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz", - "integrity": "sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/snapshot-utils/-/snapshot-utils-30.3.0.tgz", + "integrity": "sha512-ORbRN9sf5PP82v3FXNSwmO1OTDR2vzR2YTaR+E3VkSBZ8zadQE6IqYdYEeFH1NIkeB2HIGdF02dapb6K0Mj05g==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.2.0", + "@jest/types": "30.3.0", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "natural-compare": "^1.4.0" @@ -1893,7 +1793,7 @@ }, "node_modules/@jest/source-map": { "version": "30.0.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.0.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/source-map/-/source-map-30.0.1.tgz", "integrity": "sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==", "dev": true, "license": "MIT", @@ -1907,14 +1807,14 @@ } }, "node_modules/@jest/test-result": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.2.0.tgz", - "integrity": "sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/test-result/-/test-result-30.3.0.tgz", + "integrity": "sha512-e/52nJGuD74AKTSe0P4y5wFRlaXP0qmrS17rqOMHeSwm278VyNyXE3gFO/4DTGF9w+65ra3lo3VKj0LBrzmgdQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.2.0", - "@jest/types": "30.2.0", + "@jest/console": "30.3.0", + "@jest/types": "30.3.0", "@types/istanbul-lib-coverage": "^2.0.6", "collect-v8-coverage": "^1.0.2" }, @@ -1923,15 +1823,15 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.2.0.tgz", - "integrity": "sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/test-sequencer/-/test-sequencer-30.3.0.tgz", + "integrity": "sha512-dgbWy9b8QDlQeRZcv7LNF+/jFiiYHTKho1xirauZ7kVwY7avjFF6uTT0RqlgudB5OuIPagFdVtfFMosjVbk1eA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "30.2.0", + "@jest/test-result": "30.3.0", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.2.0", + "jest-haste-map": "30.3.0", "slash": "^3.0.0" }, "engines": { @@ -1939,24 +1839,23 @@ } }, "node_modules/@jest/transform": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.2.0.tgz", - "integrity": "sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/transform/-/transform-30.3.0.tgz", + "integrity": "sha512-TLKY33fSLVd/lKB2YI1pH69ijyUblO/BQvCj566YvnwuzoTNr648iE0j22vRvVNk2HsPwByPxATg3MleS3gf5A==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.27.4", - "@jest/types": "30.2.0", + "@jest/types": "30.3.0", "@jridgewell/trace-mapping": "^0.3.25", "babel-plugin-istanbul": "^7.0.1", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.2.0", + "jest-haste-map": "30.3.0", "jest-regex-util": "30.0.1", - "jest-util": "30.2.0", - "micromatch": "^4.0.8", + "jest-util": "30.3.0", "pirates": "^4.0.7", "slash": "^3.0.0", "write-file-atomic": "^5.0.1" @@ -1966,9 +1865,9 @@ } }, "node_modules/@jest/types": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz", - "integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/types/-/types-30.3.0.tgz", + "integrity": "sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==", "dev": true, "license": "MIT", "dependencies": { @@ -2003,8 +1902,6 @@ }, "node_modules/@jridgewell/source-map": { "version": "0.3.11", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", - "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, "license": "MIT", "dependencies": { @@ -2026,127 +1923,418 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@ltd/j-toml": { - "version": "1.38.0", - "resolved": "https://registry.npmjs.org/@ltd/j-toml/-/j-toml-1.38.0.tgz", - "integrity": "sha512-lYtBcmvHustHQtg4X7TXUu1Xa/tbLC3p2wLvgQI+fWVySguVZJF60Snxijw5EiohumxZbR10kWYFFebh1zotiw==", - "dev": true, - "license": "LGPL-3.0" - }, - "node_modules/@microsoft/tsdoc": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.16.0.tgz", - "integrity": "sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==", + "node_modules/@lerna/create": { + "version": "9.0.4", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@npmcli/arborist": "9.1.6", + "@npmcli/package-json": "7.0.2", + "@npmcli/run-script": "10.0.3", + "@nx/devkit": ">=21.5.2 < 23.0.0", + "@octokit/plugin-enterprise-rest": "6.0.1", + "@octokit/rest": "20.1.2", + "aproba": "2.0.0", + "byte-size": "8.1.1", + "chalk": "4.1.0", + "cmd-shim": "6.0.3", + "color-support": "1.1.3", + "columnify": "1.6.0", + "console-control-strings": "^1.1.0", + "conventional-changelog-core": "5.0.1", + "conventional-recommended-bump": "7.0.1", + "cosmiconfig": "9.0.0", + "dedent": "1.5.3", + "execa": "5.0.0", + "fs-extra": "^11.2.0", + "get-stream": "6.0.0", + "git-url-parse": "14.0.0", + "glob-parent": "6.0.2", + "has-unicode": "2.0.1", + "ini": "^1.3.8", + "init-package-json": "8.2.2", + "inquirer": "12.9.6", + "is-ci": "3.0.1", + "is-stream": "2.0.0", + "js-yaml": "4.1.1", + "libnpmpublish": "11.1.2", + "load-json-file": "6.2.0", + "make-dir": "4.0.0", + "make-fetch-happen": "15.0.2", + "minimatch": "3.0.5", + "multimatch": "5.0.0", + "npm-package-arg": "13.0.1", + "npm-packlist": "10.0.3", + "npm-registry-fetch": "19.1.0", + "nx": ">=21.5.3 < 23.0.0", + "p-map": "4.0.0", + "p-map-series": "2.1.0", + "p-queue": "6.6.2", + "p-reduce": "^2.1.0", + "pacote": "21.0.1", + "pify": "5.0.0", + "read-cmd-shim": "4.0.0", + "resolve-from": "5.0.0", + "rimraf": "^6.1.2", + "semver": "7.7.2", + "set-blocking": "^2.0.0", + "signal-exit": "3.0.7", + "slash": "^3.0.0", + "ssri": "12.0.0", + "string-width": "^4.2.3", + "tar": "7.5.7", + "temp-dir": "1.0.0", + "through": "2.3.8", + "tinyglobby": "0.2.12", + "upath": "2.0.1", + "uuid": "^11.1.0", + "validate-npm-package-license": "3.0.4", + "validate-npm-package-name": "6.0.2", + "wide-align": "1.1.5", + "write-file-atomic": "5.0.1", + "write-pkg": "4.0.0", + "yargs": "17.7.2", + "yargs-parser": "21.1.1" + }, + "engines": { + "node": "^20.19.0 || ^22.12.0 || >=24.0.0" + } }, - "node_modules/@microsoft/tsdoc-config": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.18.0.tgz", - "integrity": "sha512-8N/vClYyfOH+l4fLkkr9+myAoR6M7akc8ntBJ4DJdWH2b09uVfr71+LTMpNyG19fNqWDg8KEDZhx5wxuqHyGjw==", + "node_modules/@lerna/create/node_modules/brace-expansion": { + "version": "1.1.12", "dev": true, "license": "MIT", "dependencies": { - "@microsoft/tsdoc": "0.16.0", - "ajv": "~8.12.0", - "jju": "~1.4.0", - "resolve": "~1.22.2" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@microsoft/tsdoc-config/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "node_modules/@lerna/create/node_modules/chalk": { + "version": "4.1.0", "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@microsoft/tsdoc-config/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "node_modules/@lerna/create/node_modules/cliui": { + "version": "8.0.1", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", - "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "node_modules/@lerna/create/node_modules/dedent": { + "version": "1.5.3", "dev": true, "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "^1.4.3", - "@emnapi/runtime": "^1.4.3", - "@tybys/wasm-util": "^0.10.0" + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } } }, - "node_modules/@noble/curves": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-2.0.1.tgz", - "integrity": "sha512-vs1Az2OOTBiP4q0pwjW5aF0xp9n4MxVrmkFBxc6EKZc6ddYx5gaZiAsZoq0uRRXWbi3AT/sBqn05eRPtn1JCPw==", + "node_modules/@lerna/create/node_modules/execa": { + "version": "5.0.0", + "dev": true, "license": "MIT", "dependencies": { - "@noble/hashes": "2.0.1" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, "engines": { - "node": ">= 20.19.0" + "node": ">=10" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/@noble/curves/node_modules/@noble/hashes": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.0.1.tgz", - "integrity": "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==", + "node_modules/@lerna/create/node_modules/fdir": { + "version": "6.5.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 20.19.0" + "node": ">=12.0.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/@noble/hashes": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.0.1.tgz", - "integrity": "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==", + "node_modules/@lerna/create/node_modules/get-stream": { + "version": "6.0.0", + "dev": true, "license": "MIT", "engines": { - "node": ">= 20.19.0" + "node": ">=10" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@lerna/create/node_modules/glob": { + "version": "13.0.5", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "minimatch": "^10.2.1", + "minipass": "^7.1.2", + "path-scurry": "^2.0.0" }, "engines": { - "node": ">= 8" + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@lerna/create/node_modules/glob/node_modules/balanced-match": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "jackspeak": "^4.2.3" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@lerna/create/node_modules/glob/node_modules/brace-expansion": { + "version": "5.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@lerna/create/node_modules/glob/node_modules/minimatch": { + "version": "10.2.1", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@lerna/create/node_modules/is-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@lerna/create/node_modules/minimatch": { + "version": "3.0.5", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@lerna/create/node_modules/picomatch": { + "version": "4.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@lerna/create/node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@lerna/create/node_modules/rimraf": { + "version": "6.1.3", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "glob": "^13.0.3", + "package-json-from-dist": "^1.0.1" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@lerna/create/node_modules/semver": { + "version": "7.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@lerna/create/node_modules/tinyglobby": { + "version": "0.2.12", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/@lerna/create/node_modules/yargs": { + "version": "17.7.2", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@lerna/create/node_modules/yargs-parser": { + "version": "21.1.1", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/@microsoft/tsdoc": { + "version": "0.16.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.18.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@microsoft/tsdoc": "0.16.0", + "ajv": "~8.12.0", + "jju": "~1.4.0", + "resolve": "~1.22.2" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/ajv": { + "version": "8.12.0", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/json-schema-traverse": { + "version": "1.0.0", + "dev": true, + "license": "MIT" + }, + "node_modules/@noble/curves": { + "version": "2.2.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@noble/curves/-/curves-2.2.0.tgz", + "integrity": "sha512-T/BoHgFXirb0ENSPBquzX0rcjXeM6Lo892a2jlYJkqk83LqZx0l1Of7DzlKJ6jkpvMrkHSnAcgb5JegL8SeIkQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "2.2.0" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "2.2.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@noble/hashes/-/hashes-2.2.0.tgz", + "integrity": "sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", "dev": true, "license": "MIT", "engines": { @@ -2155,8 +2343,6 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", "dependencies": { @@ -2169,8 +2355,6 @@ }, "node_modules/@npmcli/agent": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-4.0.0.tgz", - "integrity": "sha512-kAQTcEN9E8ERLVg5AsGwLNoFb+oEG6engbqAU2P43gD4JEIkNGMHdVQ096FsOAAYpZPB0RSt0zgInKIAS1l5QA==", "dev": true, "license": "ISC", "dependencies": { @@ -2186,8 +2370,6 @@ }, "node_modules/@npmcli/agent/node_modules/lru-cache": { "version": "11.2.6", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", - "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -2196,8 +2378,6 @@ }, "node_modules/@npmcli/arborist": { "version": "9.1.6", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-9.1.6.tgz", - "integrity": "sha512-c5Pr3EG8UP5ollkJy2x+UdEQC5sEHe3H9whYn6hb2HJimAKS4zmoJkx5acCiR/g4P38RnCSMlsYQyyHnKYeLvQ==", "dev": true, "license": "ISC", "dependencies": { @@ -2243,32 +2423,29 @@ } }, "node_modules/@npmcli/arborist/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "version": "4.0.2", "dev": true, "license": "MIT", + "dependencies": { + "jackspeak": "^4.2.3" + }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/@npmcli/arborist/node_modules/brace-expansion": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", - "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "version": "5.0.2", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/@npmcli/arborist/node_modules/lru-cache": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", - "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", + "version": "11.2.6", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -2276,16 +2453,14 @@ } }, "node_modules/@npmcli/arborist/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "version": "10.2.1", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.5" + "brace-expansion": "^5.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2293,8 +2468,6 @@ }, "node_modules/@npmcli/arborist/node_modules/npm-bundled": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-5.0.0.tgz", - "integrity": "sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==", "dev": true, "license": "ISC", "dependencies": { @@ -2306,8 +2479,6 @@ }, "node_modules/@npmcli/arborist/node_modules/npm-normalize-package-bin": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-5.0.0.tgz", - "integrity": "sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==", "dev": true, "license": "ISC", "engines": { @@ -2315,13 +2486,10 @@ } }, "node_modules/@npmcli/arborist/node_modules/pacote": { - "version": "21.5.0", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.5.0.tgz", - "integrity": "sha512-VtZ0SB8mb5Tzw3dXDfVAIjhyVKUHZkS/ZH9/5mpKenwC9sFOXNI0JI7kEF7IMkwOnsWMFrvAZHzx1T5fmrp9FQ==", + "version": "21.3.1", "dev": true, "license": "ISC", "dependencies": { - "@gar/promise-retry": "^1.0.0", "@npmcli/git": "^7.0.0", "@npmcli/installed-package-contents": "^4.0.0", "@npmcli/package-json": "^7.0.0", @@ -2335,6 +2503,7 @@ "npm-pick-manifest": "^11.0.1", "npm-registry-fetch": "^19.0.0", "proc-log": "^6.0.0", + "promise-retry": "^2.0.1", "sigstore": "^4.0.0", "ssri": "^13.0.0", "tar": "^7.4.3" @@ -2348,8 +2517,6 @@ }, "node_modules/@npmcli/arborist/node_modules/pacote/node_modules/@npmcli/installed-package-contents": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-4.0.0.tgz", - "integrity": "sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==", "dev": true, "license": "ISC", "dependencies": { @@ -2365,8 +2532,6 @@ }, "node_modules/@npmcli/arborist/node_modules/pacote/node_modules/proc-log": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", "engines": { @@ -2375,8 +2540,6 @@ }, "node_modules/@npmcli/arborist/node_modules/pacote/node_modules/ssri": { "version": "13.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.1.tgz", - "integrity": "sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==", "dev": true, "license": "ISC", "dependencies": { @@ -2388,8 +2551,6 @@ }, "node_modules/@npmcli/fs": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-4.0.0.tgz", - "integrity": "sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==", "dev": true, "license": "ISC", "dependencies": { @@ -2400,18 +2561,16 @@ } }, "node_modules/@npmcli/git": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-7.0.2.tgz", - "integrity": "sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg==", + "version": "7.0.1", "dev": true, "license": "ISC", "dependencies": { - "@gar/promise-retry": "^1.0.0", "@npmcli/promise-spawn": "^9.0.0", "ini": "^6.0.0", "lru-cache": "^11.2.1", "npm-pick-manifest": "^11.0.1", "proc-log": "^6.0.0", + "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^6.0.0" }, @@ -2421,8 +2580,6 @@ }, "node_modules/@npmcli/git/node_modules/ini": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz", - "integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==", "dev": true, "license": "ISC", "engines": { @@ -2431,8 +2588,6 @@ }, "node_modules/@npmcli/git/node_modules/isexe": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", - "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -2440,9 +2595,7 @@ } }, "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "11.2.7", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", - "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", + "version": "11.2.6", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -2451,8 +2604,6 @@ }, "node_modules/@npmcli/git/node_modules/proc-log": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", "engines": { @@ -2461,8 +2612,6 @@ }, "node_modules/@npmcli/git/node_modules/which": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", - "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "dev": true, "license": "ISC", "dependencies": { @@ -2477,8 +2626,6 @@ }, "node_modules/@npmcli/installed-package-contents": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-3.0.0.tgz", - "integrity": "sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==", "dev": true, "license": "ISC", "dependencies": { @@ -2494,8 +2641,6 @@ }, "node_modules/@npmcli/map-workspaces": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-5.0.3.tgz", - "integrity": "sha512-o2grssXo1e774E5OtEwwrgoszYRh0lqkJH+Pb9r78UcqdGJRDRfhpM8DvZPjzNLLNYeD/rNbjOKM3Ss5UABROw==", "dev": true, "license": "ISC", "dependencies": { @@ -2510,8 +2655,6 @@ }, "node_modules/@npmcli/map-workspaces/node_modules/@npmcli/name-from-folder": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-4.0.0.tgz", - "integrity": "sha512-qfrhVlOSqmKM8i6rkNdZzABj8MKEITGFAY+4teqBziksCQAOLutiAxM1wY2BKEd8KjUSpWmWCYxvXr0y4VTlPg==", "dev": true, "license": "ISC", "engines": { @@ -2519,57 +2662,52 @@ } }, "node_modules/@npmcli/map-workspaces/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "version": "4.0.2", "dev": true, "license": "MIT", + "dependencies": { + "jackspeak": "^4.2.3" + }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", - "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "version": "5.0.2", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/@npmcli/map-workspaces/node_modules/glob": { - "version": "13.0.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", - "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", + "version": "13.0.5", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "minimatch": "^10.2.2", - "minipass": "^7.1.3", - "path-scurry": "^2.0.2" + "minimatch": "^10.2.1", + "minipass": "^7.1.2", + "path-scurry": "^2.0.0" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "version": "10.2.1", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.5" + "brace-expansion": "^5.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2577,8 +2715,6 @@ }, "node_modules/@npmcli/metavuln-calculator": { "version": "9.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-9.0.3.tgz", - "integrity": "sha512-94GLSYhLXF2t2LAC7pDwLaM4uCARzxShyAQKsirmlNcpidH89VA4/+K1LbJmRMgz5gy65E/QBBWQdUvGLe2Frg==", "dev": true, "license": "ISC", "dependencies": { @@ -2594,8 +2730,6 @@ }, "node_modules/@npmcli/metavuln-calculator/node_modules/json-parse-even-better-errors": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-5.0.0.tgz", - "integrity": "sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==", "dev": true, "license": "MIT", "engines": { @@ -2604,8 +2738,6 @@ }, "node_modules/@npmcli/metavuln-calculator/node_modules/proc-log": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", "engines": { @@ -2614,8 +2746,6 @@ }, "node_modules/@npmcli/name-from-folder": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-3.0.0.tgz", - "integrity": "sha512-61cDL8LUc9y80fXn+lir+iVt8IS0xHqEKwPu/5jCjxQTVoSCmkXvw4vbMrzAMtmghz3/AkiBjhHkDKUH+kf7kA==", "dev": true, "license": "ISC", "engines": { @@ -2624,8 +2754,6 @@ }, "node_modules/@npmcli/node-gyp": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-4.0.0.tgz", - "integrity": "sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==", "dev": true, "license": "ISC", "engines": { @@ -2634,8 +2762,6 @@ }, "node_modules/@npmcli/package-json": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-7.0.2.tgz", - "integrity": "sha512-0ylN3U5htO1SJTmy2YI78PZZjLkKUGg7EKgukb2CRi0kzyoDr0cfjHAzi7kozVhj2V3SxN1oyKqZ2NSo40z00g==", "dev": true, "license": "ISC", "dependencies": { @@ -2652,33 +2778,29 @@ } }, "node_modules/@npmcli/package-json/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "version": "4.0.2", "dev": true, "license": "MIT", + "dependencies": { + "jackspeak": "^4.2.3" + }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/@npmcli/package-json/node_modules/brace-expansion": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", - "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "version": "5.0.2", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/@npmcli/package-json/node_modules/glob": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", - "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -2701,8 +2823,6 @@ }, "node_modules/@npmcli/package-json/node_modules/json-parse-even-better-errors": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-5.0.0.tgz", - "integrity": "sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==", "dev": true, "license": "MIT", "engines": { @@ -2710,16 +2830,14 @@ } }, "node_modules/@npmcli/package-json/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "version": "10.2.1", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.5" + "brace-expansion": "^5.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2727,8 +2845,6 @@ }, "node_modules/@npmcli/package-json/node_modules/proc-log": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", "engines": { @@ -2737,8 +2853,6 @@ }, "node_modules/@npmcli/promise-spawn": { "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-9.0.1.tgz", - "integrity": "sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==", "dev": true, "license": "ISC", "dependencies": { @@ -2750,8 +2864,6 @@ }, "node_modules/@npmcli/promise-spawn/node_modules/isexe": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", - "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -2760,8 +2872,6 @@ }, "node_modules/@npmcli/promise-spawn/node_modules/which": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", - "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "dev": true, "license": "ISC", "dependencies": { @@ -2776,8 +2886,6 @@ }, "node_modules/@npmcli/query": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/query/-/query-4.0.1.tgz", - "integrity": "sha512-4OIPFb4weUUwkDXJf4Hh1inAn8neBGq3xsH4ZsAaN6FK3ldrFkH7jSpCc7N9xesi0Sp+EBXJ9eGMDrEww2Ztqw==", "dev": true, "license": "ISC", "dependencies": { @@ -2789,8 +2897,6 @@ }, "node_modules/@npmcli/redact": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-3.2.2.tgz", - "integrity": "sha512-7VmYAmk4csGv08QzrDKScdzn11jHPFGyqJW39FyPgPuAp3zIaUmuCo1yxw9aGs+NEJuTGQ9Gwqpt93vtJubucg==", "dev": true, "license": "ISC", "engines": { @@ -2799,8 +2905,6 @@ }, "node_modules/@npmcli/run-script": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-10.0.3.tgz", - "integrity": "sha512-ER2N6itRkzWbbtVmZ9WKaWxVlKlOeBFF1/7xx+KA5J1xKa4JjUwBdb6tDpk0v1qA+d+VDwHI9qmLcXSWcmi+Rw==", "dev": true, "license": "ISC", "dependencies": { @@ -2817,8 +2921,6 @@ }, "node_modules/@npmcli/run-script/node_modules/@npmcli/node-gyp": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-5.0.0.tgz", - "integrity": "sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==", "dev": true, "license": "ISC", "engines": { @@ -2827,8 +2929,6 @@ }, "node_modules/@npmcli/run-script/node_modules/isexe": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", - "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -2837,8 +2937,6 @@ }, "node_modules/@npmcli/run-script/node_modules/proc-log": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", "engines": { @@ -2847,8 +2945,6 @@ }, "node_modules/@npmcli/run-script/node_modules/which": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", - "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "dev": true, "license": "ISC", "dependencies": { @@ -2862,16 +2958,14 @@ } }, "node_modules/@nx/devkit": { - "version": "22.6.4", - "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-22.6.4.tgz", - "integrity": "sha512-4VRND4Hl+zWSPvs68cJn0PUoxi1ADS1iqXy3VJNtUlVqjE7Y5LtZxKUC05w5OKP+2jMfU3viPTZIGwHnHuIaYA==", + "version": "22.5.1", "dev": true, "license": "MIT", "dependencies": { "@zkochan/js-yaml": "0.0.7", "ejs": "^3.1.7", "enquirer": "~2.3.6", - "minimatch": "10.2.4", + "minimatch": "10.1.1", "semver": "^7.6.3", "tslib": "^2.3.0", "yargs-parser": "21.1.1" @@ -2880,40 +2974,15 @@ "nx": ">= 21 <= 23 || ^22.0.0-0" } }, - "node_modules/@nx/devkit/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/@nx/devkit/node_modules/brace-expansion": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", - "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, "node_modules/@nx/devkit/node_modules/minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "version": "10.1.1", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.2" + "@isaacs/brace-expansion": "^5.0.0" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2921,8 +2990,6 @@ }, "node_modules/@nx/devkit/node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "license": "ISC", "engines": { @@ -2930,9 +2997,7 @@ } }, "node_modules/@nx/nx-darwin-arm64": { - "version": "22.6.4", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-22.6.4.tgz", - "integrity": "sha512-KuUQ9t8pxIO+Px1kbjA0XDLOU6XoAsijl0ssIMRYN1w5ly+0k/KglWt7qgwDockkaLRHkQ3YSR8I2LJXJE+Vig==", + "version": "22.5.1", "cpu": [ "arm64" ], @@ -2943,136 +3008,8 @@ "darwin" ] }, - "node_modules/@nx/nx-darwin-x64": { - "version": "22.6.4", - "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-22.6.4.tgz", - "integrity": "sha512-FB2XL2+ixbRI1fddz4oW+9MhoJASoTD8Ai4q5+B1OUPftgarIPLxaqI8TWba30Bos2AiYDofMJPf9uhBmLDH5Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@nx/nx-freebsd-x64": { - "version": "22.6.4", - "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-22.6.4.tgz", - "integrity": "sha512-qNsXhlflc77afjcRKCn7bqI8l/HPEjKhQRFs8wfKbAfNw3XEASc0EZtBV/TStLGV6PEZQldVBaId5FBMp8GW6Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@nx/nx-linux-arm-gnueabihf": { - "version": "22.6.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-22.6.4.tgz", - "integrity": "sha512-rjfnii0xGe8SQqsO/DDHeJSjbqp2H5fOEgZlaYXDGOwQeLZ1TQplEdx8hyI/ErAUwVO3YHnzoMtmachBQOlspw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@nx/nx-linux-arm64-gnu": { - "version": "22.6.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-22.6.4.tgz", - "integrity": "sha512-x6Zim1STewCXuHBCgoy2TO0586UlwH4RNCobn0mTiPd1jt7nU+fNqo3SpY8RzY1KmBfgcO48BBrfykPE9YWMpg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@nx/nx-linux-arm64-musl": { - "version": "22.6.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-22.6.4.tgz", - "integrity": "sha512-vYOqdgXIhtHFWdtnonp/jFfmfkyNPTu1JEdXuJpSxwUQdV2dWqS/l3HVPVWHXDrVKofPafK3M72jMvoWoaOQ6g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@nx/nx-linux-x64-gnu": { - "version": "22.6.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-22.6.4.tgz", - "integrity": "sha512-UfWUDlOzlvQNVa1mnqOFxzvUwoGfM2o9ruhwYRoFm3XJbVYnjINyQsdcHwwDJItJP04LZzLPxA1+O8sU+Oqg6A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@nx/nx-linux-x64-musl": { - "version": "22.6.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-22.6.4.tgz", - "integrity": "sha512-dwXpcyin4ScD5gH9FdhiNnOqFXclXLFBDTyRCEOlRUbOPayF9YEcH0PPIf9uWmwP3tshhAdr5sg9DLN+r7M3xg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@nx/nx-win32-arm64-msvc": { - "version": "22.6.4", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-22.6.4.tgz", - "integrity": "sha512-KqjJbFWhKJaKjET3Ep8hltXPizO0EstF4yfmp3oepWVn11poagc2MT1pf/tnRf6cdD88wd0bmw/83Ng6WUQ3Uw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@nx/nx-win32-x64-msvc": { - "version": "22.6.4", - "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-22.6.4.tgz", - "integrity": "sha512-CIL9m6uilGGr/eU+41/+aVWUnEcq+j1EDynUX2A4InLTbAN0ylte4Af+72mvipNiqJgDkjKaNzOCQDnp8QBjEQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, "node_modules/@octokit/auth-token": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", - "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", "dev": true, "license": "MIT", "engines": { @@ -3081,8 +3018,6 @@ }, "node_modules/@octokit/core": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.2.tgz", - "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==", "dev": true, "license": "MIT", "dependencies": { @@ -3100,8 +3035,6 @@ }, "node_modules/@octokit/endpoint": { "version": "9.0.6", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz", - "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==", "dev": true, "license": "MIT", "dependencies": { @@ -3114,8 +3047,6 @@ }, "node_modules/@octokit/graphql": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.1.tgz", - "integrity": "sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==", "dev": true, "license": "MIT", "dependencies": { @@ -3129,22 +3060,16 @@ }, "node_modules/@octokit/openapi-types": { "version": "24.2.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", - "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", "dev": true, "license": "MIT" }, "node_modules/@octokit/plugin-enterprise-rest": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz", - "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==", "dev": true, "license": "MIT" }, "node_modules/@octokit/plugin-paginate-rest": { "version": "11.4.4-cjs.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.4-cjs.2.tgz", - "integrity": "sha512-2dK6z8fhs8lla5PaOTgqfCGBxgAv/le+EhPs27KklPhm1bKObpu6lXzwfUEQ16ajXzqNrKMujsFyo9K2eaoISw==", "dev": true, "license": "MIT", "dependencies": { @@ -3159,8 +3084,6 @@ }, "node_modules/@octokit/plugin-request-log": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz", - "integrity": "sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==", "dev": true, "license": "MIT", "engines": { @@ -3172,8 +3095,6 @@ }, "node_modules/@octokit/plugin-rest-endpoint-methods": { "version": "13.3.2-cjs.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.2-cjs.1.tgz", - "integrity": "sha512-VUjIjOOvF2oELQmiFpWA1aOPdawpyaCUqcEBc/UOUnj3Xp6DJGrJ1+bjUIIDzdHjnFNO6q57ODMfdEZnoBkCwQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3188,8 +3109,6 @@ }, "node_modules/@octokit/request": { "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz", - "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==", "dev": true, "license": "MIT", "dependencies": { @@ -3204,8 +3123,6 @@ }, "node_modules/@octokit/request-error": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz", - "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==", "dev": true, "license": "MIT", "dependencies": { @@ -3219,8 +3136,6 @@ }, "node_modules/@octokit/rest": { "version": "20.1.2", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.1.2.tgz", - "integrity": "sha512-GmYiltypkHHtihFwPRxlaorG5R9VAHuk/vbszVoRTGXnAsY60wYLkh/E2XiFmdZmqrisw+9FaazS1i5SbdWYgA==", "dev": true, "license": "MIT", "dependencies": { @@ -3235,8 +3150,6 @@ }, "node_modules/@octokit/types": { "version": "13.10.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", - "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", "dev": true, "license": "MIT", "dependencies": { @@ -3245,7 +3158,7 @@ }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, "license": "MIT", @@ -3284,7 +3197,7 @@ }, "node_modules/@scure/bip32": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-2.0.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@scure/bip32/-/bip32-2.0.1.tgz", "integrity": "sha512-4Md1NI5BzoVP+bhyJaY3K6yMesEFzNS1sE/cP+9nuvE7p/b0kx9XbpDHHFl8dHtufcbdHRUUQdRqLIPHN/s7yA==", "license": "MIT", "dependencies": { @@ -3296,9 +3209,24 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@scure/bip32/node_modules/@noble/curves": { + "version": "2.0.1", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@noble/curves/-/curves-2.0.1.tgz", + "integrity": "sha512-vs1Az2OOTBiP4q0pwjW5aF0xp9n4MxVrmkFBxc6EKZc6ddYx5gaZiAsZoq0uRRXWbi3AT/sBqn05eRPtn1JCPw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "2.0.1" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@scure/bip32/node_modules/@noble/hashes": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.0.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@noble/hashes/-/hashes-2.0.1.tgz", "integrity": "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==", "license": "MIT", "engines": { @@ -3310,7 +3238,7 @@ }, "node_modules/@scure/bip32/node_modules/@scure/base": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-2.0.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@scure/base/-/base-2.0.0.tgz", "integrity": "sha512-3E1kpuZginKkek01ovG8krQ0Z44E3DHPjc5S2rjJw9lZn3KSQOs8S7wqikF/AH7iRanHypj85uGyxk0XAyC37w==", "license": "MIT", "funding": { @@ -3319,7 +3247,7 @@ }, "node_modules/@scure/bip39": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-2.0.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@scure/bip39/-/bip39-2.0.1.tgz", "integrity": "sha512-PsxdFj/d2AcJcZDX1FXN3dDgitDDTmwf78rKZq1a6c1P1Nan1X/Sxc7667zU3U+AN60g7SxxP0YCVw2H/hBycg==", "license": "MIT", "dependencies": { @@ -3332,7 +3260,7 @@ }, "node_modules/@scure/bip39/node_modules/@noble/hashes": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.0.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@noble/hashes/-/hashes-2.0.1.tgz", "integrity": "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==", "license": "MIT", "engines": { @@ -3344,7 +3272,7 @@ }, "node_modules/@scure/bip39/node_modules/@scure/base": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-2.0.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@scure/base/-/base-2.0.0.tgz", "integrity": "sha512-3E1kpuZginKkek01ovG8krQ0Z44E3DHPjc5S2rjJw9lZn3KSQOs8S7wqikF/AH7iRanHypj85uGyxk0XAyC37w==", "license": "MIT", "funding": { @@ -3353,8 +3281,6 @@ }, "node_modules/@shikijs/engine-oniguruma": { "version": "3.19.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.19.0.tgz", - "integrity": "sha512-1hRxtYIJfJSZeM5ivbUXv9hcJP3PWRo5prG/V2sWwiubUKTa+7P62d2qxCW8jiVFX4pgRHhnHNp+qeR7Xl+6kg==", "dev": true, "license": "MIT", "dependencies": { @@ -3364,8 +3290,6 @@ }, "node_modules/@shikijs/langs": { "version": "3.19.0", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.19.0.tgz", - "integrity": "sha512-dBMFzzg1QiXqCVQ5ONc0z2ebyoi5BKz+MtfByLm0o5/nbUu3Iz8uaTCa5uzGiscQKm7lVShfZHU1+OG3t5hgwg==", "dev": true, "license": "MIT", "dependencies": { @@ -3374,8 +3298,6 @@ }, "node_modules/@shikijs/themes": { "version": "3.19.0", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.19.0.tgz", - "integrity": "sha512-H36qw+oh91Y0s6OlFfdSuQ0Ld+5CgB/VE6gNPK+Hk4VRbVG/XQgkjnt4KzfnnoO6tZPtKJKHPjwebOCfjd6F8A==", "dev": true, "license": "MIT", "dependencies": { @@ -3384,8 +3306,6 @@ }, "node_modules/@shikijs/types": { "version": "3.19.0", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.19.0.tgz", - "integrity": "sha512-Z2hdeEQlzuntf/BZpFG8a+Fsw9UVXdML7w0o3TgSXV3yNESGon+bs9ITkQb3Ki7zxoXOOu5oJWqZ2uto06V9iQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3395,15 +3315,11 @@ }, "node_modules/@shikijs/vscode-textmate": { "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", - "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", "dev": true, "license": "MIT" }, "node_modules/@sigstore/bundle": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-4.0.0.tgz", - "integrity": "sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3414,9 +3330,7 @@ } }, "node_modules/@sigstore/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.2.0.tgz", - "integrity": "sha512-kxHrDQ9YgfrWUSXU0cjsQGv8JykOFZQ9ErNKbFPWzk3Hgpwu8x2hHrQ9IdA8yl+j9RTLTC3sAF3Tdq1IQCP4oA==", + "version": "3.1.0", "dev": true, "license": "Apache-2.0", "engines": { @@ -3425,8 +3339,6 @@ }, "node_modules/@sigstore/protobuf-specs": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.5.0.tgz", - "integrity": "sha512-MM8XIwUjN2bwvCg1QvrMtbBmpcSHrkhFSCu1D11NyPvDQ25HEc4oG5/OcQfd/Tlf/OxmKWERDj0zGE23jQaMwA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -3434,61 +3346,27 @@ } }, "node_modules/@sigstore/sign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-4.1.1.tgz", - "integrity": "sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==", + "version": "4.1.0", "dev": true, "license": "Apache-2.0", "dependencies": { - "@gar/promise-retry": "^1.0.2", "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.2.0", + "@sigstore/core": "^3.1.0", "@sigstore/protobuf-specs": "^0.5.0", - "make-fetch-happen": "^15.0.4", - "proc-log": "^6.1.0" + "make-fetch-happen": "^15.0.3", + "proc-log": "^6.1.0", + "promise-retry": "^2.0.1" }, "engines": { "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/@sigstore/sign/node_modules/@npmcli/redact": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-4.0.0.tgz", - "integrity": "sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^20.17.0 || >=22.9.0" - } - }, - "node_modules/@sigstore/sign/node_modules/iconv-lite": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", - "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/@sigstore/sign/node_modules/make-fetch-happen": { - "version": "15.0.5", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.5.tgz", - "integrity": "sha512-uCbIa8jWWmQZt4dSnEStkVC6gdakiinAm4PiGsywIkguF0eWMdcjDz0ECYhUolFU3pFLOev9VNPCEygydXnddg==", + "version": "15.0.3", "dev": true, "license": "ISC", "dependencies": { - "@gar/promise-retry": "^1.0.0", "@npmcli/agent": "^4.0.0", - "@npmcli/redact": "^4.0.0", "cacache": "^20.0.1", "http-cache-semantics": "^4.1.1", "minipass": "^7.0.2", @@ -3497,6 +3375,7 @@ "minipass-pipeline": "^1.2.4", "negotiator": "^1.0.0", "proc-log": "^6.0.0", + "promise-retry": "^2.0.1", "ssri": "^13.0.0" }, "engines": { @@ -3504,9 +3383,7 @@ } }, "node_modules/@sigstore/sign/node_modules/minipass-fetch": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-5.0.2.tgz", - "integrity": "sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==", + "version": "5.0.1", "dev": true, "license": "MIT", "dependencies": { @@ -3518,13 +3395,11 @@ "node": "^20.17.0 || >=22.9.0" }, "optionalDependencies": { - "iconv-lite": "^0.7.2" + "encoding": "^0.1.13" } }, "node_modules/@sigstore/sign/node_modules/minipass-sized": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-2.0.0.tgz", - "integrity": "sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==", "dev": true, "license": "ISC", "dependencies": { @@ -3536,8 +3411,6 @@ }, "node_modules/@sigstore/sign/node_modules/proc-log": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", "engines": { @@ -3546,8 +3419,6 @@ }, "node_modules/@sigstore/sign/node_modules/ssri": { "version": "13.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.1.tgz", - "integrity": "sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==", "dev": true, "license": "ISC", "dependencies": { @@ -3558,9 +3429,7 @@ } }, "node_modules/@sigstore/tuf": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-4.0.2.tgz", - "integrity": "sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==", + "version": "4.0.1", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3573,8 +3442,6 @@ }, "node_modules/@sigstore/verify": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-3.1.0.tgz", - "integrity": "sha512-mNe0Iigql08YupSOGv197YdHpPPr+EzDZmfCgMc7RPNaZTw5aLN01nBl6CHJOh3BGtnMIj83EeN4butBchc8Ag==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3588,14 +3455,14 @@ }, "node_modules/@sinclair/typebox": { "version": "0.34.49", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.49.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@sinclair/typebox/-/typebox-0.34.49.tgz", "integrity": "sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==", "dev": true, "license": "MIT" }, "node_modules/@sinonjs/commons": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@sinonjs/commons/-/commons-3.0.1.tgz", "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, "license": "BSD-3-Clause", @@ -3604,9 +3471,9 @@ } }, "node_modules/@sinonjs/fake-timers": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", - "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", + "version": "15.3.2", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@sinonjs/fake-timers/-/fake-timers-15.3.2.tgz", + "integrity": "sha512-mrn35Jl2pCpns+mE3HaZa1yPN5EYCRgiMI+135COjr2hr8Cls9DXqIZ57vZe2cz7y2XVSq92tcs6kGQcT1J8Rw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -3640,8 +3507,6 @@ }, "node_modules/@tufjs/canonical-json": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", - "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", "dev": true, "license": "MIT", "engines": { @@ -3650,8 +3515,6 @@ }, "node_modules/@tufjs/models": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-4.1.0.tgz", - "integrity": "sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==", "dev": true, "license": "MIT", "dependencies": { @@ -3663,58 +3526,44 @@ } }, "node_modules/@tufjs/models/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "version": "4.0.2", "dev": true, "license": "MIT", + "dependencies": { + "jackspeak": "^4.2.3" + }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/@tufjs/models/node_modules/brace-expansion": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", - "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "version": "5.0.2", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "version": "10.2.1", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.5" + "brace-expansion": "^5.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", - "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, "node_modules/@types/babel__core": { "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@types/babel__core/-/babel__core-7.20.5.tgz", "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "license": "MIT", @@ -3728,7 +3577,7 @@ }, "node_modules/@types/babel__generator": { "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@types/babel__generator/-/babel__generator-7.27.0.tgz", "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "dev": true, "license": "MIT", @@ -3738,7 +3587,7 @@ }, "node_modules/@types/babel__template": { "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@types/babel__template/-/babel__template-7.4.4.tgz", "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "license": "MIT", @@ -3749,7 +3598,7 @@ }, "node_modules/@types/babel__traverse": { "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "dev": true, "license": "MIT", @@ -3795,8 +3644,6 @@ }, "node_modules/@types/hast": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3826,7 +3673,7 @@ }, "node_modules/@types/jest": { "version": "30.0.0", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-30.0.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@types/jest/-/jest-30.0.0.tgz", "integrity": "sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==", "dev": true, "license": "MIT", @@ -3847,15 +3694,16 @@ }, "node_modules/@types/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", "dev": true, "license": "MIT" }, "node_modules/@types/minimist": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", "dev": true, "license": "MIT" }, @@ -3869,8 +3717,6 @@ }, "node_modules/@types/normalize-package-data": { "version": "2.4.4", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", - "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "dev": true, "license": "MIT" }, @@ -3881,8 +3727,6 @@ }, "node_modules/@types/unist": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "dev": true, "license": "MIT" }, @@ -3909,8 +3753,6 @@ }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.52.0.tgz", - "integrity": "sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==", "dev": true, "license": "MIT", "dependencies": { @@ -3938,8 +3780,6 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, "license": "MIT", "engines": { @@ -3948,8 +3788,6 @@ }, "node_modules/@typescript-eslint/parser": { "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.52.0.tgz", - "integrity": "sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==", "dev": true, "license": "MIT", "dependencies": { @@ -3973,8 +3811,6 @@ }, "node_modules/@typescript-eslint/project-service": { "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.52.0.tgz", - "integrity": "sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==", "dev": true, "license": "MIT", "dependencies": { @@ -3995,8 +3831,6 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.52.0.tgz", - "integrity": "sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==", "dev": true, "license": "MIT", "dependencies": { @@ -4013,8 +3847,6 @@ }, "node_modules/@typescript-eslint/tsconfig-utils": { "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.52.0.tgz", - "integrity": "sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==", "dev": true, "license": "MIT", "engines": { @@ -4030,8 +3862,6 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.52.0.tgz", - "integrity": "sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4055,8 +3885,6 @@ }, "node_modules/@typescript-eslint/types": { "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.52.0.tgz", - "integrity": "sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==", "dev": true, "license": "MIT", "engines": { @@ -4069,8 +3897,6 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.52.0.tgz", - "integrity": "sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4083,345 +3909,84 @@ "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.4.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.52.0.tgz", - "integrity": "sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.52.0", - "@typescript-eslint/types": "8.52.0", - "@typescript-eslint/typescript-estree": "8.52.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.52.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.52.0.tgz", - "integrity": "sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.52.0", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "dev": true, - "license": "ISC" - }, - "node_modules/@unrs/resolver-binding-android-arm-eabi": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", - "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@unrs/resolver-binding-android-arm64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", - "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@unrs/resolver-binding-darwin-arm64": { - "version": "1.11.1", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@unrs/resolver-binding-darwin-x64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", - "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@unrs/resolver-binding-freebsd-x64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", - "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", - "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", - "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", - "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", - "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", - "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", - "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", - "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", - "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", - "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } }, - "node_modules/@unrs/resolver-binding-linux-x64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", - "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", - "cpu": [ - "x64" - ], + "node_modules/@typescript-eslint/utils": { + "version": "8.52.0", "dev": true, "license": "MIT", - "optional": true, - "os": [ - "linux" - ] + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.52.0", + "@typescript-eslint/types": "8.52.0", + "@typescript-eslint/typescript-estree": "8.52.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } }, - "node_modules/@unrs/resolver-binding-wasm32-wasi": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", - "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", - "cpu": [ - "wasm32" - ], + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.52.0", "dev": true, "license": "MIT", - "optional": true, "dependencies": { - "@napi-rs/wasm-runtime": "^0.2.11" + "@typescript-eslint/types": "8.52.0", + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": ">=14.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", - "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", - "cpu": [ - "arm64" - ], + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.1", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } }, - "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", - "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", - "cpu": [ - "ia32" - ], + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] + "license": "ISC" }, - "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "node_modules/@unrs/resolver-binding-darwin-arm64": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", - "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", "cpu": [ - "x64" + "arm64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "win32" + "darwin" ] }, "node_modules/@webassemblyjs/ast": { @@ -4598,8 +4163,6 @@ }, "node_modules/@xrplf/eslint-config": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@xrplf/eslint-config/-/eslint-config-3.0.0.tgz", - "integrity": "sha512-bLeLS2RYrnu3tcY7YYPXJ4fPkS308waojnvzOnI/gB1ysw+BdOSBL/7CexD3tb+En8dvxn9wI5OAiUzoaQcOqw==", "dev": true, "license": "ISC", "dependencies": { @@ -4637,8 +4200,6 @@ }, "node_modules/@xrplf/prettier-config": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@xrplf/prettier-config/-/prettier-config-1.9.1.tgz", - "integrity": "sha512-1k4WCTstvGiTJQYUNTZhz4BM2DI/kVBRXh1Dw5fVaVDiGVb4YOuzxFNgipOWX/EllrjRTN5NNGLJEDk0nsMFEg==", "dev": true, "license": "ISC" }, @@ -4658,15 +4219,11 @@ }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true, "license": "BSD-2-Clause" }, "node_modules/@yarnpkg/parsers": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.2.tgz", - "integrity": "sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -4679,8 +4236,6 @@ }, "node_modules/@yarnpkg/parsers/node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "license": "MIT", "dependencies": { @@ -4689,8 +4244,6 @@ }, "node_modules/@yarnpkg/parsers/node_modules/js-yaml": { "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", - "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, "license": "MIT", "dependencies": { @@ -4703,8 +4256,6 @@ }, "node_modules/@zkochan/js-yaml": { "version": "0.0.7", - "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz", - "integrity": "sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4716,8 +4267,6 @@ }, "node_modules/abbrev": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz", - "integrity": "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==", "dev": true, "license": "ISC", "engines": { @@ -4787,15 +4336,11 @@ }, "node_modules/add-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", - "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", "dev": true, "license": "MIT" }, "node_modules/agent-base": { "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "dev": true, "license": "MIT", "engines": { @@ -4804,8 +4349,6 @@ }, "node_modules/aggregate-error": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "license": "MIT", "dependencies": { @@ -4833,8 +4376,6 @@ }, "node_modules/ajv-formats": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, "license": "MIT", "dependencies": { @@ -4851,8 +4392,6 @@ }, "node_modules/ajv-formats/node_modules/ajv": { "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "dependencies": { @@ -4868,15 +4407,11 @@ }, "node_modules/ajv-formats/node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true, "license": "MIT" }, "node_modules/ansi-colors": { "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, "license": "MIT", "engines": { @@ -4885,6 +4420,8 @@ }, "node_modules/ansi-escapes": { "version": "4.3.2", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4933,8 +4470,6 @@ }, "node_modules/aproba": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", "dev": true, "license": "ISC" }, @@ -4980,10 +4515,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-differ": { + "version": "3.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/array-ify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", - "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", "dev": true, "license": "MIT" }, @@ -5008,6 +4549,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-union": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/array.prototype.findlast": { "version": "1.2.5", "dev": true, @@ -5120,8 +4669,6 @@ }, "node_modules/arrify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, "license": "MIT", "engines": { @@ -5136,8 +4683,6 @@ }, "node_modules/async": { "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true, "license": "MIT" }, @@ -5151,8 +4696,6 @@ }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true, "license": "MIT" }, @@ -5180,14 +4723,12 @@ } }, "node_modules/axios": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.0.tgz", - "integrity": "sha512-oXTDccv8PcfjZmPGlWsPSwtOJCZ/b6W5jAMCNcfwJbCzDckwG0jrYJFaWH1yvivfCXjVzV/SPDEhMB3Q+DSurg==", + "version": "1.13.5", "dev": true, "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.4", + "follow-redirects": "^1.15.11", + "form-data": "^4.0.5", "proxy-from-env": "^1.1.0" } }, @@ -5201,16 +4742,16 @@ } }, "node_modules/babel-jest": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.2.0.tgz", - "integrity": "sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/babel-jest/-/babel-jest-30.3.0.tgz", + "integrity": "sha512-gRpauEU2KRrCox5Z296aeVHR4jQ98BCnu0IO332D/xpHNOsIH/bgSRk9k6GbKIbBw8vFeN6ctuu6tV8WOyVfYQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/transform": "30.2.0", + "@jest/transform": "30.3.0", "@types/babel__core": "^7.20.5", "babel-plugin-istanbul": "^7.0.1", - "babel-preset-jest": "30.2.0", + "babel-preset-jest": "30.3.0", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "slash": "^3.0.0" @@ -5224,7 +4765,7 @@ }, "node_modules/babel-plugin-istanbul": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", "integrity": "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==", "dev": true, "license": "BSD-3-Clause", @@ -5243,9 +4784,9 @@ } }, "node_modules/babel-plugin-jest-hoist": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.2.0.tgz", - "integrity": "sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.3.0.tgz", + "integrity": "sha512-+TRkByhsws6sfPjVaitzadk1I0F5sPvOVUH5tyTSzhePpsGIVrdeunHSw/C36QeocS95OOk8lunc4rlu5Anwsg==", "dev": true, "license": "MIT", "dependencies": { @@ -5281,13 +4822,13 @@ } }, "node_modules/babel-preset-jest": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.2.0.tgz", - "integrity": "sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/babel-preset-jest/-/babel-preset-jest-30.3.0.tgz", + "integrity": "sha512-6ZcUbWHC+dMz2vfzdNwi87Z1gQsLNK2uLuK1Q89R11xdvejcivlYYwDlEv0FHX3VwEXpbBQ9uufB/MUNpZGfhQ==", "dev": true, "license": "MIT", "dependencies": { - "babel-plugin-jest-hoist": "30.2.0", + "babel-plugin-jest-hoist": "30.3.0", "babel-preset-current-node-syntax": "^1.2.0" }, "engines": { @@ -5304,8 +4845,6 @@ }, "node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true, "funding": [ { @@ -5333,8 +4872,6 @@ }, "node_modules/baseline-browser-mapping": { "version": "2.9.12", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.12.tgz", - "integrity": "sha512-Mij6Lij93pTAIsSYy5cyBQ975Qh9uLEc5rwGTpomiZeXZL9yIS6uORJakb3ScHgfs0serMMfIbXzokPMuEiRyw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -5343,15 +4880,11 @@ }, "node_modules/before-after-hook": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", "dev": true, "license": "Apache-2.0" }, "node_modules/bignumber.js": { "version": "9.3.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.0.tgz", - "integrity": "sha512-EM7aMFTXbptt/wZdMlBv2t8IViwQL+h6SLHosp8Yf0dqJMTnY6iL32opnAB6kAdL0SZPuvcAzFr31o0c/R3/RA==", "license": "MIT", "engines": { "node": "*" @@ -5359,8 +4892,6 @@ }, "node_modules/bin-links": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-5.0.0.tgz", - "integrity": "sha512-sdleLVfCjBtgO5cNjA2HVRvWBJAHs4zwenaCPMNJAJU0yNxpzj80IpjOIimkpkr+mhlA+how5poQtt53PygbHA==", "dev": true, "license": "ISC", "dependencies": { @@ -5376,8 +4907,6 @@ }, "node_modules/bin-links/node_modules/cmd-shim": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-7.0.0.tgz", - "integrity": "sha512-rtpaCbr164TPPh+zFdkWpCyZuKkjpAzODfaZCf/SVJZzJN+4bHQb/LP3Jzq5/+84um3XXY8r548XiWKSborwVw==", "dev": true, "license": "ISC", "engines": { @@ -5386,8 +4915,6 @@ }, "node_modules/bin-links/node_modules/read-cmd-shim": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-5.0.0.tgz", - "integrity": "sha512-SEbJV7tohp3DAAILbEMPXavBjAnMN0tVnh4+9G8ihV4Pq3HYF9h8QNez9zkJ1ILkv9G2BjdzwctznGZXgu/HGw==", "dev": true, "license": "ISC", "engines": { @@ -5396,8 +4923,6 @@ }, "node_modules/bin-links/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "license": "ISC", "engines": { @@ -5409,8 +4934,6 @@ }, "node_modules/bin-links/node_modules/write-file-atomic": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-6.0.0.tgz", - "integrity": "sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==", "dev": true, "license": "ISC", "dependencies": { @@ -5434,8 +4957,6 @@ }, "node_modules/bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "license": "MIT", "dependencies": { @@ -5515,8 +5036,6 @@ }, "node_modules/browserslist": { "version": "4.28.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "dev": true, "funding": [ { @@ -5568,8 +5087,6 @@ }, "node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -5598,8 +5115,6 @@ }, "node_modules/byte-size": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-8.1.1.tgz", - "integrity": "sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==", "dev": true, "license": "MIT", "engines": { @@ -5616,8 +5131,6 @@ }, "node_modules/cacache": { "version": "20.0.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.3.tgz", - "integrity": "sha512-3pUp4e8hv07k1QlijZu6Kn7c9+ZpWWk4j3F8N3xPuCExULobqJydKYOTj1FTq58srkJsXvO7LbGAH4C0ZU3WGw==", "dev": true, "license": "ISC", "dependencies": { @@ -5639,8 +5152,6 @@ }, "node_modules/cacache/node_modules/@npmcli/fs": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-5.0.0.tgz", - "integrity": "sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==", "dev": true, "license": "ISC", "dependencies": { @@ -5652,8 +5163,6 @@ }, "node_modules/cacache/node_modules/balanced-match": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.2.tgz", - "integrity": "sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==", "dev": true, "license": "MIT", "dependencies": { @@ -5665,8 +5174,6 @@ }, "node_modules/cacache/node_modules/brace-expansion": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz", - "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==", "dev": true, "license": "MIT", "dependencies": { @@ -5678,8 +5185,6 @@ }, "node_modules/cacache/node_modules/glob": { "version": "13.0.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.5.tgz", - "integrity": "sha512-BzXxZg24Ibra1pbQ/zE7Kys4Ua1ks7Bn6pKLkVPZ9FZe4JQS6/Q7ef3LG1H+k7lUf5l4T3PLSyYyYJVYUvfgTw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -5696,8 +5201,6 @@ }, "node_modules/cacache/node_modules/lru-cache": { "version": "11.2.6", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", - "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -5705,16 +5208,14 @@ } }, "node_modules/cacache/node_modules/minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "version": "10.2.1", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "brace-expansion": "^5.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -5722,8 +5223,6 @@ }, "node_modules/cacache/node_modules/p-map": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz", - "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==", "dev": true, "license": "MIT", "engines": { @@ -5735,8 +5234,6 @@ }, "node_modules/cacache/node_modules/ssri": { "version": "13.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.1.tgz", - "integrity": "sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==", "dev": true, "license": "ISC", "dependencies": { @@ -5808,8 +5305,6 @@ }, "node_modules/camelcase-keys": { "version": "6.2.2", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", - "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, "license": "MIT", "dependencies": { @@ -5826,8 +5321,6 @@ }, "node_modules/caniuse-lite": { "version": "1.0.30001762", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001762.tgz", - "integrity": "sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==", "dev": true, "funding": [ { @@ -5847,8 +5340,6 @@ }, "node_modules/chai": { "version": "6.2.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", - "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", "dev": true, "license": "MIT", "engines": { @@ -5872,7 +5363,7 @@ }, "node_modules/char-regex": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, "license": "MIT", @@ -5882,8 +5373,6 @@ }, "node_modules/chardet": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", - "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", "dev": true, "license": "MIT" }, @@ -5923,8 +5412,6 @@ }, "node_modules/chownr": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", - "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -5940,9 +5427,7 @@ } }, "node_modules/ci-info": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz", - "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==", + "version": "3.9.0", "dev": true, "funding": [ { @@ -5957,15 +5442,13 @@ }, "node_modules/cjs-module-lexer": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz", "integrity": "sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==", "dev": true, "license": "MIT" }, "node_modules/clean-stack": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, "license": "MIT", "engines": { @@ -5974,8 +5457,6 @@ }, "node_modules/cli-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "license": "MIT", "dependencies": { @@ -5987,8 +5468,6 @@ }, "node_modules/cli-spinners": { "version": "2.6.1", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", - "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", "dev": true, "license": "MIT", "engines": { @@ -6000,8 +5479,6 @@ }, "node_modules/cli-width": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", - "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "dev": true, "license": "ISC", "engines": { @@ -6020,8 +5497,6 @@ }, "node_modules/clone": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, "license": "MIT", "engines": { @@ -6054,8 +5529,6 @@ }, "node_modules/cmd-shim": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.3.tgz", - "integrity": "sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==", "dev": true, "license": "ISC", "engines": { @@ -6064,7 +5537,7 @@ }, "node_modules/co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/co/-/co-4.6.0.tgz", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, "license": "MIT", @@ -6075,7 +5548,7 @@ }, "node_modules/collect-v8-coverage": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", "dev": true, "license": "MIT" @@ -6098,8 +5571,6 @@ }, "node_modules/color-support": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true, "license": "ISC", "bin": { @@ -6113,8 +5584,6 @@ }, "node_modules/columnify": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", - "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", "dev": true, "license": "MIT", "dependencies": { @@ -6127,8 +5596,6 @@ }, "node_modules/combined-stream": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "license": "MIT", "dependencies": { @@ -6140,8 +5607,6 @@ }, "node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true, "license": "MIT" }, @@ -6155,15 +5620,11 @@ }, "node_modules/common-ancestor-path": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", - "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", "dev": true, "license": "ISC" }, "node_modules/compare-func": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", - "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, "license": "MIT", "dependencies": { @@ -6178,8 +5639,6 @@ }, "node_modules/concat-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", "dev": true, "engines": [ "node >= 6.0" @@ -6226,8 +5685,6 @@ }, "node_modules/console-control-strings": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true, "license": "ISC" }, @@ -6241,8 +5698,6 @@ }, "node_modules/conventional-changelog-angular": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", - "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", "dev": true, "license": "ISC", "dependencies": { @@ -6254,8 +5709,6 @@ }, "node_modules/conventional-changelog-core": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-5.0.1.tgz", - "integrity": "sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==", "dev": true, "license": "MIT", "dependencies": { @@ -6277,8 +5730,6 @@ }, "node_modules/conventional-changelog-preset-loader": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz", - "integrity": "sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==", "dev": true, "license": "MIT", "engines": { @@ -6287,8 +5738,6 @@ }, "node_modules/conventional-changelog-writer": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.1.tgz", - "integrity": "sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6309,8 +5758,6 @@ }, "node_modules/conventional-commits-filter": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz", - "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==", "dev": true, "license": "MIT", "dependencies": { @@ -6323,8 +5770,6 @@ }, "node_modules/conventional-commits-parser": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", - "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", "dev": true, "license": "MIT", "dependencies": { @@ -6342,8 +5787,6 @@ }, "node_modules/conventional-recommended-bump": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-7.0.1.tgz", - "integrity": "sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==", "dev": true, "license": "MIT", "dependencies": { @@ -6403,9 +5846,7 @@ } }, "node_modules/copyfiles/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "version": "3.1.2", "dev": true, "license": "ISC", "dependencies": { @@ -6434,8 +5875,6 @@ }, "node_modules/cosmiconfig": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, "license": "MIT", "dependencies": { @@ -6479,8 +5918,6 @@ }, "node_modules/cssesc": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, "license": "MIT", "bin": { @@ -6503,8 +5940,6 @@ }, "node_modules/dargs": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", - "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", "dev": true, "license": "MIT", "engines": { @@ -6569,8 +6004,6 @@ }, "node_modules/dateformat": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", - "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", "dev": true, "license": "MIT", "engines": { @@ -6584,8 +6017,6 @@ }, "node_modules/debug": { "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { @@ -6602,8 +6033,6 @@ }, "node_modules/decamelize": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, "license": "MIT", "engines": { @@ -6612,8 +6041,6 @@ }, "node_modules/decamelize-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", - "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, "license": "MIT", "dependencies": { @@ -6629,8 +6056,6 @@ }, "node_modules/decamelize-keys/node_modules/map-obj": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true, "license": "MIT", "engines": { @@ -6638,9 +6063,9 @@ } }, "node_modules/dedent": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.1.tgz", - "integrity": "sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==", + "version": "1.7.2", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/dedent/-/dedent-1.7.2.tgz", + "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", "dev": true, "license": "MIT", "peerDependencies": { @@ -6659,7 +6084,7 @@ }, "node_modules/deepmerge": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "license": "MIT", @@ -6669,8 +6094,6 @@ }, "node_modules/defaults": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, "license": "MIT", "dependencies": { @@ -6698,8 +6121,6 @@ }, "node_modules/define-lazy-prop": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true, "license": "MIT", "engines": { @@ -6724,8 +6145,6 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, "license": "MIT", "engines": { @@ -6742,8 +6161,6 @@ }, "node_modules/deprecation": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", "dev": true, "license": "ISC" }, @@ -6756,9 +6173,17 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-indent": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/detect-newline": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, "license": "MIT", @@ -6803,8 +6228,6 @@ }, "node_modules/dot-prop": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -6816,8 +6239,6 @@ }, "node_modules/dotenv": { "version": "16.4.7", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", - "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -6829,8 +6250,6 @@ }, "node_modules/dotenv-expand": { "version": "11.0.7", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", - "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -6858,7 +6277,7 @@ }, "node_modules/eastasianwidth": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true, "license": "MIT" @@ -6870,8 +6289,6 @@ }, "node_modules/ejs": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -6886,14 +6303,12 @@ }, "node_modules/electron-to-chromium": { "version": "1.5.267", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", - "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", "dev": true, "license": "ISC" }, "node_modules/emittery": { "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/emittery/-/emittery-0.13.1.tgz", "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "license": "MIT", @@ -6919,8 +6334,6 @@ }, "node_modules/encoding": { "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "license": "MIT", "optional": true, @@ -6930,8 +6343,6 @@ }, "node_modules/encoding/node_modules/iconv-lite": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "license": "MIT", "optional": true, @@ -6944,8 +6355,6 @@ }, "node_modules/end-of-stream": { "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", "dev": true, "license": "MIT", "dependencies": { @@ -7029,8 +6438,6 @@ }, "node_modules/enquirer": { "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "license": "MIT", "dependencies": { @@ -7072,8 +6479,6 @@ }, "node_modules/env-paths": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, "license": "MIT", "engines": { @@ -7093,8 +6498,6 @@ }, "node_modules/err-code": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "dev": true, "license": "MIT" }, @@ -7218,8 +6621,6 @@ }, "node_modules/es-module-lexer": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", - "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", "dev": true, "license": "MIT" }, @@ -7301,8 +6702,6 @@ }, "node_modules/eslint": { "version": "9.39.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", - "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", "dependencies": { @@ -7487,8 +6886,6 @@ }, "node_modules/eslint-plugin-array-func": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-array-func/-/eslint-plugin-array-func-5.1.0.tgz", - "integrity": "sha512-+OULB0IQdENBmBf8pHMPPObgV6QyfeXFin483jPonOaiurI9UFmc8UydWriK5f5Gel8xBhQLA6NzMwbck1BUJw==", "dev": true, "license": "MIT", "engines": { @@ -7568,9 +6965,7 @@ } }, "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "version": "3.1.2", "dev": true, "license": "ISC", "dependencies": { @@ -7651,9 +7046,7 @@ } }, "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "version": "3.1.2", "dev": true, "license": "ISC", "peer": true, @@ -7666,8 +7059,6 @@ }, "node_modules/eslint-plugin-n": { "version": "17.23.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.23.1.tgz", - "integrity": "sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==", "dev": true, "license": "MIT", "dependencies": { @@ -7786,9 +7177,7 @@ } }, "node_modules/eslint-plugin-react/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "version": "3.1.2", "dev": true, "license": "ISC", "peer": true, @@ -7827,8 +7216,6 @@ }, "node_modules/eslint-plugin-tsdoc": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.5.0.tgz", - "integrity": "sha512-ush8ehCwub2rgE16OIgQPFyj/o0k3T8kL++9IrAI4knsmupNo8gvfO2ERgDHWWgTC5MglbwLVRswU93HyXqNpw==", "dev": true, "license": "MIT", "dependencies": { @@ -7839,8 +7226,6 @@ }, "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/project-service": { "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.4.tgz", - "integrity": "sha512-nPiRSKuvtTN+no/2N1kt2tUh/HoFzeEgOm9fQ6XQk4/ApGqjx0zFIIaLJ6wooR1HIoozvj2j6vTi/1fgAz7UYQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7861,8 +7246,6 @@ }, "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/scope-manager": { "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.4.tgz", - "integrity": "sha512-tMDbLGXb1wC+McN1M6QeDx7P7c0UWO5z9CXqp7J8E+xGcJuUuevWKxuG8j41FoweS3+L41SkyKKkia16jpX7CA==", "dev": true, "license": "MIT", "dependencies": { @@ -7879,8 +7262,6 @@ }, "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/tsconfig-utils": { "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.4.tgz", - "integrity": "sha512-+/XqaZPIAk6Cjg7NWgSGe27X4zMGqrFqZ8atJsX3CWxH/jACqWnrWI68h7nHQld0y+k9eTTjb9r+KU4twLoo9A==", "dev": true, "license": "MIT", "engines": { @@ -7896,8 +7277,6 @@ }, "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/types": { "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.4.tgz", - "integrity": "sha512-USjyxm3gQEePdUwJBFjjGNG18xY9A2grDVGuk7/9AkjIF1L+ZrVnwR5VAU5JXtUnBL/Nwt3H31KlRDaksnM7/w==", "dev": true, "license": "MIT", "engines": { @@ -7910,8 +7289,6 @@ }, "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/typescript-estree": { "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.4.tgz", - "integrity": "sha512-7oV2qEOr1d4NWNmpXLR35LvCfOkTNymY9oyW+lUHkmCno7aOmIf/hMaydnJBUTBMRCOGZh8YjkFOc8dadEoNGA==", "dev": true, "license": "MIT", "dependencies": { @@ -7939,8 +7316,6 @@ }, "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/utils": { "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.4.tgz", - "integrity": "sha512-AbSv11fklGXV6T28dp2Me04Uw90R2iJ30g2bgLz529Koehrmkbs1r7paFqr1vPCZi7hHwYxYtxfyQMRC8QaVSg==", "dev": true, "license": "MIT", "dependencies": { @@ -7963,8 +7338,6 @@ }, "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/visitor-keys": { "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.4.tgz", - "integrity": "sha512-/++5CYLQqsO9HFGLI7APrxBJYo+5OCMpViuhV8q5/Qa3o5mMrF//eQHks+PXcsAVaLdn817fMuS7zqoXNNZGaw==", "dev": true, "license": "MIT", "dependencies": { @@ -7981,8 +7354,6 @@ }, "node_modules/eslint-plugin-tsdoc/node_modules/eslint-visitor-keys": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -8039,9 +7410,7 @@ } }, "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "version": "3.1.2", "dev": true, "license": "ISC", "dependencies": { @@ -8143,7 +7512,7 @@ }, "node_modules/execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "license": "MIT", @@ -8167,7 +7536,7 @@ }, "node_modules/exit-x": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-0.2.2.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/exit-x/-/exit-x-0.2.2.tgz", "integrity": "sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==", "dev": true, "license": "MIT", @@ -8176,18 +7545,18 @@ } }, "node_modules/expect": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-30.2.0.tgz", - "integrity": "sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/expect/-/expect-30.3.0.tgz", + "integrity": "sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q==", "dev": true, "license": "MIT", "dependencies": { - "@jest/expect-utils": "30.2.0", + "@jest/expect-utils": "30.3.0", "@jest/get-type": "30.1.0", - "jest-matcher-utils": "30.2.0", - "jest-message-util": "30.2.0", - "jest-mock": "30.2.0", - "jest-util": "30.2.0" + "jest-matcher-utils": "30.3.0", + "jest-message-util": "30.3.0", + "jest-mock": "30.3.0", + "jest-util": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -8195,8 +7564,6 @@ }, "node_modules/exponential-backoff": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", - "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", "dev": true, "license": "Apache-2.0" }, @@ -8217,8 +7584,6 @@ }, "node_modules/fast-glob": { "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { @@ -8234,8 +7599,6 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "license": "ISC", "dependencies": { @@ -8256,8 +7619,6 @@ }, "node_modules/fast-uri": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", "dev": true, "funding": [ { @@ -8281,8 +7642,6 @@ }, "node_modules/fastq": { "version": "1.20.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", - "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "dev": true, "license": "ISC", "dependencies": { @@ -8299,8 +7658,6 @@ }, "node_modules/figures": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "license": "MIT", "dependencies": { @@ -8315,8 +7672,6 @@ }, "node_modules/figures/node_modules/escape-string-regexp": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "license": "MIT", "engines": { @@ -8335,9 +7690,7 @@ } }, "node_modules/filelist": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz", - "integrity": "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==", + "version": "1.0.4", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -8345,9 +7698,7 @@ } }, "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", - "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "version": "5.1.6", "dev": true, "license": "ISC", "dependencies": { @@ -8445,9 +7796,7 @@ } }, "node_modules/flatted": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", - "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", + "version": "3.3.3", "dev": true, "license": "ISC" }, @@ -8486,8 +7835,6 @@ }, "node_modules/foreground-child": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, "license": "ISC", "dependencies": { @@ -8503,8 +7850,6 @@ }, "node_modules/foreground-child/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "license": "ISC", "engines": { @@ -8516,8 +7861,6 @@ }, "node_modules/form-data": { "version": "4.0.5", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", - "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", "dev": true, "license": "MIT", "dependencies": { @@ -8533,8 +7876,6 @@ }, "node_modules/front-matter": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", - "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", "dev": true, "license": "MIT", "dependencies": { @@ -8543,8 +7884,6 @@ }, "node_modules/front-matter/node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "license": "MIT", "dependencies": { @@ -8553,8 +7892,6 @@ }, "node_modules/front-matter/node_modules/js-yaml": { "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", - "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, "license": "MIT", "dependencies": { @@ -8567,15 +7904,11 @@ }, "node_modules/fs-constants": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true, "license": "MIT" }, "node_modules/fs-extra": { - "version": "11.3.4", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz", - "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==", + "version": "11.3.3", "dev": true, "license": "MIT", "dependencies": { @@ -8589,8 +7922,6 @@ }, "node_modules/fs-minipass": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dev": true, "license": "ISC", "dependencies": { @@ -8693,7 +8024,7 @@ }, "node_modules/get-package-type": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, "license": "MIT", @@ -8703,8 +8034,6 @@ }, "node_modules/get-pkg-repo": { "version": "4.2.1", - "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", - "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", "dev": true, "license": "MIT", "dependencies": { @@ -8722,8 +8051,6 @@ }, "node_modules/get-pkg-repo/node_modules/hosted-git-info": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, "license": "ISC", "dependencies": { @@ -8735,8 +8062,6 @@ }, "node_modules/get-pkg-repo/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "license": "ISC", "dependencies": { @@ -8748,11 +8073,20 @@ }, "node_modules/get-pkg-repo/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" }, + "node_modules/get-port": { + "version": "5.1.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-proto": { "version": "1.0.1", "dev": true, @@ -8767,7 +8101,7 @@ }, "node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, "license": "MIT", @@ -8807,9 +8141,6 @@ }, "node_modules/git-raw-commits": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz", - "integrity": "sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==", - "deprecated": "This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead.", "dev": true, "license": "MIT", "dependencies": { @@ -8826,8 +8157,6 @@ }, "node_modules/git-remote-origin-url": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", - "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", "dev": true, "license": "MIT", "dependencies": { @@ -8838,11 +8167,16 @@ "node": ">=4" } }, + "node_modules/git-remote-origin-url/node_modules/pify": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/git-semver-tags": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-5.0.1.tgz", - "integrity": "sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==", - "deprecated": "This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead.", "dev": true, "license": "MIT", "dependencies": { @@ -8858,8 +8192,6 @@ }, "node_modules/git-up": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", - "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8869,8 +8201,6 @@ }, "node_modules/git-url-parse": { "version": "14.0.0", - "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-14.0.0.tgz", - "integrity": "sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8879,8 +8209,6 @@ }, "node_modules/gitconfiglocal": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", - "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", "dev": true, "license": "BSD", "dependencies": { @@ -8932,9 +8260,7 @@ } }, "node_modules/glob/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "version": "3.1.2", "dev": true, "license": "ISC", "dependencies": { @@ -9013,8 +8339,6 @@ }, "node_modules/hard-rejection": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", - "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true, "license": "MIT", "engines": { @@ -9092,8 +8416,6 @@ }, "node_modules/has-unicode": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "dev": true, "license": "ISC" }, @@ -9110,8 +8432,6 @@ }, "node_modules/hosted-git-info": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.2.tgz", - "integrity": "sha512-M422h7o/BR3rmCQ8UHi7cyyMqKltdP9Uo+J2fXK+RSAY+wTcKOIRyhTuKv4qn+DJf3g+PL890AzId5KZpX+CBg==", "dev": true, "license": "ISC", "dependencies": { @@ -9123,8 +8443,6 @@ }, "node_modules/hosted-git-info/node_modules/lru-cache": { "version": "11.2.6", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", - "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -9138,8 +8456,6 @@ }, "node_modules/http-cache-semantics": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", - "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", "dev": true, "license": "BSD-2-Clause" }, @@ -9181,8 +8497,6 @@ }, "node_modules/http-proxy-agent": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "license": "MIT", "dependencies": { @@ -9195,8 +8509,6 @@ }, "node_modules/https-proxy-agent": { "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, "license": "MIT", "dependencies": { @@ -9228,8 +8540,6 @@ }, "node_modules/ieee754": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true, "funding": [ { @@ -9257,8 +8567,6 @@ }, "node_modules/ignore-walk": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-8.0.0.tgz", - "integrity": "sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==", "dev": true, "license": "ISC", "dependencies": { @@ -9269,39 +8577,36 @@ } }, "node_modules/ignore-walk/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "version": "4.0.2", "dev": true, "license": "MIT", + "dependencies": { + "jackspeak": "^4.2.3" + }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/ignore-walk/node_modules/brace-expansion": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", - "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "version": "5.0.2", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" } }, "node_modules/ignore-walk/node_modules/minimatch": { - "version": "10.2.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", - "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "version": "10.2.1", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.5" + "brace-expansion": "^5.0.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -9350,8 +8655,6 @@ }, "node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "license": "MIT", "engines": { @@ -9374,15 +8677,11 @@ }, "node_modules/ini": { "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true, "license": "ISC" }, "node_modules/init-package-json": { "version": "8.2.2", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-8.2.2.tgz", - "integrity": "sha512-pXVMn67Jdw2hPKLCuJZj62NC9B2OIDd1R3JwZXTHXuEnfN3Uq5kJbKOSld6YEU+KOGfMD82EzxFTYz5o0SSJoA==", "dev": true, "license": "ISC", "dependencies": { @@ -9400,8 +8699,6 @@ }, "node_modules/inquirer": { "version": "12.9.6", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.9.6.tgz", - "integrity": "sha512-603xXOgyfxhuis4nfnWaZrMaotNT0Km9XwwBNWUKbIDqeCY89jGr2F9YPEMiNhU6XjIP4VoWISMBFfcc5NgrTw==", "dev": true, "license": "MIT", "dependencies": { @@ -9448,8 +8745,6 @@ }, "node_modules/ip-address": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", - "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", "dev": true, "license": "MIT", "engines": { @@ -9556,8 +8851,6 @@ }, "node_modules/is-ci": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", - "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9567,22 +8860,6 @@ "is-ci": "bin.js" } }, - "node_modules/is-ci/node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-core-module": { "version": "2.16.1", "dev": true, @@ -9630,8 +8907,6 @@ }, "node_modules/is-docker": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, "license": "MIT", "bin": { @@ -9676,7 +8951,7 @@ }, "node_modules/is-generator-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, "license": "MIT", @@ -9714,8 +8989,6 @@ }, "node_modules/is-interactive": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, "license": "MIT", "engines": { @@ -9769,8 +9042,6 @@ }, "node_modules/is-obj": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, "license": "MIT", "engines": { @@ -9779,8 +9050,6 @@ }, "node_modules/is-plain-obj": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, "license": "MIT", "engines": { @@ -9831,8 +9100,6 @@ }, "node_modules/is-ssh": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.1.tgz", - "integrity": "sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==", "dev": true, "license": "MIT", "dependencies": { @@ -9841,7 +9108,7 @@ }, "node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "license": "MIT", @@ -9885,8 +9152,6 @@ }, "node_modules/is-text-path": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", - "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", "dev": true, "license": "MIT", "dependencies": { @@ -9912,8 +9177,6 @@ }, "node_modules/is-unicode-supported": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, "license": "MIT", "engines": { @@ -9965,8 +9228,6 @@ }, "node_modules/is-wsl": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, "license": "MIT", "dependencies": { @@ -10015,7 +9276,7 @@ }, "node_modules/istanbul-lib-instrument": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, "license": "BSD-3-Clause", @@ -10032,7 +9293,7 @@ }, "node_modules/istanbul-lib-report": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "license": "BSD-3-Clause", @@ -10047,7 +9308,7 @@ }, "node_modules/istanbul-lib-source-maps": { "version": "5.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", "dev": true, "license": "BSD-3-Clause", @@ -10062,7 +9323,7 @@ }, "node_modules/istanbul-reports": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/istanbul-reports/-/istanbul-reports-3.2.0.tgz", "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, "license": "BSD-3-Clause", @@ -10093,8 +9354,6 @@ }, "node_modules/jackspeak": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", - "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -10109,8 +9368,6 @@ }, "node_modules/jake": { "version": "10.9.4", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", - "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -10131,16 +9388,16 @@ "license": "MIT" }, "node_modules/jest": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-30.2.0.tgz", - "integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest/-/jest-30.3.0.tgz", + "integrity": "sha512-AkXIIFcaazymvey2i/+F94XRnM6TsVLZDhBMLsd1Sf/W0wzsvvpjeyUrCZD6HGG4SDYPgDJDBKeiJTBb10WzMg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "30.2.0", - "@jest/types": "30.2.0", + "@jest/core": "30.3.0", + "@jest/types": "30.3.0", "import-local": "^3.2.0", - "jest-cli": "30.2.0" + "jest-cli": "30.3.0" }, "bin": { "jest": "bin/jest.js" @@ -10158,14 +9415,14 @@ } }, "node_modules/jest-changed-files": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.2.0.tgz", - "integrity": "sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-changed-files/-/jest-changed-files-30.3.0.tgz", + "integrity": "sha512-B/7Cny6cV5At6M25EWDgf9S617lHivamL8vl6KEpJqkStauzcG4e+WPfDgMMF+H4FVH4A2PLRyvgDJan4441QA==", "dev": true, "license": "MIT", "dependencies": { "execa": "^5.1.1", - "jest-util": "30.2.0", + "jest-util": "30.3.0", "p-limit": "^3.1.0" }, "engines": { @@ -10173,29 +9430,29 @@ } }, "node_modules/jest-circus": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.2.0.tgz", - "integrity": "sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-circus/-/jest-circus-30.3.0.tgz", + "integrity": "sha512-PyXq5szeSfR/4f1lYqCmmQjh0vqDkURUYi9N6whnHjlRz4IUQfMcXkGLeEoiJtxtyPqgUaUUfyQlApXWBSN1RA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.2.0", - "@jest/expect": "30.2.0", - "@jest/test-result": "30.2.0", - "@jest/types": "30.2.0", + "@jest/environment": "30.3.0", + "@jest/expect": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", "chalk": "^4.1.2", "co": "^4.6.0", "dedent": "^1.6.0", "is-generator-fn": "^2.1.0", - "jest-each": "30.2.0", - "jest-matcher-utils": "30.2.0", - "jest-message-util": "30.2.0", - "jest-runtime": "30.2.0", - "jest-snapshot": "30.2.0", - "jest-util": "30.2.0", + "jest-each": "30.3.0", + "jest-matcher-utils": "30.3.0", + "jest-message-util": "30.3.0", + "jest-runtime": "30.3.0", + "jest-snapshot": "30.3.0", + "jest-util": "30.3.0", "p-limit": "^3.1.0", - "pretty-format": "30.2.0", + "pretty-format": "30.3.0", "pure-rand": "^7.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" @@ -10204,50 +9461,22 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "30.0.5", - "ansi-styles": "^5.2.0", - "react-is": "^18.3.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, "node_modules/jest-cli": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.2.0.tgz", - "integrity": "sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-cli/-/jest-cli-30.3.0.tgz", + "integrity": "sha512-l6Tqx+j1fDXJEW5bqYykDQQ7mQg+9mhWXtnj+tQZrTWYHyHoi6Be8HPumDSA+UiX2/2buEgjA58iJzdj146uCw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "30.2.0", - "@jest/test-result": "30.2.0", - "@jest/types": "30.2.0", + "@jest/core": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/types": "30.3.0", "chalk": "^4.1.2", "exit-x": "^0.2.2", "import-local": "^3.2.0", - "jest-config": "30.2.0", - "jest-util": "30.2.0", - "jest-validate": "30.2.0", + "jest-config": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", "yargs": "^17.7.2" }, "bin": { @@ -10267,7 +9496,7 @@ }, "node_modules/jest-cli/node_modules/cliui": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "license": "ISC", @@ -10282,7 +9511,7 @@ }, "node_modules/jest-cli/node_modules/yargs": { "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "license": "MIT", @@ -10301,7 +9530,7 @@ }, "node_modules/jest-cli/node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "license": "ISC", @@ -10310,34 +9539,33 @@ } }, "node_modules/jest-config": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.2.0.tgz", - "integrity": "sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-config/-/jest-config-30.3.0.tgz", + "integrity": "sha512-WPMAkMAtNDY9P/oKObtsRG/6KTrhtgPJoBTmk20uDn4Uy6/3EJnnaZJre/FMT1KVRx8cve1r7/FlMIOfRVWL4w==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.27.4", "@jest/get-type": "30.1.0", "@jest/pattern": "30.0.1", - "@jest/test-sequencer": "30.2.0", - "@jest/types": "30.2.0", - "babel-jest": "30.2.0", + "@jest/test-sequencer": "30.3.0", + "@jest/types": "30.3.0", + "babel-jest": "30.3.0", "chalk": "^4.1.2", "ci-info": "^4.2.0", "deepmerge": "^4.3.1", - "glob": "^10.3.10", + "glob": "^10.5.0", "graceful-fs": "^4.2.11", - "jest-circus": "30.2.0", + "jest-circus": "30.3.0", "jest-docblock": "30.2.0", - "jest-environment-node": "30.2.0", + "jest-environment-node": "30.3.0", "jest-regex-util": "30.0.1", - "jest-resolve": "30.2.0", - "jest-runner": "30.2.0", - "jest-util": "30.2.0", - "jest-validate": "30.2.0", - "micromatch": "^4.0.8", + "jest-resolve": "30.3.0", + "jest-runner": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", "parse-json": "^5.2.0", - "pretty-format": "30.2.0", + "pretty-format": "30.3.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -10363,7 +9591,7 @@ }, "node_modules/jest-config/node_modules/@isaacs/cliui": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, "license": "ISC", @@ -10381,7 +9609,7 @@ }, "node_modules/jest-config/node_modules/ansi-regex": { "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ansi-regex/-/ansi-regex-6.2.2.tgz", "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, "license": "MIT", @@ -10393,13 +9621,13 @@ } }, "node_modules/jest-config/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "version": "6.2.3", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" @@ -10407,7 +9635,7 @@ }, "node_modules/jest-config/node_modules/ci-info": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ci-info/-/ci-info-4.4.0.tgz", "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", "dev": true, "funding": [ @@ -10423,7 +9651,7 @@ }, "node_modules/jest-config/node_modules/glob": { "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/glob/-/glob-10.5.0.tgz", "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, @@ -10445,7 +9673,7 @@ }, "node_modules/jest-config/node_modules/jackspeak": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "license": "BlueOak-1.0.0", @@ -10461,14 +9689,14 @@ }, "node_modules/jest-config/node_modules/lru-cache": { "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, "license": "ISC" }, "node_modules/jest-config/node_modules/path-scurry": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "license": "BlueOak-1.0.0", @@ -10483,24 +9711,9 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/jest-config/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "30.0.5", - "ansi-styles": "^5.2.0", - "react-is": "^18.3.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, "node_modules/jest-config/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "license": "MIT", @@ -10518,7 +9731,7 @@ }, "node_modules/jest-config/node_modules/strip-ansi": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/strip-ansi/-/strip-ansi-7.2.0.tgz", "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", @@ -10534,7 +9747,7 @@ }, "node_modules/jest-config/node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "license": "MIT", @@ -10550,48 +9763,25 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/jest-config/node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/jest-diff": { "version": "30.3.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.3.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-diff/-/jest-diff-30.3.0.tgz", "integrity": "sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==", "dev": true, "license": "MIT", - "dependencies": { - "@jest/diff-sequences": "30.3.0", - "@jest/get-type": "30.1.0", - "chalk": "^4.1.2", - "pretty-format": "30.3.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-diff/node_modules/@jest/diff-sequences": { - "version": "30.3.0", - "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.3.0.tgz", - "integrity": "sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==", - "dev": true, - "license": "MIT", + "dependencies": { + "@jest/diff-sequences": "30.3.0", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.3.0" + }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-docblock": { "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.2.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-docblock/-/jest-docblock-30.2.0.tgz", "integrity": "sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==", "dev": true, "license": "MIT", @@ -10603,85 +9793,57 @@ } }, "node_modules/jest-each": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.2.0.tgz", - "integrity": "sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-each/-/jest-each-30.3.0.tgz", + "integrity": "sha512-V8eMndg/aZ+3LnCJgSm13IxS5XSBM22QSZc9BtPK8Dek6pm+hfUNfwBdvsB3d342bo1q7wnSkC38zjX259qZNA==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", - "@jest/types": "30.2.0", + "@jest/types": "30.3.0", "chalk": "^4.1.2", - "jest-util": "30.2.0", - "pretty-format": "30.2.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "30.0.5", - "ansi-styles": "^5.2.0", - "react-is": "^18.3.1" + "jest-util": "30.3.0", + "pretty-format": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-environment-node": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.2.0.tgz", - "integrity": "sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-environment-node/-/jest-environment-node-30.3.0.tgz", + "integrity": "sha512-4i6HItw/JSiJVsC5q0hnKIe/hbYfZLVG9YJ/0pU9Hz2n/9qZe3Rhn5s5CUZA5ORZlcdT/vmAXRMyONXJwPrmYQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.2.0", - "@jest/fake-timers": "30.2.0", - "@jest/types": "30.2.0", + "@jest/environment": "30.3.0", + "@jest/fake-timers": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", - "jest-mock": "30.2.0", - "jest-util": "30.2.0", - "jest-validate": "30.2.0" + "jest-mock": "30.3.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-haste-map": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.2.0.tgz", - "integrity": "sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-haste-map/-/jest-haste-map-30.3.0.tgz", + "integrity": "sha512-mMi2oqG4KRU0R9QEtscl87JzMXfUhbKaFqOxmjb2CKcbHcUGFrJCBWHmnTiUqi6JcnzoBlO4rWfpdl2k/RfLCA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.2.0", + "@jest/types": "30.3.0", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", - "jest-util": "30.2.0", - "jest-worker": "30.2.0", - "micromatch": "^4.0.8", + "jest-util": "30.3.0", + "jest-worker": "30.3.0", + "picomatch": "^4.0.3", "walker": "^1.0.8" }, "engines": { @@ -10691,122 +9853,63 @@ "fsevents": "^2.3.3" } }, - "node_modules/jest-leak-detector": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.2.0.tgz", - "integrity": "sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/get-type": "30.1.0", - "pretty-format": "30.2.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/jest-haste-map/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-leak-detector/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "30.0.5", - "ansi-styles": "^5.2.0", - "react-is": "^18.3.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/jest-matcher-utils": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz", - "integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==", + "node_modules/jest-leak-detector": { + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-leak-detector/-/jest-leak-detector-30.3.0.tgz", + "integrity": "sha512-cuKmUUGIjfXZAiGJ7TbEMx0bcqNdPPI6P1V+7aF+m/FUJqFDxkFR4JqkTu8ZOiU5AaX/x0hZ20KaaIPXQzbMGQ==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", - "chalk": "^4.1.2", - "jest-diff": "30.2.0", - "pretty-format": "30.2.0" + "pretty-format": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/jest-diff": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz", - "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==", + "node_modules/jest-matcher-utils": { + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-matcher-utils/-/jest-matcher-utils-30.3.0.tgz", + "integrity": "sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/diff-sequences": "30.0.1", "@jest/get-type": "30.1.0", "chalk": "^4.1.2", - "pretty-format": "30.2.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "30.0.5", - "ansi-styles": "^5.2.0", - "react-is": "^18.3.1" + "jest-diff": "30.3.0", + "pretty-format": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-message-util": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz", - "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-message-util/-/jest-message-util-30.3.0.tgz", + "integrity": "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@jest/types": "30.2.0", + "@jest/types": "30.3.0", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", - "micromatch": "^4.0.8", - "pretty-format": "30.2.0", + "picomatch": "^4.0.3", + "pretty-format": "30.3.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" }, @@ -10814,44 +9917,29 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "node_modules/jest-message-util/node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { - "node": ">=10" + "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "30.0.5", - "ansi-styles": "^5.2.0", - "react-is": "^18.3.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/jest-mock": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz", - "integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-mock/-/jest-mock-30.3.0.tgz", + "integrity": "sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.2.0", + "@jest/types": "30.3.0", "@types/node": "*", - "jest-util": "30.2.0" + "jest-util": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -10859,7 +9947,7 @@ }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "license": "MIT", @@ -10877,7 +9965,7 @@ }, "node_modules/jest-regex-util": { "version": "30.0.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-regex-util/-/jest-regex-util-30.0.1.tgz", "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", "dev": true, "license": "MIT", @@ -10886,18 +9974,18 @@ } }, "node_modules/jest-resolve": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.2.0.tgz", - "integrity": "sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-resolve/-/jest-resolve-30.3.0.tgz", + "integrity": "sha512-NRtTAHQlpd15F9rUR36jqwelbrDV/dY4vzNte3S2kxCKUJRYNd5/6nTSbYiak1VX5g8IoFF23Uj5TURkUW8O5g==", "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.1.2", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.2.0", + "jest-haste-map": "30.3.0", "jest-pnp-resolver": "^1.2.3", - "jest-util": "30.2.0", - "jest-validate": "30.2.0", + "jest-util": "30.3.0", + "jest-validate": "30.3.0", "slash": "^3.0.0", "unrs-resolver": "^1.7.11" }, @@ -10906,46 +9994,46 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.2.0.tgz", - "integrity": "sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-resolve-dependencies/-/jest-resolve-dependencies-30.3.0.tgz", + "integrity": "sha512-9ev8s3YN6Hsyz9LV75XUwkCVFlwPbaFn6Wp75qnI0wzAINYWY8Fb3+6y59Rwd3QaS3kKXffHXsZMziMavfz/nw==", "dev": true, "license": "MIT", "dependencies": { "jest-regex-util": "30.0.1", - "jest-snapshot": "30.2.0" + "jest-snapshot": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-runner": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.2.0.tgz", - "integrity": "sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-runner/-/jest-runner-30.3.0.tgz", + "integrity": "sha512-gDv6C9LGKWDPLia9TSzZwf4h3kMQCqyTpq+95PODnTRDO0g9os48XIYYkS6D236vjpBir2fF63YmJFtqkS5Duw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.2.0", - "@jest/environment": "30.2.0", - "@jest/test-result": "30.2.0", - "@jest/transform": "30.2.0", - "@jest/types": "30.2.0", + "@jest/console": "30.3.0", + "@jest/environment": "30.3.0", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", "chalk": "^4.1.2", "emittery": "^0.13.1", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", "jest-docblock": "30.2.0", - "jest-environment-node": "30.2.0", - "jest-haste-map": "30.2.0", - "jest-leak-detector": "30.2.0", - "jest-message-util": "30.2.0", - "jest-resolve": "30.2.0", - "jest-runtime": "30.2.0", - "jest-util": "30.2.0", - "jest-watcher": "30.2.0", - "jest-worker": "30.2.0", + "jest-environment-node": "30.3.0", + "jest-haste-map": "30.3.0", + "jest-leak-detector": "30.3.0", + "jest-message-util": "30.3.0", + "jest-resolve": "30.3.0", + "jest-runtime": "30.3.0", + "jest-util": "30.3.0", + "jest-watcher": "30.3.0", + "jest-worker": "30.3.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -10955,7 +10043,7 @@ }, "node_modules/jest-runner/node_modules/source-map-support": { "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/source-map-support/-/source-map-support-0.5.13.tgz", "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "license": "MIT", @@ -10965,32 +10053,32 @@ } }, "node_modules/jest-runtime": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.2.0.tgz", - "integrity": "sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-runtime/-/jest-runtime-30.3.0.tgz", + "integrity": "sha512-CgC+hIBJbuh78HEffkhNKcbXAytQViplcl8xupqeIWyKQF50kCQA8J7GeJCkjisC6hpnC9Muf8jV5RdtdFbGng==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.2.0", - "@jest/fake-timers": "30.2.0", - "@jest/globals": "30.2.0", + "@jest/environment": "30.3.0", + "@jest/fake-timers": "30.3.0", + "@jest/globals": "30.3.0", "@jest/source-map": "30.0.1", - "@jest/test-result": "30.2.0", - "@jest/transform": "30.2.0", - "@jest/types": "30.2.0", + "@jest/test-result": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", "chalk": "^4.1.2", "cjs-module-lexer": "^2.1.0", "collect-v8-coverage": "^1.0.2", - "glob": "^10.3.10", + "glob": "^10.5.0", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.2.0", - "jest-message-util": "30.2.0", - "jest-mock": "30.2.0", + "jest-haste-map": "30.3.0", + "jest-message-util": "30.3.0", + "jest-mock": "30.3.0", "jest-regex-util": "30.0.1", - "jest-resolve": "30.2.0", - "jest-snapshot": "30.2.0", - "jest-util": "30.2.0", + "jest-resolve": "30.3.0", + "jest-snapshot": "30.3.0", + "jest-util": "30.3.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -11000,7 +10088,7 @@ }, "node_modules/jest-runtime/node_modules/@isaacs/cliui": { "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, "license": "ISC", @@ -11018,7 +10106,7 @@ }, "node_modules/jest-runtime/node_modules/ansi-regex": { "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ansi-regex/-/ansi-regex-6.2.2.tgz", "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, "license": "MIT", @@ -11031,7 +10119,7 @@ }, "node_modules/jest-runtime/node_modules/ansi-styles": { "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ansi-styles/-/ansi-styles-6.2.3.tgz", "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", @@ -11044,7 +10132,7 @@ }, "node_modules/jest-runtime/node_modules/glob": { "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/glob/-/glob-10.5.0.tgz", "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, @@ -11066,7 +10154,7 @@ }, "node_modules/jest-runtime/node_modules/jackspeak": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "license": "BlueOak-1.0.0", @@ -11082,14 +10170,14 @@ }, "node_modules/jest-runtime/node_modules/lru-cache": { "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, "license": "ISC" }, "node_modules/jest-runtime/node_modules/path-scurry": { "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "license": "BlueOak-1.0.0", @@ -11106,7 +10194,7 @@ }, "node_modules/jest-runtime/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "license": "MIT", @@ -11124,7 +10212,7 @@ }, "node_modules/jest-runtime/node_modules/strip-ansi": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/strip-ansi/-/strip-ansi-7.2.0.tgz", "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", @@ -11140,7 +10228,7 @@ }, "node_modules/jest-runtime/node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "license": "MIT", @@ -11157,9 +10245,9 @@ } }, "node_modules/jest-snapshot": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.2.0.tgz", - "integrity": "sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-snapshot/-/jest-snapshot-30.3.0.tgz", + "integrity": "sha512-f14c7atpb4O2DeNhwcvS810Y63wEn8O1HqK/luJ4F6M4NjvxmAKQwBUWjbExUtMxWJQ0wVgmCKymeJK6NZMnfQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11168,20 +10256,20 @@ "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/types": "^7.27.3", - "@jest/expect-utils": "30.2.0", + "@jest/expect-utils": "30.3.0", "@jest/get-type": "30.1.0", - "@jest/snapshot-utils": "30.2.0", - "@jest/transform": "30.2.0", - "@jest/types": "30.2.0", + "@jest/snapshot-utils": "30.3.0", + "@jest/transform": "30.3.0", + "@jest/types": "30.3.0", "babel-preset-current-node-syntax": "^1.2.0", "chalk": "^4.1.2", - "expect": "30.2.0", + "expect": "30.3.0", "graceful-fs": "^4.2.11", - "jest-diff": "30.2.0", - "jest-matcher-utils": "30.2.0", - "jest-message-util": "30.2.0", - "jest-util": "30.2.0", - "pretty-format": "30.2.0", + "jest-diff": "30.3.0", + "jest-matcher-utils": "30.3.0", + "jest-message-util": "30.3.0", + "jest-util": "30.3.0", + "pretty-format": "30.3.0", "semver": "^7.7.2", "synckit": "^0.11.8" }, @@ -11189,63 +10277,19 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/jest-diff": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz", - "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/diff-sequences": "30.0.1", - "@jest/get-type": "30.1.0", - "chalk": "^4.1.2", - "pretty-format": "30.2.0" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "30.0.5", - "ansi-styles": "^5.2.0", - "react-is": "^18.3.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, "node_modules/jest-util": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", - "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-util/-/jest-util-30.3.0.tgz", + "integrity": "sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.2.0", + "@jest/types": "30.3.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", - "picomatch": "^4.0.2" + "picomatch": "^4.0.3" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -11253,7 +10297,7 @@ }, "node_modules/jest-util/node_modules/ci-info": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ci-info/-/ci-info-4.4.0.tgz", "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", "dev": true, "funding": [ @@ -11269,7 +10313,7 @@ }, "node_modules/jest-util/node_modules/picomatch": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/picomatch/-/picomatch-4.0.4.tgz", "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", @@ -11281,39 +10325,26 @@ } }, "node_modules/jest-validate": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.2.0.tgz", - "integrity": "sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-validate/-/jest-validate-30.3.0.tgz", + "integrity": "sha512-I/xzC8h5G+SHCb2P2gWkJYrNiTbeL47KvKeW5EzplkyxzBRBw1ssSHlI/jXec0ukH2q7x2zAWQm7015iusg62Q==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", - "@jest/types": "30.2.0", + "@jest/types": "30.3.0", "camelcase": "^6.3.0", "chalk": "^4.1.2", "leven": "^3.1.0", - "pretty-format": "30.2.0" + "pretty-format": "30.3.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/jest-validate/node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "license": "MIT", @@ -11324,35 +10355,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-validate/node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "30.0.5", - "ansi-styles": "^5.2.0", - "react-is": "^18.3.1" - }, - "engines": { - "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" - } - }, "node_modules/jest-watcher": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.2.0.tgz", - "integrity": "sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-watcher/-/jest-watcher-30.3.0.tgz", + "integrity": "sha512-PJ1d9ThtTR8aMiBWUdcownq9mDdLXsQzJayTk4kmaBRHKvwNQn+ANveuhEBUyNI2hR1TVhvQ8D5kHubbzBHR/w==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "30.2.0", - "@jest/types": "30.2.0", + "@jest/test-result": "30.3.0", + "@jest/types": "30.3.0", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "emittery": "^0.13.1", - "jest-util": "30.2.0", + "jest-util": "30.3.0", "string-length": "^4.0.2" }, "engines": { @@ -11360,15 +10376,15 @@ } }, "node_modules/jest-worker": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.2.0.tgz", - "integrity": "sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==", + "version": "30.3.0", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-worker/-/jest-worker-30.3.0.tgz", + "integrity": "sha512-DrCKkaQwHexjRUFTmPzs7sHQe0TSj9nvDALKGdwmK5mW9v7j90BudWirKAJHt3QQ9Dhrg1F7DogPzhChppkJpQ==", "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", - "jest-util": "30.2.0", + "jest-util": "30.3.0", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" }, @@ -11378,7 +10394,7 @@ }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", @@ -11394,8 +10410,6 @@ }, "node_modules/jju": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", "dev": true, "license": "MIT" }, @@ -11406,8 +10420,6 @@ }, "node_modules/js-yaml": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "license": "MIT", "dependencies": { @@ -11463,8 +10475,6 @@ }, "node_modules/json-stringify-nice": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", - "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==", "dev": true, "license": "ISC", "funding": { @@ -11473,8 +10483,6 @@ }, "node_modules/json-stringify-safe": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true, "license": "ISC" }, @@ -11491,15 +10499,11 @@ }, "node_modules/jsonc-parser": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", - "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", "dev": true, "license": "MIT" }, "node_modules/jsonfile": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", "dev": true, "license": "MIT", "dependencies": { @@ -11511,8 +10515,6 @@ }, "node_modules/jsonparse": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true, "engines": [ "node >= 0.2.0" @@ -11521,8 +10523,6 @@ }, "node_modules/JSONStream": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, "license": "(MIT OR Apache-2.0)", "dependencies": { @@ -11553,15 +10553,11 @@ }, "node_modules/just-diff": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-6.0.2.tgz", - "integrity": "sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==", "dev": true, "license": "MIT" }, "node_modules/just-diff-apply": { "version": "5.5.0", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz", - "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==", "dev": true, "license": "MIT" }, @@ -11669,9 +10665,7 @@ } }, "node_modules/karma/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "version": "3.1.2", "dev": true, "license": "ISC", "dependencies": { @@ -11727,12 +10721,11 @@ } }, "node_modules/lerna": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/lerna/-/lerna-9.0.7.tgz", - "integrity": "sha512-PMjbSWYfwL1yZ5c1D2PZuFyzmtYhLdn0f76uG8L25g6eYy34j+2jPb4Q6USx1UJvxVtxkdVEeAAWS/WxgJ8VZA==", + "version": "9.0.4", "dev": true, "license": "MIT", "dependencies": { + "@lerna/create": "9.0.4", "@npmcli/arborist": "9.1.6", "@npmcli/package-json": "7.0.2", "@npmcli/run-script": "10.0.3", @@ -11742,7 +10735,6 @@ "aproba": "2.0.0", "byte-size": "8.1.1", "chalk": "4.1.0", - "ci-info": "4.3.1", "cmd-shim": "6.0.3", "color-support": "1.1.3", "columnify": "1.6.0", @@ -11755,6 +10747,7 @@ "envinfo": "7.13.0", "execa": "5.0.0", "fs-extra": "^11.2.0", + "get-port": "5.1.1", "get-stream": "6.0.0", "git-url-parse": "14.0.0", "glob-parent": "6.0.2", @@ -11764,13 +10757,16 @@ "init-package-json": "8.2.2", "inquirer": "12.9.6", "is-ci": "3.0.1", + "is-stream": "2.0.0", "jest-diff": ">=30.0.0 < 31", "js-yaml": "4.1.1", "libnpmaccess": "10.0.3", "libnpmpublish": "11.1.2", "load-json-file": "6.2.0", + "make-dir": "4.0.0", "make-fetch-happen": "15.0.2", - "minimatch": "3.1.4", + "minimatch": "3.0.5", + "multimatch": "5.0.0", "npm-package-arg": "13.0.1", "npm-packlist": "10.0.3", "npm-registry-fetch": "19.1.0", @@ -11782,21 +10778,28 @@ "p-reduce": "2.1.0", "p-waterfall": "2.1.1", "pacote": "21.0.1", + "pify": "5.0.0", "read-cmd-shim": "4.0.0", + "resolve-from": "5.0.0", + "rimraf": "^6.1.2", "semver": "7.7.2", + "set-blocking": "^2.0.0", "signal-exit": "3.0.7", "slash": "3.0.0", "ssri": "12.0.0", "string-width": "^4.2.3", - "tar": "7.5.11", + "tar": "7.5.7", + "temp-dir": "1.0.0", "through": "2.3.8", "tinyglobby": "0.2.12", "typescript": ">=3 < 6", "upath": "2.0.1", + "uuid": "^11.1.0", "validate-npm-package-license": "3.0.4", "validate-npm-package-name": "6.0.2", "wide-align": "1.1.5", "write-file-atomic": "5.0.1", + "write-pkg": "4.0.0", "yargs": "17.7.2", "yargs-parser": "21.1.1" }, @@ -11809,8 +10812,6 @@ }, "node_modules/lerna/node_modules/brace-expansion": { "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -11820,8 +10821,6 @@ }, "node_modules/lerna/node_modules/chalk": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "license": "MIT", "dependencies": { @@ -11837,8 +10836,6 @@ }, "node_modules/lerna/node_modules/cliui": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "license": "ISC", "dependencies": { @@ -11852,8 +10849,6 @@ }, "node_modules/lerna/node_modules/dedent": { "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -11867,8 +10862,6 @@ }, "node_modules/lerna/node_modules/envinfo": { "version": "7.13.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", - "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", "dev": true, "license": "MIT", "bin": { @@ -11880,8 +10873,6 @@ }, "node_modules/lerna/node_modules/execa": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", - "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11902,41 +10893,87 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/lerna/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "node_modules/lerna/node_modules/fdir": { + "version": "6.5.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/lerna/node_modules/get-stream": { + "version": "6.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lerna/node_modules/glob": { + "version": "13.0.5", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "minimatch": "^10.2.1", + "minipass": "^7.1.2", + "path-scurry": "^2.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/lerna/node_modules/glob/node_modules/balanced-match": { + "version": "4.0.2", + "dev": true, + "license": "MIT", + "dependencies": { + "jackspeak": "^4.2.3" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/lerna/node_modules/glob/node_modules/brace-expansion": { + "version": "5.0.2", "dev": true, "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" + "dependencies": { + "balanced-match": "^4.0.2" }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } + "engines": { + "node": "20 || >=22" } }, - "node_modules/lerna/node_modules/get-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", - "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", + "node_modules/lerna/node_modules/glob/node_modules/minimatch": { + "version": "10.2.1", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, "engines": { - "node": ">=10" + "node": "20 || >=22" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/lerna/node_modules/import-local": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "license": "MIT", "dependencies": { @@ -11953,10 +10990,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lerna/node_modules/is-stream": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/lerna/node_modules/minimatch": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.4.tgz", - "integrity": "sha512-twmL+S8+7yIsE9wsqgzU3E8/LumN3M3QELrBZ20OdmQ9jB2JvW5oZtBEmft84k/Gs5CG9mqtWc6Y9vW+JEzGxw==", + "version": "3.0.5", "dev": true, "license": "ISC", "dependencies": { @@ -11967,9 +11010,7 @@ } }, "node_modules/lerna/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "version": "4.0.3", "dev": true, "license": "MIT", "engines": { @@ -11979,10 +11020,34 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/lerna/node_modules/resolve-from": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/lerna/node_modules/rimraf": { + "version": "6.1.3", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "glob": "^13.0.3", + "package-json-from-dist": "^1.0.1" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/lerna/node_modules/semver": { "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -11994,8 +11059,6 @@ }, "node_modules/lerna/node_modules/tinyglobby": { "version": "0.2.12", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", - "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", "dev": true, "license": "MIT", "dependencies": { @@ -12011,8 +11074,6 @@ }, "node_modules/lerna/node_modules/yargs": { "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "license": "MIT", "dependencies": { @@ -12030,8 +11091,6 @@ }, "node_modules/lerna/node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "license": "ISC", "engines": { @@ -12040,7 +11099,7 @@ }, "node_modules/leven": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, "license": "MIT", @@ -12062,8 +11121,6 @@ }, "node_modules/libnpmaccess": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-10.0.3.tgz", - "integrity": "sha512-JPHTfWJxIK+NVPdNMNGnkz4XGX56iijPbe0qFWbdt68HL+kIvSzh+euBL8npLZvl2fpaxo+1eZSdoG15f5YdIQ==", "dev": true, "license": "ISC", "dependencies": { @@ -12076,8 +11133,6 @@ }, "node_modules/libnpmpublish": { "version": "11.1.2", - "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-11.1.2.tgz", - "integrity": "sha512-tNcU3cLH7toloAzhOOrBDhjzgbxpyuYvkf+BPPnnJCdc5EIcdJ8JcT+SglvCQKKyZ6m9dVXtCVlJcA6csxKdEA==", "dev": true, "license": "ISC", "dependencies": { @@ -12094,6 +11149,20 @@ "node": "^20.17.0 || >=22.9.0" } }, + "node_modules/libnpmpublish/node_modules/ci-info": { + "version": "4.4.0", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/lines-and-columns": { "version": "1.2.4", "dev": true, @@ -12109,8 +11178,6 @@ }, "node_modules/load-json-file": { "version": "6.2.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", - "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12125,8 +11192,6 @@ }, "node_modules/load-json-file/node_modules/type-fest": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -12135,8 +11200,6 @@ }, "node_modules/loader-runner": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", - "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", "dev": true, "license": "MIT", "engines": { @@ -12163,15 +11226,11 @@ }, "node_modules/lodash": { "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", "dev": true, "license": "MIT" }, "node_modules/lodash.ismatch": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", - "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", "dev": true, "license": "MIT" }, @@ -12187,8 +11246,6 @@ }, "node_modules/log-symbols": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "license": "MIT", "dependencies": { @@ -12263,8 +11320,6 @@ }, "node_modules/make-fetch-happen": { "version": "15.0.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.2.tgz", - "integrity": "sha512-sI1NY4lWlXBAfjmCtVWIIpBypbBdhHtcjnwnv+gtCnsaOffyFil3aidszGC8hgzJe+fT1qix05sWxmD/Bmf/oQ==", "dev": true, "license": "ISC", "dependencies": { @@ -12294,8 +11349,6 @@ }, "node_modules/map-obj": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, "license": "MIT", "engines": { @@ -12351,8 +11404,6 @@ }, "node_modules/meow": { "version": "8.1.2", - "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", - "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "dev": true, "license": "MIT", "dependencies": { @@ -12377,8 +11428,6 @@ }, "node_modules/meow/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", "dependencies": { @@ -12391,15 +11440,11 @@ }, "node_modules/meow/node_modules/hosted-git-info": { "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true, "license": "ISC" }, "node_modules/meow/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", "dependencies": { @@ -12411,8 +11456,6 @@ }, "node_modules/meow/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", "dependencies": { @@ -12427,8 +11470,6 @@ }, "node_modules/meow/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", "dependencies": { @@ -12440,8 +11481,6 @@ }, "node_modules/meow/node_modules/read-pkg": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "license": "MIT", "dependencies": { @@ -12456,8 +11495,6 @@ }, "node_modules/meow/node_modules/read-pkg-up": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "license": "MIT", "dependencies": { @@ -12474,8 +11511,6 @@ }, "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -12484,8 +11519,6 @@ }, "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -12497,8 +11530,6 @@ }, "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -12507,8 +11538,6 @@ }, "node_modules/meow/node_modules/semver": { "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "license": "ISC", "bin": { @@ -12517,8 +11546,6 @@ }, "node_modules/meow/node_modules/type-fest": { "version": "0.18.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", - "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -12535,8 +11562,6 @@ }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "license": "MIT", "engines": { @@ -12595,8 +11620,6 @@ }, "node_modules/min-indent": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", - "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, "license": "MIT", "engines": { @@ -12604,13 +11627,11 @@ } }, "node_modules/minimatch": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", - "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "version": "9.0.5", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.2" + "brace-expansion": "^2.0.1" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -12629,8 +11650,6 @@ }, "node_modules/minimist-options": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", - "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, "license": "MIT", "dependencies": { @@ -12643,19 +11662,15 @@ } }, "node_modules/minipass": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", - "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "version": "7.1.2", "dev": true, - "license": "BlueOak-1.0.0", + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/minipass-collect": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", "dev": true, "license": "ISC", "dependencies": { @@ -12667,8 +11682,6 @@ }, "node_modules/minipass-fetch": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.1.tgz", - "integrity": "sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12685,8 +11698,6 @@ }, "node_modules/minipass-flush": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, "license": "ISC", "dependencies": { @@ -12698,8 +11709,6 @@ }, "node_modules/minipass-flush/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "license": "ISC", "dependencies": { @@ -12711,15 +11720,11 @@ }, "node_modules/minipass-flush/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" }, "node_modules/minipass-pipeline": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, "license": "ISC", "dependencies": { @@ -12731,8 +11736,6 @@ }, "node_modules/minipass-pipeline/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "license": "ISC", "dependencies": { @@ -12744,15 +11747,11 @@ }, "node_modules/minipass-pipeline/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" }, "node_modules/minipass-sized": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, "license": "ISC", "dependencies": { @@ -12764,8 +11763,6 @@ }, "node_modules/minipass-sized/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "license": "ISC", "dependencies": { @@ -12777,15 +11774,11 @@ }, "node_modules/minipass-sized/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" }, "node_modules/minizlib": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", - "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", "dev": true, "license": "MIT", "dependencies": { @@ -12808,8 +11801,6 @@ }, "node_modules/modify-values": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", - "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", "dev": true, "license": "MIT", "engines": { @@ -12829,10 +11820,54 @@ "dev": true, "license": "MIT" }, + "node_modules/multimatch": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/multimatch/node_modules/arrify": { + "version": "2.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/multimatch/node_modules/brace-expansion": { + "version": "1.1.12", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/multimatch/node_modules/minimatch": { + "version": "3.1.2", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/mute-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", - "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", "dev": true, "license": "ISC", "engines": { @@ -12860,8 +11895,6 @@ }, "node_modules/negotiator": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", - "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", "dev": true, "license": "MIT", "engines": { @@ -12880,8 +11913,6 @@ }, "node_modules/node-gyp": { "version": "12.2.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-12.2.0.tgz", - "integrity": "sha512-q23WdzrQv48KozXlr0U1v9dwO/k59NHeSzn6loGcasyf0UnSrtzs8kRxM+mfwJSf0DkX0s43hcqgnSO4/VNthQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12905,8 +11936,6 @@ }, "node_modules/node-gyp/node_modules/abbrev": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-4.0.0.tgz", - "integrity": "sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==", "dev": true, "license": "ISC", "engines": { @@ -12915,8 +11944,6 @@ }, "node_modules/node-gyp/node_modules/isexe": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", - "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -12925,8 +11952,6 @@ }, "node_modules/node-gyp/node_modules/nopt": { "version": "9.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-9.0.0.tgz", - "integrity": "sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==", "dev": true, "license": "ISC", "dependencies": { @@ -12941,8 +11966,6 @@ }, "node_modules/node-gyp/node_modules/proc-log": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", "engines": { @@ -12951,8 +11974,6 @@ }, "node_modules/node-gyp/node_modules/which": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", - "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "dev": true, "license": "ISC", "dependencies": { @@ -12970,10 +11991,13 @@ "dev": true, "license": "MIT" }, + "node_modules/node-machine-id": { + "version": "1.1.12", + "dev": true, + "license": "MIT" + }, "node_modules/node-releases": { "version": "2.0.27", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", - "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", "dev": true, "license": "MIT" }, @@ -13009,8 +12033,6 @@ }, "node_modules/nopt": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz", - "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==", "dev": true, "license": "ISC", "dependencies": { @@ -13025,8 +12047,6 @@ }, "node_modules/normalize-package-data": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", - "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -13041,8 +12061,6 @@ }, "node_modules/normalize-package-data/node_modules/hosted-git-info": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, "license": "ISC", "dependencies": { @@ -13054,8 +12072,6 @@ }, "node_modules/normalize-package-data/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "license": "ISC", "dependencies": { @@ -13067,8 +12083,6 @@ }, "node_modules/normalize-package-data/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" }, @@ -13082,8 +12096,6 @@ }, "node_modules/npm-bundled": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-4.0.0.tgz", - "integrity": "sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==", "dev": true, "license": "ISC", "dependencies": { @@ -13095,8 +12107,6 @@ }, "node_modules/npm-install-checks": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-7.1.2.tgz", - "integrity": "sha512-z9HJBCYw9Zr8BqXcllKIs5nI+QggAImbBdHphOzVYrz2CB4iQ6FzWyKmlqDZua+51nAu7FcemlbTc9VgQN5XDQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -13108,8 +12118,6 @@ }, "node_modules/npm-normalize-package-bin": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", - "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", "dev": true, "license": "ISC", "engines": { @@ -13118,8 +12126,6 @@ }, "node_modules/npm-package-arg": { "version": "13.0.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-13.0.1.tgz", - "integrity": "sha512-6zqls5xFvJbgFjB1B2U6yITtyGBjDBORB7suI4zA4T/sZ1OmkMFlaQSNB/4K0LtXNA1t4OprAFxPisadK5O2ag==", "dev": true, "license": "ISC", "dependencies": { @@ -13134,8 +12140,6 @@ }, "node_modules/npm-packlist": { "version": "10.0.3", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-10.0.3.tgz", - "integrity": "sha512-zPukTwJMOu5X5uvm0fztwS5Zxyvmk38H/LfidkOMt3gbZVCyro2cD/ETzwzVPcWZA3JOyPznfUN/nkyFiyUbxg==", "dev": true, "license": "ISC", "dependencies": { @@ -13148,8 +12152,6 @@ }, "node_modules/npm-packlist/node_modules/proc-log": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", - "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", "engines": { @@ -13158,8 +12160,6 @@ }, "node_modules/npm-pick-manifest": { "version": "11.0.3", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-11.0.3.tgz", - "integrity": "sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==", "dev": true, "license": "ISC", "dependencies": { @@ -13174,8 +12174,6 @@ }, "node_modules/npm-pick-manifest/node_modules/npm-install-checks": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-8.0.0.tgz", - "integrity": "sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -13187,8 +12185,6 @@ }, "node_modules/npm-pick-manifest/node_modules/npm-normalize-package-bin": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-5.0.0.tgz", - "integrity": "sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==", "dev": true, "license": "ISC", "engines": { @@ -13197,8 +12193,6 @@ }, "node_modules/npm-registry-fetch": { "version": "19.1.0", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-19.1.0.tgz", - "integrity": "sha512-xyZLfs7TxPu/WKjHUs0jZOPinzBAI32kEUel6za0vH+JUTnFZ5zbHI1ZoGZRDm6oMjADtrli6FxtMlk/5ABPNw==", "dev": true, "license": "ISC", "dependencies": { @@ -13317,9 +12311,7 @@ } }, "node_modules/npm-run-all/node_modules/minimatch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", - "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "version": "3.1.2", "dev": true, "license": "ISC", "dependencies": { @@ -13398,19 +12390,16 @@ } }, "node_modules/nx": { - "version": "22.6.4", - "resolved": "https://registry.npmjs.org/nx/-/nx-22.6.4.tgz", - "integrity": "sha512-WEaCnLKeO9RhQAOBMfXgYO/Lx5wL4ARCtRGiYCjJtAJIZ5kcVn4uPKL2Xz1xekpF7ef/+YNrUQSrblx47Ms9Rg==", + "version": "22.5.1", "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { - "@ltd/j-toml": "^1.38.0", "@napi-rs/wasm-runtime": "0.2.4", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "3.0.2", "@zkochan/js-yaml": "0.0.7", - "axios": "1.12.0", + "axios": "^1.12.0", "cli-cursor": "3.1.0", "cli-spinners": "2.6.1", "cliui": "^8.0.1", @@ -13425,7 +12414,8 @@ "jest-diff": "^30.0.2", "jsonc-parser": "3.2.0", "lines-and-columns": "2.0.3", - "minimatch": "10.2.4", + "minimatch": "10.1.1", + "node-machine-id": "1.1.12", "npm-run-path": "^4.0.1", "open": "^8.4.0", "ora": "5.3.0", @@ -13447,20 +12437,20 @@ "nx-cloud": "bin/nx-cloud.js" }, "optionalDependencies": { - "@nx/nx-darwin-arm64": "22.6.4", - "@nx/nx-darwin-x64": "22.6.4", - "@nx/nx-freebsd-x64": "22.6.4", - "@nx/nx-linux-arm-gnueabihf": "22.6.4", - "@nx/nx-linux-arm64-gnu": "22.6.4", - "@nx/nx-linux-arm64-musl": "22.6.4", - "@nx/nx-linux-x64-gnu": "22.6.4", - "@nx/nx-linux-x64-musl": "22.6.4", - "@nx/nx-win32-arm64-msvc": "22.6.4", - "@nx/nx-win32-x64-msvc": "22.6.4" + "@nx/nx-darwin-arm64": "22.5.1", + "@nx/nx-darwin-x64": "22.5.1", + "@nx/nx-freebsd-x64": "22.5.1", + "@nx/nx-linux-arm-gnueabihf": "22.5.1", + "@nx/nx-linux-arm64-gnu": "22.5.1", + "@nx/nx-linux-arm64-musl": "22.5.1", + "@nx/nx-linux-x64-gnu": "22.5.1", + "@nx/nx-linux-x64-musl": "22.5.1", + "@nx/nx-win32-arm64-msvc": "22.5.1", + "@nx/nx-win32-x64-msvc": "22.5.1" }, "peerDependencies": { - "@swc-node/register": "^1.11.1", - "@swc/core": "^1.15.8" + "@swc-node/register": "1.11.1", + "@swc/core": "1.15.8" }, "peerDependenciesMeta": { "@swc-node/register": { @@ -13473,8 +12463,6 @@ }, "node_modules/nx/node_modules/@napi-rs/wasm-runtime": { "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz", - "integrity": "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13485,41 +12473,14 @@ }, "node_modules/nx/node_modules/@tybys/wasm-util": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", - "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", "dev": true, "license": "MIT", "dependencies": { "tslib": "^2.4.0" } }, - "node_modules/nx/node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, - "node_modules/nx/node_modules/brace-expansion": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", - "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "18 || 20 || >=22" - } - }, "node_modules/nx/node_modules/cliui": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "license": "ISC", "dependencies": { @@ -13533,8 +12494,6 @@ }, "node_modules/nx/node_modules/ignore": { "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, "license": "MIT", "engines": { @@ -13543,8 +12502,6 @@ }, "node_modules/nx/node_modules/lines-and-columns": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", - "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", "dev": true, "license": "MIT", "engines": { @@ -13552,16 +12509,14 @@ } }, "node_modules/nx/node_modules/minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "version": "10.1.1", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.2" + "@isaacs/brace-expansion": "^5.0.0" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -13569,8 +12524,6 @@ }, "node_modules/nx/node_modules/strip-bom": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "license": "MIT", "engines": { @@ -13579,8 +12532,6 @@ }, "node_modules/nx/node_modules/tsconfig-paths": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", "dev": true, "license": "MIT", "dependencies": { @@ -13594,8 +12545,6 @@ }, "node_modules/nx/node_modules/yargs": { "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "license": "MIT", "dependencies": { @@ -13613,8 +12562,6 @@ }, "node_modules/nx/node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "license": "ISC", "engines": { @@ -13764,8 +12711,6 @@ }, "node_modules/open": { "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13806,8 +12751,6 @@ }, "node_modules/ora": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", - "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", "dev": true, "license": "MIT", "dependencies": { @@ -13845,8 +12788,6 @@ }, "node_modules/p-finally": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true, "license": "MIT", "engines": { @@ -13883,8 +12824,6 @@ }, "node_modules/p-map": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13899,8 +12838,6 @@ }, "node_modules/p-map-series": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz", - "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==", "dev": true, "license": "MIT", "engines": { @@ -13909,8 +12846,6 @@ }, "node_modules/p-pipe": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", - "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", "dev": true, "license": "MIT", "engines": { @@ -13922,8 +12857,6 @@ }, "node_modules/p-queue": { "version": "6.6.2", - "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", - "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13939,8 +12872,6 @@ }, "node_modules/p-reduce": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", - "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", "dev": true, "license": "MIT", "engines": { @@ -13949,8 +12880,6 @@ }, "node_modules/p-timeout": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", - "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "dev": true, "license": "MIT", "dependencies": { @@ -13970,8 +12899,6 @@ }, "node_modules/p-waterfall": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz", - "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==", "dev": true, "license": "MIT", "dependencies": { @@ -13986,15 +12913,11 @@ }, "node_modules/package-json-from-dist": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "dev": true, "license": "BlueOak-1.0.0" }, "node_modules/pacote": { "version": "21.0.1", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.0.1.tgz", - "integrity": "sha512-LHGIUQUrcDIJUej53KJz1BPvUuHrItrR2yrnN0Kl9657cJ0ZT6QJHk9wWPBnQZhYT5KLyZWrk9jaYc2aKDu4yw==", "dev": true, "license": "ISC", "dependencies": { @@ -14025,8 +12948,6 @@ }, "node_modules/pacote/node_modules/@npmcli/git": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-6.0.3.tgz", - "integrity": "sha512-GUYESQlxZRAdhs3UhbB6pVRNUELQOHXwK9ruDkwmCv2aZ5y0SApQzUJCg02p3A7Ue2J5hxvlk1YI53c00NmRyQ==", "dev": true, "license": "ISC", "dependencies": { @@ -14045,8 +12966,6 @@ }, "node_modules/pacote/node_modules/@npmcli/promise-spawn": { "version": "8.0.3", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-8.0.3.tgz", - "integrity": "sha512-Yb00SWaL4F8w+K8YGhQ55+xE4RUNdMHV43WZGsiTM92gS+lC0mGsn7I4hLug7pbao035S6bj3Y3w0cUNGLfmkg==", "dev": true, "license": "ISC", "dependencies": { @@ -14058,8 +12977,6 @@ }, "node_modules/pacote/node_modules/hosted-git-info": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.1.0.tgz", - "integrity": "sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==", "dev": true, "license": "ISC", "dependencies": { @@ -14071,8 +12988,6 @@ }, "node_modules/pacote/node_modules/ini": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ini/-/ini-5.0.0.tgz", - "integrity": "sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==", "dev": true, "license": "ISC", "engines": { @@ -14081,8 +12996,6 @@ }, "node_modules/pacote/node_modules/isexe": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz", - "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -14091,15 +13004,11 @@ }, "node_modules/pacote/node_modules/lru-cache": { "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, "license": "ISC" }, "node_modules/pacote/node_modules/npm-pick-manifest": { "version": "10.0.0", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-10.0.0.tgz", - "integrity": "sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==", "dev": true, "license": "ISC", "dependencies": { @@ -14114,8 +13023,6 @@ }, "node_modules/pacote/node_modules/npm-pick-manifest/node_modules/npm-package-arg": { "version": "12.0.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.2.tgz", - "integrity": "sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==", "dev": true, "license": "ISC", "dependencies": { @@ -14130,8 +13037,6 @@ }, "node_modules/pacote/node_modules/which": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", - "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", "dev": true, "license": "ISC", "dependencies": { @@ -14157,8 +13062,6 @@ }, "node_modules/parse-conflict-json": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-4.0.0.tgz", - "integrity": "sha512-37CN2VtcuvKgHUs8+0b1uJeEsbGn61GRHz469C94P5xiOoqpDYJYwjg4RY9Vmz39WyZAVkR5++nbJwLMIgOCnQ==", "dev": true, "license": "ISC", "dependencies": { @@ -14172,8 +13075,6 @@ }, "node_modules/parse-conflict-json/node_modules/json-parse-even-better-errors": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", - "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", "dev": true, "license": "MIT", "engines": { @@ -14207,8 +13108,6 @@ }, "node_modules/parse-path": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.1.0.tgz", - "integrity": "sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==", "dev": true, "license": "MIT", "dependencies": { @@ -14222,8 +13121,6 @@ }, "node_modules/parse-url": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz", - "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==", "dev": true, "license": "MIT", "dependencies": { @@ -14268,9 +13165,7 @@ "license": "MIT" }, "node_modules/path-scurry": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", - "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", + "version": "2.0.1", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -14278,7 +13173,7 @@ "minipass": "^7.1.2" }, "engines": { - "node": "18 || 20 || >=22" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -14286,8 +13181,6 @@ }, "node_modules/path-scurry/node_modules/lru-cache": { "version": "11.2.6", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", - "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -14300,9 +13193,7 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", - "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "version": "2.3.1", "dev": true, "license": "MIT", "engines": { @@ -14324,13 +13215,14 @@ } }, "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "version": "5.0.0", "dev": true, "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/pirates": { @@ -14343,8 +13235,6 @@ }, "node_modules/pkg-dir": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "license": "MIT", "dependencies": { @@ -14356,8 +13246,6 @@ }, "node_modules/pkg-dir/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", "dependencies": { @@ -14370,8 +13258,6 @@ }, "node_modules/pkg-dir/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", "dependencies": { @@ -14383,8 +13269,6 @@ }, "node_modules/pkg-dir/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", "dependencies": { @@ -14399,8 +13283,6 @@ }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", "dependencies": { @@ -14420,8 +13302,6 @@ }, "node_modules/postcss-selector-parser": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "dev": true, "license": "MIT", "dependencies": { @@ -14441,9 +13321,7 @@ } }, "node_modules/prettier": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", - "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", + "version": "3.6.2", "dev": true, "license": "MIT", "bin": { @@ -14469,7 +13347,7 @@ }, "node_modules/pretty-format": { "version": "30.3.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/pretty-format/-/pretty-format-30.3.0.tgz", "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", "dev": true, "license": "MIT", @@ -14484,7 +13362,7 @@ }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", @@ -14497,8 +13375,6 @@ }, "node_modules/proc-log": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz", - "integrity": "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==", "dev": true, "license": "ISC", "engines": { @@ -14520,8 +13396,6 @@ }, "node_modules/proggy": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proggy/-/proggy-3.0.0.tgz", - "integrity": "sha512-QE8RApCM3IaRRxVzxrjbgNMpQEX6Wu0p0KBeoSiSEw5/bsGwZHsshF4LCxH2jp/r6BU+bqA3LrMDEYNfJnpD8Q==", "dev": true, "license": "ISC", "engines": { @@ -14530,8 +13404,6 @@ }, "node_modules/promise-all-reject-late": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", - "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==", "dev": true, "license": "ISC", "funding": { @@ -14540,8 +13412,6 @@ }, "node_modules/promise-call-limit": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-3.0.2.tgz", - "integrity": "sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==", "dev": true, "license": "ISC", "funding": { @@ -14550,8 +13420,6 @@ }, "node_modules/promise-retry": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, "license": "MIT", "dependencies": { @@ -14564,8 +13432,6 @@ }, "node_modules/promzard": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/promzard/-/promzard-2.0.0.tgz", - "integrity": "sha512-Ncd0vyS2eXGOjchIRg6PVCYKetJYrW1BSbbIo+bKdig61TB6nH2RQNF2uP+qMpsI73L/jURLWojcw8JNIKZ3gg==", "dev": true, "license": "ISC", "dependencies": { @@ -14594,15 +13460,11 @@ }, "node_modules/protocols": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.2.tgz", - "integrity": "sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==", "dev": true, "license": "MIT" }, "node_modules/proxy-from-env": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true, "license": "MIT" }, @@ -14624,7 +13486,7 @@ }, "node_modules/pure-rand": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/pure-rand/-/pure-rand-7.0.1.tgz", "integrity": "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==", "dev": true, "funding": [ @@ -14649,8 +13511,6 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -14670,8 +13530,6 @@ }, "node_modules/quick-lru": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", - "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true, "license": "MIT", "engines": { @@ -14680,8 +13538,6 @@ }, "node_modules/randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "license": "MIT", "dependencies": { @@ -14712,8 +13568,6 @@ }, "node_modules/react": { "version": "19.2.3", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", - "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", "dev": true, "license": "MIT", "engines": { @@ -14727,8 +13581,6 @@ }, "node_modules/read": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/read/-/read-4.1.0.tgz", - "integrity": "sha512-uRfX6K+f+R8OOrYScaM3ixPY4erg69f8DN6pgTvMcA9iRc8iDhwrA4m3Yu8YYKsXJgVvum+m8PkRboZwwuLzYA==", "dev": true, "license": "ISC", "dependencies": { @@ -14740,8 +13592,6 @@ }, "node_modules/read-cmd-shim": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz", - "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==", "dev": true, "license": "ISC", "engines": { @@ -14763,8 +13613,6 @@ }, "node_modules/read-pkg-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", "dev": true, "license": "MIT", "dependencies": { @@ -14777,8 +13625,6 @@ }, "node_modules/read-pkg-up/node_modules/find-up": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "dev": true, "license": "MIT", "dependencies": { @@ -14790,8 +13636,6 @@ }, "node_modules/read-pkg-up/node_modules/locate-path": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", "dev": true, "license": "MIT", "dependencies": { @@ -14804,8 +13648,6 @@ }, "node_modules/read-pkg-up/node_modules/p-limit": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "license": "MIT", "dependencies": { @@ -14817,8 +13659,6 @@ }, "node_modules/read-pkg-up/node_modules/p-locate": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", "dev": true, "license": "MIT", "dependencies": { @@ -14830,8 +13670,6 @@ }, "node_modules/read-pkg-up/node_modules/p-try": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", "dev": true, "license": "MIT", "engines": { @@ -14840,8 +13678,6 @@ }, "node_modules/read-pkg-up/node_modules/path-exists": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, "license": "MIT", "engines": { @@ -14927,8 +13763,6 @@ }, "node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "license": "MIT", "dependencies": { @@ -14964,8 +13798,6 @@ }, "node_modules/redent": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", - "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, "license": "MIT", "dependencies": { @@ -15093,8 +13925,6 @@ }, "node_modules/resolve.exports": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", - "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", "dev": true, "license": "MIT", "engines": { @@ -15103,8 +13933,6 @@ }, "node_modules/restore-cursor": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "license": "MIT", "dependencies": { @@ -15117,8 +13945,6 @@ }, "node_modules/retry": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true, "license": "MIT", "engines": { @@ -15127,8 +13953,6 @@ }, "node_modules/reusify": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, "license": "MIT", "engines": { @@ -15169,8 +13993,6 @@ }, "node_modules/run-async": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-4.0.6.tgz", - "integrity": "sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==", "dev": true, "license": "MIT", "engines": { @@ -15179,8 +14001,6 @@ }, "node_modules/run-parallel": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -15208,8 +14028,6 @@ }, "node_modules/rxjs": { "version": "7.8.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -15291,8 +14109,6 @@ }, "node_modules/schema-utils": { "version": "4.3.3", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", - "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "license": "MIT", "dependencies": { @@ -15311,8 +14127,6 @@ }, "node_modules/schema-utils/node_modules/ajv": { "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "dependencies": { @@ -15328,8 +14142,6 @@ }, "node_modules/schema-utils/node_modules/ajv-keywords": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "license": "MIT", "dependencies": { @@ -15341,15 +14153,11 @@ }, "node_modules/schema-utils/node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true, "license": "MIT" }, "node_modules/semver": { "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, "license": "ISC", "bin": { @@ -15361,14 +14169,17 @@ }, "node_modules/serialize-javascript": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } }, + "node_modules/set-blocking": { + "version": "2.0.0", + "dev": true, + "license": "ISC" + }, "node_modules/set-function-length": { "version": "1.2.2", "dev": true, @@ -15533,8 +14344,6 @@ }, "node_modules/sigstore": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-4.1.0.tgz", - "integrity": "sha512-/fUgUhYghuLzVT/gaJoeVehLCgZiUxPCPMcyVNY0lIf/cTCz58K/WTI7PefDarXxp9nUKpEwg1yyz3eSBMTtgA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -15572,8 +14381,6 @@ }, "node_modules/smart-buffer": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, "license": "MIT", "engines": { @@ -15689,8 +14496,6 @@ }, "node_modules/socks": { "version": "2.8.7", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", - "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", "dev": true, "license": "MIT", "dependencies": { @@ -15704,8 +14509,6 @@ }, "node_modules/socks-proxy-agent": { "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", "dev": true, "license": "MIT", "dependencies": { @@ -15717,6 +14520,17 @@ "node": ">= 14" } }, + "node_modules/sort-keys": { + "version": "2.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/source-map": { "version": "0.6.1", "dev": true, @@ -15811,8 +14625,6 @@ }, "node_modules/split": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", - "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "license": "MIT", "dependencies": { @@ -15824,8 +14636,6 @@ }, "node_modules/split2": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, "license": "ISC", "dependencies": { @@ -15834,15 +14644,11 @@ }, "node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true, "license": "BSD-3-Clause" }, "node_modules/ssri": { "version": "12.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", - "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", "dev": true, "license": "ISC", "dependencies": { @@ -15943,8 +14749,6 @@ }, "node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "license": "MIT", "dependencies": { @@ -15953,7 +14757,7 @@ }, "node_modules/string-length": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "license": "MIT", @@ -15981,7 +14785,7 @@ "node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", @@ -15996,7 +14800,7 @@ }, "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, "license": "MIT" @@ -16141,7 +14945,7 @@ "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", @@ -16170,8 +14974,6 @@ }, "node_modules/strip-indent": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", - "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, "license": "MIT", "dependencies": { @@ -16230,8 +15032,6 @@ }, "node_modules/tapable": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", - "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", "dev": true, "license": "MIT", "engines": { @@ -16243,9 +15043,7 @@ } }, "node_modules/tar": { - "version": "7.5.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.11.tgz", - "integrity": "sha512-ChjMH33/KetonMTAtpYdgUFr0tbz69Fp2v7zWxQfYZX4g5ZN2nOBXm1R2xyA+lMIKrLKIoKAwFj93jE/avX9cQ==", + "version": "7.5.7", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -16261,8 +15059,6 @@ }, "node_modules/tar-stream": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, "license": "MIT", "dependencies": { @@ -16278,18 +15074,22 @@ }, "node_modules/tar/node_modules/yallist": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", - "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", "dev": true, "license": "BlueOak-1.0.0", "engines": { "node": ">=18" } }, + "node_modules/temp-dir": { + "version": "1.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/terser": { "version": "5.44.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", - "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -16307,8 +15107,6 @@ }, "node_modules/terser-webpack-plugin": { "version": "5.3.16", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", - "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", "dev": true, "license": "MIT", "dependencies": { @@ -16342,8 +15140,6 @@ }, "node_modules/terser-webpack-plugin/node_modules/jest-worker": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, "license": "MIT", "dependencies": { @@ -16357,8 +15153,6 @@ }, "node_modules/terser-webpack-plugin/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -16373,7 +15167,7 @@ }, "node_modules/test-exclude": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "license": "ISC", @@ -16387,9 +15181,9 @@ } }, "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "license": "MIT", "dependencies": { @@ -16399,7 +15193,7 @@ }, "node_modules/test-exclude/node_modules/minimatch": { "version": "3.1.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/minimatch/-/minimatch-3.1.5.tgz", "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", @@ -16412,8 +15206,6 @@ }, "node_modules/text-extensions": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", - "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", "dev": true, "license": "MIT", "engines": { @@ -16422,8 +15214,6 @@ }, "node_modules/through": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true, "license": "MIT" }, @@ -16470,8 +15260,6 @@ }, "node_modules/tinyglobby": { "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, "license": "MIT", "dependencies": { @@ -16487,8 +15275,6 @@ }, "node_modules/tinyglobby/node_modules/fdir": { "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", "engines": { @@ -16504,9 +15290,7 @@ } }, "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "version": "4.0.3", "dev": true, "license": "MIT", "engines": { @@ -16518,8 +15302,6 @@ }, "node_modules/tmp": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", - "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", "dev": true, "license": "MIT", "engines": { @@ -16560,8 +15342,6 @@ }, "node_modules/tree-kill": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, "license": "MIT", "bin": { @@ -16570,8 +15350,6 @@ }, "node_modules/treeverse": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-3.0.0.tgz", - "integrity": "sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==", "dev": true, "license": "ISC", "engines": { @@ -16580,8 +15358,6 @@ }, "node_modules/trim-newlines": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", - "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true, "license": "MIT", "engines": { @@ -16590,8 +15366,6 @@ }, "node_modules/ts-api-utils": { "version": "2.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", - "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", "dev": true, "license": "MIT", "engines": { @@ -16623,9 +15397,7 @@ } }, "node_modules/ts-declaration-location/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "version": "4.0.3", "dev": true, "license": "MIT", "engines": { @@ -16637,8 +15409,6 @@ }, "node_modules/ts-jest": { "version": "29.4.6", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.6.tgz", - "integrity": "sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==", "dev": true, "license": "MIT", "dependencies": { @@ -16709,8 +15479,6 @@ }, "node_modules/ts-loader": { "version": "9.5.4", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.4.tgz", - "integrity": "sha512-nCz0rEwunlTZiy6rXFByQU1kVVpCIgUpc/psFiKVrUwrizdnIbRFu8w7bxhUF0X613DYwT4XzrZHpVyMe758hQ==", "dev": true, "license": "MIT", "dependencies": { @@ -16810,15 +15578,11 @@ }, "node_modules/tslib": { "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, "license": "0BSD" }, "node_modules/tuf-js": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-4.1.0.tgz", - "integrity": "sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==", "dev": true, "license": "MIT", "dependencies": { @@ -16843,7 +15607,7 @@ }, "node_modules/type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, "license": "MIT", @@ -16853,6 +15617,8 @@ }, "node_modules/type-fest": { "version": "0.21.3", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -16946,15 +15712,11 @@ }, "node_modules/typedarray": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true, "license": "MIT" }, "node_modules/typedoc": { "version": "0.28.15", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.15.tgz", - "integrity": "sha512-mw2/2vTL7MlT+BVo43lOsufkkd2CJO4zeOSuWQQsiXoV2VuEn7f6IZp2jsUDPmBMABpgR0R5jlcJ2OGEFYmkyg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -16989,8 +15751,6 @@ }, "node_modules/typescript-eslint": { "version": "8.52.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.52.0.tgz", - "integrity": "sha512-atlQQJ2YkO4pfTVQmQ+wvYQwexPDOIgo+RaVcD7gHgzy/IQA+XTyuxNM9M9TVXvttkF7koBHmcwisKdOAf2EcA==", "dev": true, "license": "MIT", "dependencies": { @@ -17077,8 +15837,6 @@ }, "node_modules/unique-filename": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-5.0.0.tgz", - "integrity": "sha512-2RaJTAvAb4owyjllTfXzFClJ7WsGxlykkPvCr9pA//LD9goVq+m4PPAeBgNodGZ7nSrntT/auWpJ6Y5IFXcfjg==", "dev": true, "license": "ISC", "dependencies": { @@ -17090,8 +15848,6 @@ }, "node_modules/unique-slug": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-6.0.0.tgz", - "integrity": "sha512-4Lup7Ezn8W3d52/xBhZBVdx323ckxa7DEvd9kPQHppTkLoJXw6ltrBCyj5pnrxj0qKDxYMJ56CoxNuFCscdTiw==", "dev": true, "license": "ISC", "dependencies": { @@ -17103,15 +15859,11 @@ }, "node_modules/universal-user-agent": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", - "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", "dev": true, "license": "ISC" }, "node_modules/universalify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "license": "MIT", "engines": { @@ -17169,8 +15921,6 @@ }, "node_modules/upath": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", - "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", "dev": true, "license": "MIT", "engines": { @@ -17180,8 +15930,6 @@ }, "node_modules/update-browserslist-db": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "dev": true, "funding": [ { @@ -17230,6 +15978,18 @@ "node": ">= 0.4.0" } }, + "node_modules/uuid": { + "version": "11.1.0", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "dev": true, @@ -17237,7 +15997,7 @@ }, "node_modules/v8-to-istanbul": { "version": "9.3.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, "license": "ISC", @@ -17270,8 +16030,6 @@ }, "node_modules/validate-npm-package-name": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.2.tgz", - "integrity": "sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==", "dev": true, "license": "ISC", "engines": { @@ -17296,8 +16054,6 @@ }, "node_modules/walk-up-path": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-4.0.0.tgz", - "integrity": "sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==", "dev": true, "license": "ISC", "engines": { @@ -17326,8 +16082,6 @@ }, "node_modules/wcwidth": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, "license": "MIT", "dependencies": { @@ -17336,8 +16090,6 @@ }, "node_modules/webpack": { "version": "5.104.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.104.1.tgz", - "integrity": "sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==", "dev": true, "license": "MIT", "dependencies": { @@ -17385,8 +16137,6 @@ }, "node_modules/webpack-bundle-analyzer": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-5.1.1.tgz", - "integrity": "sha512-UzoaIA0Aigo5lUvoUkIkSoHtUK5rBJh9e2vW3Eqct0jc/L8hcruBCz/jsXEvB1hDU1G3V94jo2EJqPcFKeSSeQ==", "dev": true, "license": "MIT", "dependencies": { @@ -17419,8 +16169,6 @@ }, "node_modules/webpack-bundle-analyzer/node_modules/ws": { "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, "license": "MIT", "engines": { @@ -17634,8 +16382,6 @@ }, "node_modules/wide-align": { "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, "license": "ISC", "dependencies": { @@ -17679,7 +16425,7 @@ "node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "license": "MIT", @@ -17702,7 +16448,7 @@ }, "node_modules/write-file-atomic": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/write-file-atomic/-/write-file-atomic-5.0.1.tgz", "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, "license": "ISC", @@ -17716,7 +16462,7 @@ }, "node_modules/write-file-atomic/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "license": "ISC", @@ -17727,10 +16473,83 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/write-json-file": { + "version": "3.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-indent": "^5.0.0", + "graceful-fs": "^4.1.15", + "make-dir": "^2.1.0", + "pify": "^4.0.1", + "sort-keys": "^2.0.0", + "write-file-atomic": "^2.4.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/write-json-file/node_modules/make-dir": { + "version": "2.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/write-json-file/node_modules/pify": { + "version": "4.0.1", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/write-json-file/node_modules/semver": { + "version": "5.7.2", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/write-json-file/node_modules/write-file-atomic": { + "version": "2.4.3", + "dev": true, + "license": "ISC", + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/write-pkg": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "sort-keys": "^2.0.0", + "type-fest": "^0.4.1", + "write-json-file": "^3.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/write-pkg/node_modules/type-fest": { + "version": "0.4.1", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=6" + } + }, "node_modules/ws": { "version": "8.19.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", - "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -17775,8 +16594,6 @@ }, "node_modules/yaml": { "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", "dev": true, "license": "ISC", "bin": { @@ -17835,8 +16652,6 @@ }, "node_modules/yoctocolors-cjs": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", - "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", "dev": true, "license": "MIT", "engines": { diff --git a/packages/ripple-binary-codec/src/types/st-object.ts b/packages/ripple-binary-codec/src/types/st-object.ts index 53916154ff..0b507cdfd0 100644 --- a/packages/ripple-binary-codec/src/types/st-object.ts +++ b/packages/ripple-binary-codec/src/types/st-object.ts @@ -148,16 +148,16 @@ class STObject extends SerializedType { field.type.name === ST_OBJECT ? this.from(xAddressDecoded[field.name], undefined, definitions) : field.type.name === 'STArray' - ? STArray.from(xAddressDecoded[field.name], definitions) - : field.type.name === 'UInt64' - ? UInt64.from(xAddressDecoded[field.name], field.name) - : field.associatedType?.from - ? field.associatedType.from(xAddressDecoded[field.name]) - : (() => { - throw new Error( - `Type ${field.type.name} for field ${field.name} is missing associatedType.from`, - ) - })() + ? STArray.from(xAddressDecoded[field.name], definitions) + : field.type.name === 'UInt64' + ? UInt64.from(xAddressDecoded[field.name], field.name) + : field.associatedType?.from + ? field.associatedType.from(xAddressDecoded[field.name]) + : (() => { + throw new Error( + `Type ${field.type.name} for field ${field.name} is missing associatedType.from`, + ) + })() if (associatedValue == undefined) { throw new TypeError( diff --git a/packages/ripple-binary-codec/test/binary-parser.test.ts b/packages/ripple-binary-codec/test/binary-parser.test.ts index 9efafdba62..709d86748b 100644 --- a/packages/ripple-binary-codec/test/binary-parser.test.ts +++ b/packages/ripple-binary-codec/test/binary-parser.test.ts @@ -8,7 +8,7 @@ import { makeParser, readJSON } from '../src/binary' import { BytesList } from '../src/serdes/binary-serializer' import fixtures from './fixtures/data-driven-tests.json' -const { bytesToHex } = require('@xrplf/isomorphic/utils') +const { bytesToHex } = require('@transia/isomorphic/utils') function toJSON(v) { return v.toJSON ? v.toJSON() : v diff --git a/packages/ripple-binary-codec/test/fixtures/contract-call-binary.json b/packages/ripple-binary-codec/test/fixtures/contract-call-binary.json index c6fedef905..93e398fd53 100644 --- a/packages/ripple-binary-codec/test/fixtures/contract-call-binary.json +++ b/packages/ripple-binary-codec/test/fixtures/contract-call-binary.json @@ -1 +1 @@ -"12004D24000000052039000F42406840000000000000C870220F66756E6374696F6E5F706172616D738114AE123A8556F3CF91154711376AFB0F894F832B3D80191478A28D084038E5C11F268DE3AAF7182805BE87BFF024E028203B00000000011B0010FFE1E028203B00000000011B0001FFFFE1E028203B00000000011B0002FFFFFFFFE1E028203B00000000011B00037FFFFFFFFFFFFFFFE1E028203B00000000011B000400000000000000000000000000000001E1E028203B00000000011B00110000000000000000000000000000000000000001E1E028203B00000000011B0015000000000000000000000000000000000000000000000001E1E028203B00000000011B0005D955DAC2E77519F05AD151A5D3C99FC8125FB39D58FF9F106F1ACA4491902C25E1E028203B00000000011B000704DEADBEEFE1E028203B00000000011B000814AE123A8556F3CF91154711376AFB0F894F832B3DE1E028203B00000000011B000640000000000F4240E1E028203B00000000011B0006D4844364C5BB00000000000000000000000000005553440000000000A407AF5856CCF3C42619DAA925813FC955C72983E1E028203B00000000011B000900044364C5BB0000FFFFFFF1E1F1" +"12005A24000000052048000F42406840000000000000C870220F66756E6374696F6E5F706172616D738114AE123A8556F3CF91154711376AFB0F894F832B3D801B1478A28D084038E5C11F268DE3AAF7182805BE87BFF023E029204A00000000011B0010FFE1E029204A00000000011B0001FFFFE1E029204A00000000011B0002FFFFFFFFE1E029204A00000000011B00037FFFFFFFFFFFFFFFE1E029204A00000000011B000400000000000000000000000000000001E1E029204A00000000011B00110000000000000000000000000000000000000001E1E029204A00000000011B0015000000000000000000000000000000000000000000000001E1E029204A00000000011B0005D955DAC2E77519F05AD151A5D3C99FC8125FB39D58FF9F106F1ACA4491902C25E1E029204A00000000011B000704DEADBEEFE1E029204A00000000011B000814AE123A8556F3CF91154711376AFB0F894F832B3DE1E029204A00000000011B000640000000000F4240E1E029204A00000000011B0006D4844364C5BB00000000000000000000000000005553440000000000A407AF5856CCF3C42619DAA925813FC955C72983E1E029204A00000000011B000910A741A462780000FFFFFFEEE1F1" diff --git a/packages/ripple-binary-codec/test/quality.test.ts b/packages/ripple-binary-codec/test/quality.test.ts index 41a53fd53d..be645363c9 100644 --- a/packages/ripple-binary-codec/test/quality.test.ts +++ b/packages/ripple-binary-codec/test/quality.test.ts @@ -1,5 +1,5 @@ const { quality } = require('../src/coretypes') -const { bytesToHex } = require('@xrplf/isomorphic/utils') +const { bytesToHex } = require('@transia/isomorphic/utils') describe('Quality encode/decode', function () { const bookDirectory = diff --git a/packages/xrpl/src/Wallet/utils.ts b/packages/xrpl/src/Wallet/utils.ts index 42ac308d65..187b048ce0 100644 --- a/packages/xrpl/src/Wallet/utils.ts +++ b/packages/xrpl/src/Wallet/utils.ts @@ -100,3 +100,27 @@ export function computeSignature( } return sign(encodeForSigning(tx), privateKey) } + +/** + * Signs a transaction with the proper signing encoding. + * + * @param tx - A transaction to sign. + * @param privateKey - A key to sign the transaction with. + * @param signAs - Multisign only. An account address to include in the Signer field. + * Can be either a classic address or an XAddress. + * @returns A signed transaction in the proper format. + */ +export function computeSignature( + tx: Transaction, + privateKey: string, + signAs?: string, +): string { + if (signAs) { + const classicAddress = isValidXAddress(signAs) + ? xAddressToClassicAddress(signAs).classicAddress + : signAs + + return sign(encodeForMultisigning(tx, classicAddress), privateKey) + } + return sign(encodeForSigning(tx), privateKey) +} diff --git a/packages/xrpl/src/models/transactions/common.ts b/packages/xrpl/src/models/transactions/common.ts index 7e675c5e4a..639c5ac480 100644 --- a/packages/xrpl/src/models/transactions/common.ts +++ b/packages/xrpl/src/models/transactions/common.ts @@ -801,26 +801,3 @@ export interface ContractParameterFlagsInterface extends GlobalFlagsInterface { tfSendNFToken?: boolean tfAuthorizeToken?: boolean } - -/** - * Enum representing values of {@link ContractParameter} transaction flags. - * - * @category Transaction Flags - */ -export enum ContractParameterFlags { - tfSendAmount = 0x00010000, - tfSendNFToken = 0x00020000, - tfAuthorizeToken = 0x00040000, -} - -/** - * Map of flags to boolean values representing {@link ContractParameter} transaction - * flags. - * - * @category Transaction Flags - */ -export interface ContractParameterFlagsInterface extends GlobalFlagsInterface { - tfSendAmount?: boolean - tfSendNFToken?: boolean - tfAuthorizeToken?: boolean -} From 3d8fc4149fe0a7e4c9bf7e1ca16b94c07c229aa6 Mon Sep 17 00:00:00 2001 From: Denis Angell Date: Thu, 2 Apr 2026 21:18:10 +0200 Subject: [PATCH 11/22] update autofill --- packages/xrpl/src/client/index.ts | 2 +- packages/xrpl/src/models/transactions/contractCall.ts | 4 +++- packages/xrpl/src/sugar/autofill.ts | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/xrpl/src/client/index.ts b/packages/xrpl/src/client/index.ts index 012420a308..d08ee28f5a 100644 --- a/packages/xrpl/src/client/index.ts +++ b/packages/xrpl/src/client/index.ts @@ -694,7 +694,7 @@ class Client extends EventEmitter { if (tx.TransactionType === 'Payment' && tx.DeliverMax != null) { handleDeliverMax(tx) } - if (tx.TransactionType === 'ContractCall') { + if (tx.TransactionType === 'ContractCall' && !tx.ComputationAllowance) { promises.push(getComputationAllowance(this, tx)) } diff --git a/packages/xrpl/src/models/transactions/contractCall.ts b/packages/xrpl/src/models/transactions/contractCall.ts index 405d38f138..1d5d863e41 100644 --- a/packages/xrpl/src/models/transactions/contractCall.ts +++ b/packages/xrpl/src/models/transactions/contractCall.ts @@ -1,4 +1,5 @@ import { Parameter } from '../common' + import { BaseTransaction, // isNumber, @@ -14,7 +15,8 @@ import { export interface ContractCall extends BaseTransaction { TransactionType: 'ContractCall' - ComputationAllowance: number + // Optional beacuse autofill will add it if missing + ComputationAllowance?: number ContractAccount: string diff --git a/packages/xrpl/src/sugar/autofill.ts b/packages/xrpl/src/sugar/autofill.ts index 4a0ba146e6..7a4f0d8df5 100644 --- a/packages/xrpl/src/sugar/autofill.ts +++ b/packages/xrpl/src/sugar/autofill.ts @@ -423,6 +423,7 @@ export async function getComputationAllowance( tx: Transaction, ): Promise { const copyTx = { ...tx } + copyTx.ComputationAllowance = 100000000000 delete copyTx.SigningPubKey const tx_blob = encode(copyTx) // eslint-disable-next-line require-atomic-updates, no-param-reassign -- ignore From 114dc5838a5a417de8e8910d53fae878339da248 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Tue, 14 Apr 2026 18:17:24 -0400 Subject: [PATCH 12/22] Fix contract datatype (#2) * update definitions.json * fix contract datatype * use definitions.json names for datatype --- .../src/enums/definitions.json | 4 +- .../ripple-binary-codec/src/types/data.ts | 4 +- .../ripple-binary-codec/src/types/dataType.ts | 8 +- .../src/types/serialized-type.ts | 118 ++---------- .../test/fixtures/contract-call-tx.json | 26 +-- .../ripple-binary-codec/test/st-data.test.ts | 170 +++++++++--------- .../tools/generateDefinitions.js | 1 + 7 files changed, 125 insertions(+), 206 deletions(-) diff --git a/packages/ripple-binary-codec/src/enums/definitions.json b/packages/ripple-binary-codec/src/enums/definitions.json index 52bb3a5094..fe853ab157 100644 --- a/packages/ripple-binary-codec/src/enums/definitions.json +++ b/packages/ripple-binary-codec/src/enums/definitions.json @@ -3337,7 +3337,7 @@ "isSigningField": true, "isVLEncoded": false, "nth": 1, - "type": "Datatype" + "type": "DataType" } ], [ @@ -3719,7 +3719,7 @@ "Blob": 7, "Currency": 26, "Data": 27, - "Datatype": 28, + "DataType": 28, "Done": -1, "Hash128": 4, "Hash160": 17, diff --git a/packages/ripple-binary-codec/src/types/data.ts b/packages/ripple-binary-codec/src/types/data.ts index e6c6ec42cf..ebb851ecd3 100644 --- a/packages/ripple-binary-codec/src/types/data.ts +++ b/packages/ripple-binary-codec/src/types/data.ts @@ -65,8 +65,8 @@ type DataValue = * It's encoded as a 2-byte type ID followed by the serialized data. * * Usage: - * Data.from({ type: "AMOUNT", value: "1000000" }) - * Data.from({ type: "UINT64", value: "123456789" }) + * Data.from({ type: "Amount", value: "1000000" }) + * Data.from({ type: "UInt64", value: "123456789" }) * Data.fromParser(parser) */ class Data extends SerializedType { diff --git a/packages/ripple-binary-codec/src/types/dataType.ts b/packages/ripple-binary-codec/src/types/dataType.ts index d01c44ec8a..907d425451 100644 --- a/packages/ripple-binary-codec/src/types/dataType.ts +++ b/packages/ripple-binary-codec/src/types/dataType.ts @@ -23,8 +23,8 @@ interface DataTypeJSON extends JsonObject { * the inner type. * * Usage: - * DataType.from({ type: "AMOUNT" }) - * DataType.from("UINT64") + * DataType.from({ type: "Amount" }) + * DataType.from("UInt64") * DataType.fromParser(parser) */ class DataType extends SerializedType { @@ -64,7 +64,7 @@ class DataType extends SerializedType { * @param value - Can be: * - DataType instance (returns as-is) * - DataTypeJSON object with 'type' field - * - String type name (e.g., "AMOUNT", "UINT64") + * - String type name (e.g., "Amount", "UInt64") * - SerializedTypeID enum value * @returns DataType instance * @throws Error if value type is not supported or type string is unknown @@ -95,7 +95,7 @@ class DataType extends SerializedType { /** * Construct from a type string * - * @param typeStr - Type string like "AMOUNT", "UINT64", etc. + * @param typeStr - Type string like "Amount", "UInt64", etc. * @returns DataType instance * @throws Error if type string is not recognized */ diff --git a/packages/ripple-binary-codec/src/types/serialized-type.ts b/packages/ripple-binary-codec/src/types/serialized-type.ts index 64f0e694b9..76f7efeed4 100644 --- a/packages/ripple-binary-codec/src/types/serialized-type.ts +++ b/packages/ripple-binary-codec/src/types/serialized-type.ts @@ -2,6 +2,7 @@ import { BytesList } from '../serdes/binary-serializer' import { BinaryParser } from '../serdes/binary-parser' import { XrplDefinitionsBase } from '../enums' import { bytesToHex } from '@xrplf/isomorphic/utils' +import definitions from '../enums/definitions.json' /** * Enum for SerializedTypeID values used in XRPL @@ -41,111 +42,28 @@ export enum SerializedTypeID { } /** - * Map of type strings to SerializedTypeID values + * Maps built dynamically from definitions.json TYPES. + * This ensures type string names (e.g. "Hash256", "Hash128") stay in sync + * with the canonical definitions rather than using hardcoded uppercase variants. */ -export const TYPE_STRING_TO_ID: Record = { - NOTPRESENT: SerializedTypeID.STI_NOTPRESENT, - UINT16: SerializedTypeID.STI_UINT16, - UINT32: SerializedTypeID.STI_UINT32, - UINT64: SerializedTypeID.STI_UINT64, - UINT128: SerializedTypeID.STI_UINT128, - UINT256: SerializedTypeID.STI_UINT256, - AMOUNT: SerializedTypeID.STI_AMOUNT, - VL: SerializedTypeID.STI_VL, - ACCOUNT: SerializedTypeID.STI_ACCOUNT, - NUMBER: SerializedTypeID.STI_NUMBER, - INT32: SerializedTypeID.STI_INT32, - INT64: SerializedTypeID.STI_INT64, - OBJECT: SerializedTypeID.STI_OBJECT, - ARRAY: SerializedTypeID.STI_ARRAY, +// Map of type name strings to SerializedTypeID values +export const TYPE_STRING_TO_ID: Record = {} - UINT8: SerializedTypeID.STI_UINT8, - UINT160: SerializedTypeID.STI_UINT160, - PATHSET: SerializedTypeID.STI_PATHSET, - VECTOR256: SerializedTypeID.STI_VECTOR256, - UINT96: SerializedTypeID.STI_UINT96, - UINT192: SerializedTypeID.STI_UINT192, - UINT384: SerializedTypeID.STI_UINT384, - UINT512: SerializedTypeID.STI_UINT512, - ISSUE: SerializedTypeID.STI_ISSUE, - XCHAIN_BRIDGE: SerializedTypeID.STI_XCHAIN_BRIDGE, - CURRENCY: SerializedTypeID.STI_CURRENCY, - DATA: SerializedTypeID.STI_DATA, - DATATYPE: SerializedTypeID.STI_DATATYPE, - JSON: SerializedTypeID.STI_JSON, -} - -/** - * Map of type strings to SerializedTypeID values - */ -export const TYPE_NUMBER_TO_ID: Record = { - 0: SerializedTypeID.STI_NOTPRESENT, - 1: SerializedTypeID.STI_UINT16, - 2: SerializedTypeID.STI_UINT32, - 3: SerializedTypeID.STI_UINT64, - 4: SerializedTypeID.STI_UINT128, - 5: SerializedTypeID.STI_UINT256, - 6: SerializedTypeID.STI_AMOUNT, - 7: SerializedTypeID.STI_VL, - 8: SerializedTypeID.STI_ACCOUNT, - 9: SerializedTypeID.STI_NUMBER, - 10: SerializedTypeID.STI_INT32, - 11: SerializedTypeID.STI_INT64, - - 14: SerializedTypeID.STI_OBJECT, - 15: SerializedTypeID.STI_ARRAY, +// Map of numeric type codes to SerializedTypeID values +export const TYPE_NUMBER_TO_ID: Record = {} - 16: SerializedTypeID.STI_UINT8, - 17: SerializedTypeID.STI_UINT160, - 18: SerializedTypeID.STI_PATHSET, - 19: SerializedTypeID.STI_VECTOR256, - 20: SerializedTypeID.STI_UINT96, - 21: SerializedTypeID.STI_UINT192, - 22: SerializedTypeID.STI_UINT384, - 23: SerializedTypeID.STI_UINT512, - 24: SerializedTypeID.STI_ISSUE, - 25: SerializedTypeID.STI_XCHAIN_BRIDGE, - 26: SerializedTypeID.STI_CURRENCY, - 27: SerializedTypeID.STI_DATA, - 28: SerializedTypeID.STI_DATATYPE, - 29: SerializedTypeID.STI_JSON, -} +// Map of SerializedTypeID values to type name strings +export const TYPE_ID_TO_STRING: Record = {} -/** - * Map of SerializedTypeID values to type strings - */ -export const TYPE_ID_TO_STRING: Record = { - [SerializedTypeID.STI_NOTPRESENT]: '', - [SerializedTypeID.STI_UINT16]: 'UINT16', - [SerializedTypeID.STI_UINT32]: 'UINT32', - [SerializedTypeID.STI_UINT64]: 'UINT64', - [SerializedTypeID.STI_UINT128]: 'UINT128', - [SerializedTypeID.STI_UINT256]: 'UINT256', - [SerializedTypeID.STI_AMOUNT]: 'AMOUNT', - [SerializedTypeID.STI_VL]: 'VL', - [SerializedTypeID.STI_ACCOUNT]: 'ACCOUNT', - [SerializedTypeID.STI_NUMBER]: 'NUMBER', - [SerializedTypeID.STI_INT32]: 'INT32', - [SerializedTypeID.STI_INT64]: 'INT64', - - [SerializedTypeID.STI_OBJECT]: 'OBJECT', - [SerializedTypeID.STI_ARRAY]: 'ARRAY', - - [SerializedTypeID.STI_UINT8]: 'UINT8', - [SerializedTypeID.STI_UINT160]: 'UINT160', - [SerializedTypeID.STI_PATHSET]: 'PATHSET', - [SerializedTypeID.STI_VECTOR256]: 'VECTOR256', - [SerializedTypeID.STI_UINT96]: 'UINT96', - [SerializedTypeID.STI_UINT192]: 'UINT192', - [SerializedTypeID.STI_UINT384]: 'UINT384', - [SerializedTypeID.STI_UINT512]: 'UINT512', - [SerializedTypeID.STI_ISSUE]: 'ISSUE', - [SerializedTypeID.STI_XCHAIN_BRIDGE]: 'XCHAIN_BRIDGE', - [SerializedTypeID.STI_CURRENCY]: 'CURRENCY', - [SerializedTypeID.STI_DATA]: 'DATA', - [SerializedTypeID.STI_DATATYPE]: 'DATATYPE', - [SerializedTypeID.STI_JSON]: 'JSON', +// Populate all three maps from definitions.json TYPES +for (const [name, id] of Object.entries(definitions.TYPES)) { + if (id >= 0) { + const typeId = id as SerializedTypeID + TYPE_STRING_TO_ID[name] = typeId + TYPE_NUMBER_TO_ID[id] = typeId + TYPE_ID_TO_STRING[typeId] = name + } } type JSON = string | number | boolean | null | undefined | JSON[] | JsonObject diff --git a/packages/ripple-binary-codec/test/fixtures/contract-call-tx.json b/packages/ripple-binary-codec/test/fixtures/contract-call-tx.json index 0213c80409..16a8634a9a 100644 --- a/packages/ripple-binary-codec/test/fixtures/contract-call-tx.json +++ b/packages/ripple-binary-codec/test/fixtures/contract-call-tx.json @@ -9,7 +9,7 @@ "Parameter": { "ParameterFlag": 0, "ParameterValue": { - "type": "UINT8", + "type": "UInt8", "value": 255 } } @@ -18,7 +18,7 @@ "Parameter": { "ParameterFlag": 0, "ParameterValue": { - "type": "UINT16", + "type": "UInt16", "value": 65535 } } @@ -27,7 +27,7 @@ "Parameter": { "ParameterFlag": 0, "ParameterValue": { - "type": "UINT32", + "type": "UInt32", "value": 4294967295 } } @@ -36,7 +36,7 @@ "Parameter": { "ParameterFlag": 0, "ParameterValue": { - "type": "UINT64", + "type": "UInt64", "value": "7FFFFFFFFFFFFFFF" } } @@ -45,7 +45,7 @@ "Parameter": { "ParameterFlag": 0, "ParameterValue": { - "type": "UINT128", + "type": "Hash128", "value": "00000000000000000000000000000001" } } @@ -54,7 +54,7 @@ "Parameter": { "ParameterFlag": 0, "ParameterValue": { - "type": "UINT160", + "type": "Hash160", "value": "0000000000000000000000000000000000000001" } } @@ -63,7 +63,7 @@ "Parameter": { "ParameterFlag": 0, "ParameterValue": { - "type": "UINT192", + "type": "Hash192", "value": "000000000000000000000000000000000000000000000001" } } @@ -72,7 +72,7 @@ "Parameter": { "ParameterFlag": 0, "ParameterValue": { - "type": "UINT256", + "type": "Hash256", "value": "D955DAC2E77519F05AD151A5D3C99FC8125FB39D58FF9F106F1ACA4491902C25" } } @@ -81,7 +81,7 @@ "Parameter": { "ParameterFlag": 0, "ParameterValue": { - "type": "VL", + "type": "Blob", "value": "DEADBEEF" } } @@ -90,7 +90,7 @@ "Parameter": { "ParameterFlag": 0, "ParameterValue": { - "type": "ACCOUNT", + "type": "AccountID", "value": "rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn" } } @@ -99,7 +99,7 @@ "Parameter": { "ParameterFlag": 0, "ParameterValue": { - "type": "AMOUNT", + "type": "Amount", "value": "1000000" } } @@ -108,7 +108,7 @@ "Parameter": { "ParameterFlag": 0, "ParameterValue": { - "type": "AMOUNT", + "type": "Amount", "value": { "currency": "USD", "issuer": "rExKpRKXNz25UAjbckCRtQsJFcSfjL9Er3", @@ -121,7 +121,7 @@ "Parameter": { "ParameterFlag": 0, "ParameterValue": { - "type": "NUMBER", + "type": "Number", "value": "1.2" } } diff --git a/packages/ripple-binary-codec/test/st-data.test.ts b/packages/ripple-binary-codec/test/st-data.test.ts index 3806dd3927..dc4026452c 100644 --- a/packages/ripple-binary-codec/test/st-data.test.ts +++ b/packages/ripple-binary-codec/test/st-data.test.ts @@ -5,197 +5,197 @@ import { coreTypes } from '../src/types' const { Data } = coreTypes describe('Data Type with all STTypes', () => { - describe('UINT8', () => { - it('should encode and decode UINT8', () => { - const data = Data.from({ type: 'UINT8', value: 255 }) + describe('UInt8', () => { + it('should encode and decode UInt8', () => { + const data = Data.from({ type: 'UInt8', value: 255 }) const hex = data.toHex() - expect(hex).toBe('0010FF') // 0010 = type ID for UINT8, FF = 255 + expect(hex).toBe('0010FF') // 0010 = type ID for UInt8, FF = 255 const parser = new BinaryParser(hex) const parsed = Data.fromParser(parser) - expect(parsed.toJSON()).toEqual({ type: 'UINT8', value: 255 }) + expect(parsed.toJSON()).toEqual({ type: 'UInt8', value: 255 }) }) - it('should handle UINT8 zero', () => { - const data = Data.from({ type: 'UINT8', value: 0 }) + it('should handle UInt8 zero', () => { + const data = Data.from({ type: 'UInt8', value: 0 }) expect(data.toHex()).toBe('001000') - expect(data.toJSON()).toEqual({ type: 'UINT8', value: 0 }) + expect(data.toJSON()).toEqual({ type: 'UInt8', value: 0 }) }) - it('should handle UINT8 from string', () => { - const data = Data.from({ type: 'UINT8', value: '128' }) + it('should handle UInt8 from string', () => { + const data = Data.from({ type: 'UInt8', value: '128' }) expect(data.toHex()).toBe('001080') - expect(data.toJSON()).toEqual({ type: 'UINT8', value: 128 }) + expect(data.toJSON()).toEqual({ type: 'UInt8', value: 128 }) }) }) - describe('UINT16', () => { - it('should encode and decode UINT16', () => { - const data = Data.from({ type: 'UINT16', value: 65535 }) + describe('UInt16', () => { + it('should encode and decode UInt16', () => { + const data = Data.from({ type: 'UInt16', value: 65535 }) const hex = data.toHex() - expect(hex).toBe('0001FFFF') // 0001 = type ID for UINT16, FFFF = 65535 + expect(hex).toBe('0001FFFF') // 0001 = type ID for UInt16, FFFF = 65535 const parser = new BinaryParser(hex) const parsed = Data.fromParser(parser) - expect(parsed.toJSON()).toEqual({ type: 'UINT16', value: 65535 }) + expect(parsed.toJSON()).toEqual({ type: 'UInt16', value: 65535 }) }) - it('should handle UINT16 zero', () => { - const data = Data.from({ type: 'UINT16', value: 0 }) + it('should handle UInt16 zero', () => { + const data = Data.from({ type: 'UInt16', value: 0 }) expect(data.toHex()).toBe('00010000') }) }) - describe('UINT32', () => { - it('should encode and decode UINT32', () => { - const data = Data.from({ type: 'UINT32', value: 4294967295 }) + describe('UInt32', () => { + it('should encode and decode UInt32', () => { + const data = Data.from({ type: 'UInt32', value: 4294967295 }) const hex = data.toHex() - expect(hex).toBe('0002FFFFFFFF') // 0002 = type ID for UINT32 + expect(hex).toBe('0002FFFFFFFF') // 0002 = type ID for UInt32 const parser = new BinaryParser(hex) const parsed = Data.fromParser(parser) - expect(parsed.toJSON()).toEqual({ type: 'UINT32', value: 4294967295 }) + expect(parsed.toJSON()).toEqual({ type: 'UInt32', value: 4294967295 }) }) }) - describe('UINT64', () => { - it('should encode and decode UINT64', () => { - const data = Data.from({ type: 'UINT64', value: '7fffffffffffffff' }) + describe('UInt64', () => { + it('should encode and decode UInt64', () => { + const data = Data.from({ type: 'UInt64', value: '7fffffffffffffff' }) const hex = data.toHex() - expect(hex).toBe('00037FFFFFFFFFFFFFFF') // 0003 = type ID for UINT64 + expect(hex).toBe('00037FFFFFFFFFFFFFFF') // 0003 = type ID for UInt64 const parser = new BinaryParser(hex) const parsed = Data.fromParser(parser) expect(parsed.toJSON()).toEqual({ - type: 'UINT64', + type: 'UInt64', value: '7FFFFFFFFFFFFFFF', }) }) - // it('should handle UINT64 as number string', () => { - // const data = Data.from({ type: 'UINT64', value: '123456789' }) + // it('should handle UInt64 as number string', () => { + // const data = Data.from({ type: 'UInt64', value: '123456789' }) // const parser = new BinaryParser(data.toHex()) // const parsed = Data.fromParser(parser) // expect(parsed.getValue().toJSON()).toBe('123456789') // }) }) - describe('UINT128 (Hash128)', () => { - it('should encode and decode UINT128', () => { + describe('Hash128', () => { + it('should encode and decode Hash128', () => { const value = '00000000000000000000000000000001' - const data = Data.from({ type: 'UINT128', value }) + const data = Data.from({ type: 'Hash128', value }) const hex = data.toHex() - expect(hex).toBe('0004' + value) // 0004 = type ID for UINT128 + expect(hex).toBe('0004' + value) // 0004 = type ID for Hash128 const parser = new BinaryParser(hex) const parsed = Data.fromParser(parser) expect(parsed.toJSON()).toEqual({ - type: 'UINT128', + type: 'Hash128', value: value.toUpperCase(), }) }) }) - describe('UINT160 (Hash160)', () => { - it('should encode and decode UINT160', () => { + describe('Hash160', () => { + it('should encode and decode Hash160', () => { const value = '0000000000000000000000000000000000000001' - const data = Data.from({ type: 'UINT160', value }) + const data = Data.from({ type: 'Hash160', value }) const hex = data.toHex() - expect(hex).toBe('0011' + value) // 0011 = type ID for UINT160 + expect(hex).toBe('0011' + value) // 0011 = type ID for Hash160 const parser = new BinaryParser(hex) const parsed = Data.fromParser(parser) expect(parsed.toJSON()).toEqual({ - type: 'UINT160', + type: 'Hash160', value: value.toUpperCase(), }) }) }) - describe('UINT192 (Hash192)', () => { - it('should encode and decode UINT192', () => { + describe('Hash192', () => { + it('should encode and decode Hash192', () => { const value = '000000000000000000000000000000000000000000000001' - const data = Data.from({ type: 'UINT192', value }) + const data = Data.from({ type: 'Hash192', value }) const hex = data.toHex() - expect(hex).toBe('0015' + value) // 0015 = type ID for UINT192 + expect(hex).toBe('0015' + value) // 0015 = type ID for Hash192 const parser = new BinaryParser(hex) const parsed = Data.fromParser(parser) expect(parsed.toJSON()).toEqual({ - type: 'UINT192', + type: 'Hash192', value: value.toUpperCase(), }) }) }) - describe('UINT256 (Hash256)', () => { - it('should encode and decode UINT256', () => { + describe('Hash256', () => { + it('should encode and decode Hash256', () => { const value = 'D955DAC2E77519F05AD151A5D3C99FC8125FB39D58FF9F106F1ACA4491902C25' - const data = Data.from({ type: 'UINT256', value }) + const data = Data.from({ type: 'Hash256', value }) const hex = data.toHex() - expect(hex).toBe('0005' + value) // 0005 = type ID for UINT256 + expect(hex).toBe('0005' + value) // 0005 = type ID for Hash256 const parser = new BinaryParser(hex) const parsed = Data.fromParser(parser) - expect(parsed.toJSON()).toEqual({ type: 'UINT256', value }) + expect(parsed.toJSON()).toEqual({ type: 'Hash256', value }) }) }) - describe('VL (Variable Length Blob)', () => { - it('should encode and decode VL with hex string', () => { + describe('Blob (Variable Length)', () => { + it('should encode and decode Blob with hex string', () => { const value = 'DEADBEEF' - const data = Data.from({ type: 'VL', value }) + const data = Data.from({ type: 'Blob', value }) const hex = data.toHex() - // VL encoding: type ID (0007) + length prefix (04 for 4 bytes) + data + // Blob encoding: type ID (0007) + length prefix (04 for 4 bytes) + data expect(hex).toBe('000704DEADBEEF') const parser = new BinaryParser(hex) const parsed = Data.fromParser(parser) - expect(parsed.toJSON()).toEqual({ type: 'VL', value }) + expect(parsed.toJSON()).toEqual({ type: 'Blob', value }) }) - it('should handle empty VL', () => { - const data = Data.from({ type: 'VL', value: '' }) + it('should handle empty Blob', () => { + const data = Data.from({ type: 'Blob', value: '' }) const hex = data.toHex() expect(hex).toBe('000700') // 00 = length 0 const parser = new BinaryParser(hex) const parsed = Data.fromParser(parser) - expect(parsed.toJSON()).toEqual({ type: 'VL', value: '' }) + expect(parsed.toJSON()).toEqual({ type: 'Blob', value: '' }) }) - it('should handle longer VL data', () => { + it('should handle longer Blob data', () => { const value = 'DEADBEEFCAFE' + '00'.repeat(100) // Long hex string - const data = Data.from({ type: 'VL', value }) + const data = Data.from({ type: 'Blob', value }) const parser = new BinaryParser(data.toHex()) const parsed = Data.fromParser(parser) - expect(parsed.toJSON()).toEqual({ type: 'VL', value }) + expect(parsed.toJSON()).toEqual({ type: 'Blob', value }) }) }) - describe('ACCOUNT', () => { - it('should encode and decode ACCOUNT', () => { + describe('AccountID', () => { + it('should encode and decode AccountID', () => { const value = 'rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn' - const data = Data.from({ type: 'ACCOUNT', value }) + const data = Data.from({ type: 'AccountID', value }) const hex = data.toHex() - // ACCOUNT encoding: type ID (0008) + (14) + 20 bytes of account ID + // AccountID encoding: type ID (0008) + (14) + 20 bytes of account ID expect(hex.substring(0, 4)).toBe('0008') expect(hex.length).toBe(6 + 40) // 2 bytes type + 1 byte length + 20 bytes account const parser = new BinaryParser(hex) const parsed = Data.fromParser(parser) - expect(parsed.toJSON()).toEqual({ type: 'ACCOUNT', value }) + expect(parsed.toJSON()).toEqual({ type: 'AccountID', value }) }) it('should handle different account format', () => { const value = 'rExKpRKXNz25UAjbckCRtQsJFcSfjL9Er3' - const data = Data.from({ type: 'ACCOUNT', value }) + const data = Data.from({ type: 'AccountID', value }) const parser = new BinaryParser(data.toHex()) const parsed = Data.fromParser(parser) - expect(parsed.toJSON()).toEqual({ type: 'ACCOUNT', value }) + expect(parsed.toJSON()).toEqual({ type: 'AccountID', value }) }) }) @@ -283,51 +283,51 @@ describe('Data Type with all STTypes', () => { // }) // }) - describe('NUMBER (STNumber)', () => { - it('should encode and decode positive decimal NUMBER', () => { + describe('Number (STNumber)', () => { + it('should encode and decode positive decimal Number', () => { const value = '1.2' - const data = Data.from({ type: 'NUMBER', value }) + const data = Data.from({ type: 'Number', value }) const hex = data.toHex() - // NUMBER encoding: type ID (0009) + serialized number + // Number encoding: type ID (0009) + serialized number expect(hex.substring(0, 4)).toBe('0009') const parser = new BinaryParser(hex) const parsed = Data.fromParser(parser) - expect(parsed.toJSON()).toEqual({ type: 'NUMBER', value }) + expect(parsed.toJSON()).toEqual({ type: 'Number', value }) }) - it('should handle integer NUMBER', () => { + it('should handle integer Number', () => { const value = '123456789' - const data = Data.from({ type: 'NUMBER', value }) + const data = Data.from({ type: 'Number', value }) const parser = new BinaryParser(data.toHex()) const parsed = Data.fromParser(parser) - expect(parsed.toJSON()).toEqual({ type: 'NUMBER', value }) + expect(parsed.toJSON()).toEqual({ type: 'Number', value }) }) - it('should handle negative NUMBER', () => { + it('should handle negative Number', () => { const value = '-987.654' - const data = Data.from({ type: 'NUMBER', value }) + const data = Data.from({ type: 'Number', value }) const parser = new BinaryParser(data.toHex()) const parsed = Data.fromParser(parser) - expect(parsed.toJSON()).toEqual({ type: 'NUMBER', value }) + expect(parsed.toJSON()).toEqual({ type: 'Number', value }) }) - it('should handle zero NUMBER', () => { + it('should handle zero Number', () => { const value = '0' - const data = Data.from({ type: 'NUMBER', value }) + const data = Data.from({ type: 'Number', value }) const parser = new BinaryParser(data.toHex()) const parsed = Data.fromParser(parser) - expect(parsed.toJSON()).toEqual({ type: 'NUMBER', value }) + expect(parsed.toJSON()).toEqual({ type: 'Number', value }) }) - it('should handle scientific notation NUMBER', () => { + it('should handle scientific notation Number', () => { const value = '1.23e5' - const data = Data.from({ type: 'NUMBER', value }) + const data = Data.from({ type: 'Number', value }) const parser = new BinaryParser(data.toHex()) const parsed = Data.fromParser(parser) // STNumber normalizes scientific notation to decimal - expect(parsed.toJSON()).toEqual({ type: 'NUMBER', value: '123000' }) + expect(parsed.toJSON()).toEqual({ type: 'Number', value: '123000' }) }) }) diff --git a/packages/ripple-binary-codec/tools/generateDefinitions.js b/packages/ripple-binary-codec/tools/generateDefinitions.js index 5f970f694b..21330a0af0 100644 --- a/packages/ripple-binary-codec/tools/generateDefinitions.js +++ b/packages/ripple-binary-codec/tools/generateDefinitions.js @@ -104,6 +104,7 @@ async function main() { VL: 'Blob', DIR_NODE: 'DirectoryNode', PAYCHAN: 'PayChannel', + DATATYPE: 'DataType', } if (nonstandardRenames[inp] != null) return nonstandardRenames[inp] From 529a02c75f04544d48fc610c43f953681e9ac6ec Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Tue, 14 Apr 2026 18:49:38 -0400 Subject: [PATCH 13/22] fix rebase issues --- .../test/binary-parser.test.ts | 2 +- .../ripple-binary-codec/test/quality.test.ts | 2 +- packages/xrpl/src/Wallet/utils.ts | 24 --------- .../src/models/transactions/contractCall.ts | 2 +- .../xrpl/test/models/contractCall.test.ts | 2 +- .../xrpl/test/models/contractClawback.test.ts | 10 ++-- .../xrpl/test/models/contractCreate.test.ts | 51 ++++++++++--------- .../xrpl/test/models/contractDelete.test.ts | 8 +-- .../xrpl/test/models/contractModify.test.ts | 51 ++++++++++--------- .../test/models/contractUserDelete.test.ts | 27 +++++----- 10 files changed, 86 insertions(+), 93 deletions(-) diff --git a/packages/ripple-binary-codec/test/binary-parser.test.ts b/packages/ripple-binary-codec/test/binary-parser.test.ts index 709d86748b..9efafdba62 100644 --- a/packages/ripple-binary-codec/test/binary-parser.test.ts +++ b/packages/ripple-binary-codec/test/binary-parser.test.ts @@ -8,7 +8,7 @@ import { makeParser, readJSON } from '../src/binary' import { BytesList } from '../src/serdes/binary-serializer' import fixtures from './fixtures/data-driven-tests.json' -const { bytesToHex } = require('@transia/isomorphic/utils') +const { bytesToHex } = require('@xrplf/isomorphic/utils') function toJSON(v) { return v.toJSON ? v.toJSON() : v diff --git a/packages/ripple-binary-codec/test/quality.test.ts b/packages/ripple-binary-codec/test/quality.test.ts index be645363c9..41a53fd53d 100644 --- a/packages/ripple-binary-codec/test/quality.test.ts +++ b/packages/ripple-binary-codec/test/quality.test.ts @@ -1,5 +1,5 @@ const { quality } = require('../src/coretypes') -const { bytesToHex } = require('@transia/isomorphic/utils') +const { bytesToHex } = require('@xrplf/isomorphic/utils') describe('Quality encode/decode', function () { const bookDirectory = diff --git a/packages/xrpl/src/Wallet/utils.ts b/packages/xrpl/src/Wallet/utils.ts index 187b048ce0..42ac308d65 100644 --- a/packages/xrpl/src/Wallet/utils.ts +++ b/packages/xrpl/src/Wallet/utils.ts @@ -100,27 +100,3 @@ export function computeSignature( } return sign(encodeForSigning(tx), privateKey) } - -/** - * Signs a transaction with the proper signing encoding. - * - * @param tx - A transaction to sign. - * @param privateKey - A key to sign the transaction with. - * @param signAs - Multisign only. An account address to include in the Signer field. - * Can be either a classic address or an XAddress. - * @returns A signed transaction in the proper format. - */ -export function computeSignature( - tx: Transaction, - privateKey: string, - signAs?: string, -): string { - if (signAs) { - const classicAddress = isValidXAddress(signAs) - ? xAddressToClassicAddress(signAs).classicAddress - : signAs - - return sign(encodeForMultisigning(tx, classicAddress), privateKey) - } - return sign(encodeForSigning(tx), privateKey) -} diff --git a/packages/xrpl/src/models/transactions/contractCall.ts b/packages/xrpl/src/models/transactions/contractCall.ts index 1d5d863e41..a1e6892575 100644 --- a/packages/xrpl/src/models/transactions/contractCall.ts +++ b/packages/xrpl/src/models/transactions/contractCall.ts @@ -15,7 +15,7 @@ import { export interface ContractCall extends BaseTransaction { TransactionType: 'ContractCall' - // Optional beacuse autofill will add it if missing + // Optional because autofill will add it if missing ComputationAllowance?: number ContractAccount: string diff --git a/packages/xrpl/test/models/contractCall.test.ts b/packages/xrpl/test/models/contractCall.test.ts index 4ed5845605..1b3d0eb060 100644 --- a/packages/xrpl/test/models/contractCall.test.ts +++ b/packages/xrpl/test/models/contractCall.test.ts @@ -1,7 +1,7 @@ import { assert } from 'chai' import { validate, ValidationError } from '../../src' -import { validateContractCall } from '../../src/models/transactions/ContractCall' +import { validateContractCall } from '../../src/models/transactions/contractCall' /** * ContractCall Transaction Verification Testing. diff --git a/packages/xrpl/test/models/contractClawback.test.ts b/packages/xrpl/test/models/contractClawback.test.ts index 7cfa7e02c1..ee6a627af0 100644 --- a/packages/xrpl/test/models/contractClawback.test.ts +++ b/packages/xrpl/test/models/contractClawback.test.ts @@ -1,7 +1,7 @@ import { assert } from 'chai' import { validate, ValidationError } from '../../src' -import { validateContractClawback } from '../../src/models/transactions/ContractClawback' +import { validateContractClawback } from '../../src/models/transactions/contractClawback' /** * ContractClawback Transaction Verification Testing. @@ -12,7 +12,9 @@ describe('ContractClawback', function () { let tx beforeEach(function () { - tx = { /* TODO: add sample transaction */ } as any + tx = { + /* TODO: add sample transaction */ + } as any }) it('verifies valid ContractClawback', function () { @@ -20,7 +22,7 @@ describe('ContractClawback', function () { assert.doesNotThrow(() => validate(tx)) }) - it("throws w/ missing Amount", function () { + it('throws w/ missing Amount', function () { delete tx.Amount assert.throws( @@ -36,7 +38,7 @@ describe('ContractClawback', function () { }) it('throws w/ invalid Amount', function () { - tx.Amount = {"currency":"ETH"} + tx.Amount = { currency: 'ETH' } assert.throws( () => validateContractClawback(tx), diff --git a/packages/xrpl/test/models/contractCreate.test.ts b/packages/xrpl/test/models/contractCreate.test.ts index 0bf00fc2e3..75118be828 100644 --- a/packages/xrpl/test/models/contractCreate.test.ts +++ b/packages/xrpl/test/models/contractCreate.test.ts @@ -1,7 +1,7 @@ import { assert } from 'chai' import { validate, ValidationError } from '../../src' -import { validateContractCreate } from '../../src/models/transactions/ContractCreate' +import { validateContractCreate } from '../../src/models/transactions/contractCreate' /** * ContractCreate Transaction Verification Testing. @@ -12,7 +12,9 @@ describe('ContractCreate', function () { let tx beforeEach(function () { - tx = { /* TODO: add sample transaction */ } as any + tx = { + /* TODO: add sample transaction */ + } as any }) it('verifies valid ContractCreate', function () { @@ -51,13 +53,14 @@ describe('ContractCreate', function () { }) it('throws w/ invalid Functions', function () { - tx.Functions = /*TODO*/ - - assert.throws( - () => validateContractCreate(tx), - ValidationError, - 'ContractCreate: invalid field Functions', - ) + tx.Functions = + /*TODO*/ + + assert.throws( + () => validateContractCreate(tx), + ValidationError, + 'ContractCreate: invalid field Functions', + ) assert.throws( () => validate(tx), ValidationError, @@ -66,13 +69,14 @@ describe('ContractCreate', function () { }) it('throws w/ invalid InstanceParameters', function () { - tx.InstanceParameters = /*TODO*/ - - assert.throws( - () => validateContractCreate(tx), - ValidationError, - 'ContractCreate: invalid field InstanceParameters', - ) + tx.InstanceParameters = + /*TODO*/ + + assert.throws( + () => validateContractCreate(tx), + ValidationError, + 'ContractCreate: invalid field InstanceParameters', + ) assert.throws( () => validate(tx), ValidationError, @@ -81,13 +85,14 @@ describe('ContractCreate', function () { }) it('throws w/ invalid InstanceParameterValues', function () { - tx.InstanceParameterValues = /*TODO*/ - - assert.throws( - () => validateContractCreate(tx), - ValidationError, - 'ContractCreate: invalid field InstanceParameterValues', - ) + tx.InstanceParameterValues = + /*TODO*/ + + assert.throws( + () => validateContractCreate(tx), + ValidationError, + 'ContractCreate: invalid field InstanceParameterValues', + ) assert.throws( () => validate(tx), ValidationError, diff --git a/packages/xrpl/test/models/contractDelete.test.ts b/packages/xrpl/test/models/contractDelete.test.ts index 9547af2e96..a79cbd3b6f 100644 --- a/packages/xrpl/test/models/contractDelete.test.ts +++ b/packages/xrpl/test/models/contractDelete.test.ts @@ -1,7 +1,7 @@ import { assert } from 'chai' import { validate, ValidationError } from '../../src' -import { validateContractDelete } from '../../src/models/transactions/ContractDelete' +import { validateContractDelete } from '../../src/models/transactions/contractDelete' /** * ContractDelete Transaction Verification Testing. @@ -12,7 +12,9 @@ describe('ContractDelete', function () { let tx beforeEach(function () { - tx = { /* TODO: add sample transaction */ } as any + tx = { + /* TODO: add sample transaction */ + } as any }) it('verifies valid ContractDelete', function () { @@ -20,7 +22,7 @@ describe('ContractDelete', function () { assert.doesNotThrow(() => validate(tx)) }) - it("throws w/ missing ContractAccount", function () { + it('throws w/ missing ContractAccount', function () { delete tx.ContractAccount assert.throws( diff --git a/packages/xrpl/test/models/contractModify.test.ts b/packages/xrpl/test/models/contractModify.test.ts index a15525f857..a9cba72a83 100644 --- a/packages/xrpl/test/models/contractModify.test.ts +++ b/packages/xrpl/test/models/contractModify.test.ts @@ -1,7 +1,7 @@ import { assert } from 'chai' import { validate, ValidationError } from '../../src' -import { validateContractModify } from '../../src/models/transactions/ContractModify' +import { validateContractModify } from '../../src/models/transactions/contractModify' /** * ContractModify Transaction Verification Testing. @@ -12,7 +12,9 @@ describe('ContractModify', function () { let tx beforeEach(function () { - tx = { /* TODO: add sample transaction */ } as any + tx = { + /* TODO: add sample transaction */ + } as any }) it('verifies valid ContractModify', function () { @@ -66,13 +68,14 @@ describe('ContractModify', function () { }) it('throws w/ invalid Functions', function () { - tx.Functions = /*TODO*/ - - assert.throws( - () => validateContractModify(tx), - ValidationError, - 'ContractModify: invalid field Functions', - ) + tx.Functions = + /*TODO*/ + + assert.throws( + () => validateContractModify(tx), + ValidationError, + 'ContractModify: invalid field Functions', + ) assert.throws( () => validate(tx), ValidationError, @@ -81,13 +84,14 @@ describe('ContractModify', function () { }) it('throws w/ invalid InstanceParameters', function () { - tx.InstanceParameters = /*TODO*/ - - assert.throws( - () => validateContractModify(tx), - ValidationError, - 'ContractModify: invalid field InstanceParameters', - ) + tx.InstanceParameters = + /*TODO*/ + + assert.throws( + () => validateContractModify(tx), + ValidationError, + 'ContractModify: invalid field InstanceParameters', + ) assert.throws( () => validate(tx), ValidationError, @@ -96,13 +100,14 @@ describe('ContractModify', function () { }) it('throws w/ invalid InstanceParameterValues', function () { - tx.InstanceParameterValues = /*TODO*/ - - assert.throws( - () => validateContractModify(tx), - ValidationError, - 'ContractModify: invalid field InstanceParameterValues', - ) + tx.InstanceParameterValues = + /*TODO*/ + + assert.throws( + () => validateContractModify(tx), + ValidationError, + 'ContractModify: invalid field InstanceParameterValues', + ) assert.throws( () => validate(tx), ValidationError, diff --git a/packages/xrpl/test/models/contractUserDelete.test.ts b/packages/xrpl/test/models/contractUserDelete.test.ts index 269356a07d..60fd428683 100644 --- a/packages/xrpl/test/models/contractUserDelete.test.ts +++ b/packages/xrpl/test/models/contractUserDelete.test.ts @@ -1,7 +1,7 @@ import { assert } from 'chai' import { validate, ValidationError } from '../../src' -import { validateContractUserDelete } from '../../src/models/transactions/ContractUserDelete' +import { validateContractUserDelete } from '../../src/models/transactions/contractUserDelete' /** * ContractUserDelete Transaction Verification Testing. @@ -12,7 +12,9 @@ describe('ContractUserDelete', function () { let tx beforeEach(function () { - tx = { /* TODO: add sample transaction */ } as any + tx = { + /* TODO: add sample transaction */ + } as any }) it('verifies valid ContractUserDelete', function () { @@ -20,7 +22,7 @@ describe('ContractUserDelete', function () { assert.doesNotThrow(() => validate(tx)) }) - it("throws w/ missing ComputationAllowance", function () { + it('throws w/ missing ComputationAllowance', function () { delete tx.ComputationAllowance assert.throws( @@ -50,7 +52,7 @@ describe('ContractUserDelete', function () { ) }) - it("throws w/ missing ContractAccount", function () { + it('throws w/ missing ContractAccount', function () { delete tx.ContractAccount assert.throws( @@ -80,7 +82,7 @@ describe('ContractUserDelete', function () { ) }) - it("throws w/ missing FunctionName", function () { + it('throws w/ missing FunctionName', function () { delete tx.FunctionName assert.throws( @@ -111,13 +113,14 @@ describe('ContractUserDelete', function () { }) it('throws w/ invalid Parameters', function () { - tx.Parameters = /*TODO*/ - - assert.throws( - () => validateContractUserDelete(tx), - ValidationError, - 'ContractUserDelete: invalid field Parameters', - ) + tx.Parameters = + /*TODO*/ + + assert.throws( + () => validateContractUserDelete(tx), + ValidationError, + 'ContractUserDelete: invalid field Parameters', + ) assert.throws( () => validate(tx), ValidationError, From 0d51c79d36ac354993b7400be4afe5d0deeb8e6e Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Tue, 14 Apr 2026 19:03:47 -0400 Subject: [PATCH 14/22] roll back package-lock changes --- package-lock.json | 3876 +++++++++++++++++++++++++++++---------------- 1 file changed, 2532 insertions(+), 1344 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7ba2345e07..89d21a4347 100644 --- a/package-lock.json +++ b/package-lock.json @@ -208,7 +208,7 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.28.6", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", "dev": true, "license": "MIT", @@ -351,7 +351,7 @@ }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.28.6", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", "dev": true, "license": "MIT", @@ -461,7 +461,7 @@ }, "node_modules/@babel/plugin-syntax-typescript": { "version": "7.28.6", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", "dev": true, "license": "MIT", @@ -519,7 +519,7 @@ }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true, "license": "MIT" @@ -562,6 +562,8 @@ }, "node_modules/@emnapi/core": { "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.1.tgz", + "integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==", "dev": true, "license": "MIT", "dependencies": { @@ -571,6 +573,8 @@ }, "node_modules/@emnapi/runtime": { "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", + "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", "dev": true, "license": "MIT", "dependencies": { @@ -579,6 +583,8 @@ }, "node_modules/@emnapi/wasi-threads": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", "dev": true, "license": "MIT", "dependencies": { @@ -620,6 +626,8 @@ }, "node_modules/@eslint-community/eslint-utils": { "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", "dev": true, "license": "MIT", "dependencies": { @@ -637,6 +645,8 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "dev": true, "license": "MIT", "engines": { @@ -645,6 +655,8 @@ }, "node_modules/@eslint/config-array": { "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -658,6 +670,8 @@ }, "node_modules/@eslint/config-array/node_modules/brace-expansion": { "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -666,7 +680,9 @@ } }, "node_modules/@eslint/config-array/node_modules/minimatch": { - "version": "3.1.2", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -678,6 +694,8 @@ }, "node_modules/@eslint/config-helpers": { "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -689,6 +707,8 @@ }, "node_modules/@eslint/core": { "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -741,7 +761,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -753,6 +775,8 @@ }, "node_modules/@eslint/js": { "version": "9.39.2", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", + "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", "dev": true, "license": "MIT", "engines": { @@ -764,6 +788,8 @@ }, "node_modules/@eslint/object-schema": { "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -772,6 +798,8 @@ }, "node_modules/@eslint/plugin-kit": { "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -782,8 +810,20 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@gar/promise-retry": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@gar/promise-retry/-/promise-retry-1.0.3.tgz", + "integrity": "sha512-GmzA9ckNokPypTg10pgpeHNQe7ph+iIKKmhKu3Ob9ANkswreCx7R3cKmY781K8QK3AqVL3xVh9A42JvIAbkkSA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, "node_modules/@gerrit0/mini-shiki": { "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.19.0.tgz", + "integrity": "sha512-ZSlWfLvr8Nl0T4iA3FF/8VH8HivYF82xQts2DY0tJxZd4wtXJ8AA0nmdW9lmO4hlrh3f9xNwEPtOgqETPqKwDA==", "dev": true, "license": "MIT", "dependencies": { @@ -852,6 +892,8 @@ }, "node_modules/@hutson/parse-repository-url": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", "dev": true, "license": "Apache-2.0", "engines": { @@ -860,6 +902,8 @@ }, "node_modules/@inquirer/ansi": { "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", + "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==", "dev": true, "license": "MIT", "engines": { @@ -868,6 +912,8 @@ }, "node_modules/@inquirer/checkbox": { "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.3.2.tgz", + "integrity": "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==", "dev": true, "license": "MIT", "dependencies": { @@ -891,6 +937,8 @@ }, "node_modules/@inquirer/confirm": { "version": "5.1.21", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.21.tgz", + "integrity": "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==", "dev": true, "license": "MIT", "dependencies": { @@ -911,6 +959,8 @@ }, "node_modules/@inquirer/core": { "version": "10.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz", + "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==", "dev": true, "license": "MIT", "dependencies": { @@ -937,6 +987,8 @@ }, "node_modules/@inquirer/core/node_modules/signal-exit": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "license": "ISC", "engines": { @@ -948,6 +1000,8 @@ }, "node_modules/@inquirer/core/node_modules/wrap-ansi": { "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "license": "MIT", "dependencies": { @@ -961,6 +1015,8 @@ }, "node_modules/@inquirer/editor": { "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.23.tgz", + "integrity": "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -982,6 +1038,8 @@ }, "node_modules/@inquirer/expand": { "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.23.tgz", + "integrity": "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==", "dev": true, "license": "MIT", "dependencies": { @@ -1003,6 +1061,8 @@ }, "node_modules/@inquirer/external-editor": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", "dev": true, "license": "MIT", "dependencies": { @@ -1023,6 +1083,8 @@ }, "node_modules/@inquirer/external-editor/node_modules/iconv-lite": { "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", "dev": true, "license": "MIT", "dependencies": { @@ -1038,6 +1100,8 @@ }, "node_modules/@inquirer/figures": { "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", + "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==", "dev": true, "license": "MIT", "engines": { @@ -1046,6 +1110,8 @@ }, "node_modules/@inquirer/input": { "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.3.1.tgz", + "integrity": "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==", "dev": true, "license": "MIT", "dependencies": { @@ -1066,6 +1132,8 @@ }, "node_modules/@inquirer/number": { "version": "3.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.23.tgz", + "integrity": "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==", "dev": true, "license": "MIT", "dependencies": { @@ -1086,6 +1154,8 @@ }, "node_modules/@inquirer/password": { "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.23.tgz", + "integrity": "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==", "dev": true, "license": "MIT", "dependencies": { @@ -1107,6 +1177,8 @@ }, "node_modules/@inquirer/prompts": { "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.10.1.tgz", + "integrity": "sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==", "dev": true, "license": "MIT", "dependencies": { @@ -1135,6 +1207,8 @@ }, "node_modules/@inquirer/rawlist": { "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.11.tgz", + "integrity": "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==", "dev": true, "license": "MIT", "dependencies": { @@ -1156,6 +1230,8 @@ }, "node_modules/@inquirer/search": { "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.2.2.tgz", + "integrity": "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==", "dev": true, "license": "MIT", "dependencies": { @@ -1178,6 +1254,8 @@ }, "node_modules/@inquirer/select": { "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.4.2.tgz", + "integrity": "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==", "dev": true, "license": "MIT", "dependencies": { @@ -1201,6 +1279,8 @@ }, "node_modules/@inquirer/type": { "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz", + "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==", "dev": true, "license": "MIT", "engines": { @@ -1215,27 +1295,10 @@ } } }, - "node_modules/@isaacs/balanced-match": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@isaacs/brace-expansion": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@isaacs/balanced-match": "^4.0.1" - }, - "engines": { - "node": "20 || >=22" - } - }, "node_modules/@isaacs/cliui": { "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-9.0.0.tgz", + "integrity": "sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -1244,6 +1307,8 @@ }, "node_modules/@isaacs/fs-minipass": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", "dev": true, "license": "ISC", "dependencies": { @@ -1255,12 +1320,14 @@ }, "node_modules/@isaacs/string-locale-compare": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", + "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==", "dev": true, "license": "ISC" }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "license": "ISC", @@ -1277,7 +1344,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { "version": "1.0.10", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/argparse/-/argparse-1.0.10.tgz", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "license": "MIT", @@ -1287,7 +1354,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/find-up/-/find-up-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", @@ -1301,7 +1368,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { "version": "3.14.2", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/js-yaml/-/js-yaml-3.14.2.tgz", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, "license": "MIT", @@ -1315,7 +1382,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/locate-path/-/locate-path-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", @@ -1328,7 +1395,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/p-limit/-/p-limit-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", @@ -1344,7 +1411,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/p-locate/-/p-locate-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", @@ -1357,7 +1424,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/resolve-from/-/resolve-from-5.0.0.tgz", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", @@ -1374,17 +1441,17 @@ } }, "node_modules/@jest/console": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/console/-/console-30.3.0.tgz", - "integrity": "sha512-PAwCvFJ4696XP2qZj+LAn1BWjZaJ6RjG6c7/lkMaUJnkyMS34ucuIsfqYvfskVNvUI27R/u4P1HMYFnlVXG/Ww==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.2.0.tgz", + "integrity": "sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.3.0", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", - "jest-message-util": "30.3.0", - "jest-util": "30.3.0", + "jest-message-util": "30.2.0", + "jest-util": "30.2.0", "slash": "^3.0.0" }, "engines": { @@ -1392,38 +1459,39 @@ } }, "node_modules/@jest/core": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/core/-/core-30.3.0.tgz", - "integrity": "sha512-U5mVPsBxLSO6xYbf+tgkymLx+iAhvZX43/xI1+ej2ZOPnPdkdO1CzDmFKh2mZBn2s4XZixszHeQnzp1gm/DIxw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.2.0.tgz", + "integrity": "sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.3.0", + "@jest/console": "30.2.0", "@jest/pattern": "30.0.1", - "@jest/reporters": "30.3.0", - "@jest/test-result": "30.3.0", - "@jest/transform": "30.3.0", - "@jest/types": "30.3.0", + "@jest/reporters": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "ci-info": "^4.2.0", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", - "jest-changed-files": "30.3.0", - "jest-config": "30.3.0", - "jest-haste-map": "30.3.0", - "jest-message-util": "30.3.0", + "jest-changed-files": "30.2.0", + "jest-config": "30.2.0", + "jest-haste-map": "30.2.0", + "jest-message-util": "30.2.0", "jest-regex-util": "30.0.1", - "jest-resolve": "30.3.0", - "jest-resolve-dependencies": "30.3.0", - "jest-runner": "30.3.0", - "jest-runtime": "30.3.0", - "jest-snapshot": "30.3.0", - "jest-util": "30.3.0", - "jest-validate": "30.3.0", - "jest-watcher": "30.3.0", - "pretty-format": "30.3.0", + "jest-resolve": "30.2.0", + "jest-resolve-dependencies": "30.2.0", + "jest-runner": "30.2.0", + "jest-runtime": "30.2.0", + "jest-snapshot": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "jest-watcher": "30.2.0", + "micromatch": "^4.0.8", + "pretty-format": "30.2.0", "slash": "^3.0.0" }, "engines": { @@ -1438,9 +1506,22 @@ } } }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/@jest/core/node_modules/ci-info": { "version": "4.4.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ci-info/-/ci-info-4.4.0.tgz", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", "dev": true, "funding": [ @@ -1454,10 +1535,25 @@ "node": ">=8" } }, + "node_modules/@jest/core/node_modules/pretty-format": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, "node_modules/@jest/diff-sequences": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/diff-sequences/-/diff-sequences-30.3.0.tgz", - "integrity": "sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==", + "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", + "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==", "dev": true, "license": "MIT", "engines": { @@ -1465,39 +1561,39 @@ } }, "node_modules/@jest/environment": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/environment/-/environment-30.3.0.tgz", - "integrity": "sha512-SlLSF4Be735yQXyh2+mctBOzNDx5s5uLv88/j8Qn1wH679PDcwy67+YdADn8NJnGjzlXtN62asGH/T4vWOkfaw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.2.0.tgz", + "integrity": "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==", "dev": true, "license": "MIT", "dependencies": { - "@jest/fake-timers": "30.3.0", - "@jest/types": "30.3.0", + "@jest/fake-timers": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "jest-mock": "30.3.0" + "jest-mock": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/expect/-/expect-30.3.0.tgz", - "integrity": "sha512-76Nlh4xJxk2D/9URCn3wFi98d2hb19uWE1idLsTt2ywhvdOldbw3S570hBgn25P4ICUZ/cBjybrBex2g17IDbg==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.2.0.tgz", + "integrity": "sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==", "dev": true, "license": "MIT", "dependencies": { - "expect": "30.3.0", - "jest-snapshot": "30.3.0" + "expect": "30.2.0", + "jest-snapshot": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/expect-utils/-/expect-utils-30.3.0.tgz", - "integrity": "sha512-j0+W5iQQ8hBh7tHZkTQv3q2Fh/M7Je72cIsYqC4OaktgtO7v1So9UTjp6uPBHIaB6beoF/RRsCgMJKvti0wADA==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.2.0.tgz", + "integrity": "sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==", "dev": true, "license": "MIT", "dependencies": { @@ -1508,18 +1604,18 @@ } }, "node_modules/@jest/fake-timers": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/fake-timers/-/fake-timers-30.3.0.tgz", - "integrity": "sha512-WUQDs8SOP9URStX1DzhD425CqbN/HxUYCTwVrT8sTVBfMvFqYt/s61EK5T05qnHu0po6RitXIvP9otZxYDzTGQ==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.2.0.tgz", + "integrity": "sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.3.0", - "@sinonjs/fake-timers": "^15.0.0", + "@jest/types": "30.2.0", + "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", - "jest-message-util": "30.3.0", - "jest-mock": "30.3.0", - "jest-util": "30.3.0" + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", + "jest-util": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -1527,6 +1623,8 @@ }, "node_modules/@jest/get-type": { "version": "30.1.0", + "resolved": "https://registry.npmjs.org/@jest/get-type/-/get-type-30.1.0.tgz", + "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==", "dev": true, "license": "MIT", "engines": { @@ -1534,16 +1632,16 @@ } }, "node_modules/@jest/globals": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/globals/-/globals-30.3.0.tgz", - "integrity": "sha512-+owLCBBdfpgL3HU+BD5etr1SvbXpSitJK0is1kiYjJxAAJggYMRQz5hSdd5pq1sSggfxPbw2ld71pt4x5wwViA==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.2.0.tgz", + "integrity": "sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.3.0", - "@jest/expect": "30.3.0", - "@jest/types": "30.3.0", - "jest-mock": "30.3.0" + "@jest/environment": "30.2.0", + "@jest/expect": "30.2.0", + "@jest/types": "30.2.0", + "jest-mock": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -1551,6 +1649,8 @@ }, "node_modules/@jest/pattern": { "version": "30.0.1", + "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", + "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", "dev": true, "license": "MIT", "dependencies": { @@ -1562,32 +1662,32 @@ } }, "node_modules/@jest/reporters": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/reporters/-/reporters-30.3.0.tgz", - "integrity": "sha512-a09z89S+PkQnL055bVj8+pe2Caed2PBOaczHcXCykW5ngxX9EWx/1uAwncxc/HiU0oZqfwseMjyhxgRjS49qPw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.2.0.tgz", + "integrity": "sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==", "dev": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "30.3.0", - "@jest/test-result": "30.3.0", - "@jest/transform": "30.3.0", - "@jest/types": "30.3.0", + "@jest/console": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", "@jridgewell/trace-mapping": "^0.3.25", "@types/node": "*", "chalk": "^4.1.2", "collect-v8-coverage": "^1.0.2", "exit-x": "^0.2.2", - "glob": "^10.5.0", + "glob": "^10.3.10", "graceful-fs": "^4.2.11", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^5.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "30.3.0", - "jest-util": "30.3.0", - "jest-worker": "30.3.0", + "jest-message-util": "30.2.0", + "jest-util": "30.2.0", + "jest-worker": "30.2.0", "slash": "^3.0.0", "string-length": "^4.0.2", "v8-to-istanbul": "^9.0.1" @@ -1606,7 +1706,7 @@ }, "node_modules/@jest/reporters/node_modules/@isaacs/cliui": { "version": "8.0.2", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@isaacs/cliui/-/cliui-8.0.2.tgz", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, "license": "ISC", @@ -1624,7 +1724,7 @@ }, "node_modules/@jest/reporters/node_modules/ansi-regex": { "version": "6.2.2", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ansi-regex/-/ansi-regex-6.2.2.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, "license": "MIT", @@ -1637,7 +1737,7 @@ }, "node_modules/@jest/reporters/node_modules/ansi-styles": { "version": "6.2.3", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ansi-styles/-/ansi-styles-6.2.3.tgz", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", @@ -1650,7 +1750,7 @@ }, "node_modules/@jest/reporters/node_modules/glob": { "version": "10.5.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/glob/-/glob-10.5.0.tgz", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, @@ -1672,7 +1772,7 @@ }, "node_modules/@jest/reporters/node_modules/jackspeak": { "version": "3.4.3", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jackspeak/-/jackspeak-3.4.3.tgz", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "license": "BlueOak-1.0.0", @@ -1688,14 +1788,14 @@ }, "node_modules/@jest/reporters/node_modules/lru-cache": { "version": "10.4.3", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/lru-cache/-/lru-cache-10.4.3.tgz", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, "license": "ISC" }, "node_modules/@jest/reporters/node_modules/path-scurry": { "version": "1.11.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/path-scurry/-/path-scurry-1.11.1.tgz", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "license": "BlueOak-1.0.0", @@ -1712,7 +1812,7 @@ }, "node_modules/@jest/reporters/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/string-width/-/string-width-5.1.2.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "license": "MIT", @@ -1730,7 +1830,7 @@ }, "node_modules/@jest/reporters/node_modules/strip-ansi": { "version": "7.2.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/strip-ansi/-/strip-ansi-7.2.0.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", @@ -1746,7 +1846,7 @@ }, "node_modules/@jest/reporters/node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "license": "MIT", @@ -1764,7 +1864,7 @@ }, "node_modules/@jest/schemas": { "version": "30.0.5", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/schemas/-/schemas-30.0.5.tgz", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", "dev": true, "license": "MIT", @@ -1776,13 +1876,13 @@ } }, "node_modules/@jest/snapshot-utils": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/snapshot-utils/-/snapshot-utils-30.3.0.tgz", - "integrity": "sha512-ORbRN9sf5PP82v3FXNSwmO1OTDR2vzR2YTaR+E3VkSBZ8zadQE6IqYdYEeFH1NIkeB2HIGdF02dapb6K0Mj05g==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz", + "integrity": "sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.3.0", + "@jest/types": "30.2.0", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "natural-compare": "^1.4.0" @@ -1793,7 +1893,7 @@ }, "node_modules/@jest/source-map": { "version": "30.0.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/source-map/-/source-map-30.0.1.tgz", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-30.0.1.tgz", "integrity": "sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==", "dev": true, "license": "MIT", @@ -1807,14 +1907,14 @@ } }, "node_modules/@jest/test-result": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/test-result/-/test-result-30.3.0.tgz", - "integrity": "sha512-e/52nJGuD74AKTSe0P4y5wFRlaXP0qmrS17rqOMHeSwm278VyNyXE3gFO/4DTGF9w+65ra3lo3VKj0LBrzmgdQ==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.2.0.tgz", + "integrity": "sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.3.0", - "@jest/types": "30.3.0", + "@jest/console": "30.2.0", + "@jest/types": "30.2.0", "@types/istanbul-lib-coverage": "^2.0.6", "collect-v8-coverage": "^1.0.2" }, @@ -1823,15 +1923,15 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/test-sequencer/-/test-sequencer-30.3.0.tgz", - "integrity": "sha512-dgbWy9b8QDlQeRZcv7LNF+/jFiiYHTKho1xirauZ7kVwY7avjFF6uTT0RqlgudB5OuIPagFdVtfFMosjVbk1eA==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.2.0.tgz", + "integrity": "sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "30.3.0", + "@jest/test-result": "30.2.0", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.3.0", + "jest-haste-map": "30.2.0", "slash": "^3.0.0" }, "engines": { @@ -1839,23 +1939,24 @@ } }, "node_modules/@jest/transform": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/transform/-/transform-30.3.0.tgz", - "integrity": "sha512-TLKY33fSLVd/lKB2YI1pH69ijyUblO/BQvCj566YvnwuzoTNr648iE0j22vRvVNk2HsPwByPxATg3MleS3gf5A==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.2.0.tgz", + "integrity": "sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.27.4", - "@jest/types": "30.3.0", + "@jest/types": "30.2.0", "@jridgewell/trace-mapping": "^0.3.25", "babel-plugin-istanbul": "^7.0.1", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.3.0", + "jest-haste-map": "30.2.0", "jest-regex-util": "30.0.1", - "jest-util": "30.3.0", + "jest-util": "30.2.0", + "micromatch": "^4.0.8", "pirates": "^4.0.7", "slash": "^3.0.0", "write-file-atomic": "^5.0.1" @@ -1865,9 +1966,9 @@ } }, "node_modules/@jest/types": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@jest/types/-/types-30.3.0.tgz", - "integrity": "sha512-JHm87k7bA33hpBngtU8h6UBub/fqqA9uXfw+21j5Hmk7ooPHlboRNxHq0JcMtC+n8VJGP1mcfnD3Mk+XKe1oSw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz", + "integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==", "dev": true, "license": "MIT", "dependencies": { @@ -1902,6 +2003,8 @@ }, "node_modules/@jridgewell/source-map": { "version": "0.3.11", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", + "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", "dev": true, "license": "MIT", "dependencies": { @@ -1923,418 +2026,115 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@lerna/create": { - "version": "9.0.4", + "node_modules/@ltd/j-toml": { + "version": "1.38.0", + "resolved": "https://registry.npmjs.org/@ltd/j-toml/-/j-toml-1.38.0.tgz", + "integrity": "sha512-lYtBcmvHustHQtg4X7TXUu1Xa/tbLC3p2wLvgQI+fWVySguVZJF60Snxijw5EiohumxZbR10kWYFFebh1zotiw==", "dev": true, - "license": "MIT", - "dependencies": { - "@npmcli/arborist": "9.1.6", - "@npmcli/package-json": "7.0.2", - "@npmcli/run-script": "10.0.3", - "@nx/devkit": ">=21.5.2 < 23.0.0", - "@octokit/plugin-enterprise-rest": "6.0.1", - "@octokit/rest": "20.1.2", - "aproba": "2.0.0", - "byte-size": "8.1.1", - "chalk": "4.1.0", - "cmd-shim": "6.0.3", - "color-support": "1.1.3", - "columnify": "1.6.0", - "console-control-strings": "^1.1.0", - "conventional-changelog-core": "5.0.1", - "conventional-recommended-bump": "7.0.1", - "cosmiconfig": "9.0.0", - "dedent": "1.5.3", - "execa": "5.0.0", - "fs-extra": "^11.2.0", - "get-stream": "6.0.0", - "git-url-parse": "14.0.0", - "glob-parent": "6.0.2", - "has-unicode": "2.0.1", - "ini": "^1.3.8", - "init-package-json": "8.2.2", - "inquirer": "12.9.6", - "is-ci": "3.0.1", - "is-stream": "2.0.0", - "js-yaml": "4.1.1", - "libnpmpublish": "11.1.2", - "load-json-file": "6.2.0", - "make-dir": "4.0.0", - "make-fetch-happen": "15.0.2", - "minimatch": "3.0.5", - "multimatch": "5.0.0", - "npm-package-arg": "13.0.1", - "npm-packlist": "10.0.3", - "npm-registry-fetch": "19.1.0", - "nx": ">=21.5.3 < 23.0.0", - "p-map": "4.0.0", - "p-map-series": "2.1.0", - "p-queue": "6.6.2", - "p-reduce": "^2.1.0", - "pacote": "21.0.1", - "pify": "5.0.0", - "read-cmd-shim": "4.0.0", - "resolve-from": "5.0.0", - "rimraf": "^6.1.2", - "semver": "7.7.2", - "set-blocking": "^2.0.0", - "signal-exit": "3.0.7", - "slash": "^3.0.0", - "ssri": "12.0.0", - "string-width": "^4.2.3", - "tar": "7.5.7", - "temp-dir": "1.0.0", - "through": "2.3.8", - "tinyglobby": "0.2.12", - "upath": "2.0.1", - "uuid": "^11.1.0", - "validate-npm-package-license": "3.0.4", - "validate-npm-package-name": "6.0.2", - "wide-align": "1.1.5", - "write-file-atomic": "5.0.1", - "write-pkg": "4.0.0", - "yargs": "17.7.2", - "yargs-parser": "21.1.1" - }, - "engines": { - "node": "^20.19.0 || ^22.12.0 || >=24.0.0" - } + "license": "LGPL-3.0" }, - "node_modules/@lerna/create/node_modules/brace-expansion": { - "version": "1.1.12", + "node_modules/@microsoft/tsdoc": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.16.0.tgz", + "integrity": "sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.18.0.tgz", + "integrity": "sha512-8N/vClYyfOH+l4fLkkr9+myAoR6M7akc8ntBJ4DJdWH2b09uVfr71+LTMpNyG19fNqWDg8KEDZhx5wxuqHyGjw==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@microsoft/tsdoc": "0.16.0", + "ajv": "~8.12.0", + "jju": "~1.4.0", + "resolve": "~1.22.2" } }, - "node_modules/@lerna/create/node_modules/chalk": { - "version": "4.1.0", + "node_modules/@microsoft/tsdoc-config/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@lerna/create/node_modules/cliui": { - "version": "8.0.1", + "node_modules/@microsoft/tsdoc-config/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } + "license": "MIT" }, - "node_modules/@lerna/create/node_modules/dedent": { - "version": "1.5.3", + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", "dev": true, "license": "MIT", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" } }, - "node_modules/@lerna/create/node_modules/execa": { - "version": "5.0.0", - "dev": true, + "node_modules/@noble/curves": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-2.0.1.tgz", + "integrity": "sha512-vs1Az2OOTBiP4q0pwjW5aF0xp9n4MxVrmkFBxc6EKZc6ddYx5gaZiAsZoq0uRRXWbi3AT/sBqn05eRPtn1JCPw==", "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "@noble/hashes": "2.0.1" }, "engines": { - "node": ">=10" + "node": ">= 20.19.0" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/@lerna/create/node_modules/fdir": { - "version": "6.5.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@lerna/create/node_modules/get-stream": { - "version": "6.0.0", - "dev": true, + "node_modules/@noble/hashes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.0.1.tgz", + "integrity": "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==", "license": "MIT", "engines": { - "node": ">=10" + "node": ">= 20.19.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@lerna/create/node_modules/glob": { - "version": "13.0.5", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "dependencies": { - "minimatch": "^10.2.1", - "minipass": "^7.1.2", - "path-scurry": "^2.0.0" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 8" } }, - "node_modules/@lerna/create/node_modules/glob/node_modules/balanced-match": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "jackspeak": "^4.2.3" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@lerna/create/node_modules/glob/node_modules/brace-expansion": { - "version": "5.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@lerna/create/node_modules/glob/node_modules/minimatch": { - "version": "10.2.1", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@lerna/create/node_modules/is-stream": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@lerna/create/node_modules/minimatch": { - "version": "3.0.5", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@lerna/create/node_modules/picomatch": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/@lerna/create/node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@lerna/create/node_modules/rimraf": { - "version": "6.1.3", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "glob": "^13.0.3", - "package-json-from-dist": "^1.0.1" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@lerna/create/node_modules/semver": { - "version": "7.7.2", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@lerna/create/node_modules/tinyglobby": { - "version": "0.2.12", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.4.3", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/@lerna/create/node_modules/yargs": { - "version": "17.7.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@lerna/create/node_modules/yargs-parser": { - "version": "21.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/@microsoft/tsdoc": { - "version": "0.16.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@microsoft/tsdoc-config": { - "version": "0.18.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@microsoft/tsdoc": "0.16.0", - "ajv": "~8.12.0", - "jju": "~1.4.0", - "resolve": "~1.22.2" - } - }, - "node_modules/@microsoft/tsdoc-config/node_modules/ajv": { - "version": "8.12.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@microsoft/tsdoc-config/node_modules/json-schema-traverse": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@noble/curves": { - "version": "2.2.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@noble/curves/-/curves-2.2.0.tgz", - "integrity": "sha512-T/BoHgFXirb0ENSPBquzX0rcjXeM6Lo892a2jlYJkqk83LqZx0l1Of7DzlKJ6jkpvMrkHSnAcgb5JegL8SeIkQ==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "2.2.0" - }, - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/hashes": { - "version": "2.2.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@noble/hashes/-/hashes-2.2.0.tgz", - "integrity": "sha512-IYqDGiTXab6FniAgnSdZwgWbomxpy9FtYvLKs7wCUs2a8RkITG+DFGO1DM9cr+E3/RgADRpFjrKVaJ1z6sjtEg==", - "license": "MIT", - "engines": { - "node": ">= 20.19.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, "license": "MIT", "engines": { @@ -2343,6 +2143,8 @@ }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, "license": "MIT", "dependencies": { @@ -2355,6 +2157,8 @@ }, "node_modules/@npmcli/agent": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-4.0.0.tgz", + "integrity": "sha512-kAQTcEN9E8ERLVg5AsGwLNoFb+oEG6engbqAU2P43gD4JEIkNGMHdVQ096FsOAAYpZPB0RSt0zgInKIAS1l5QA==", "dev": true, "license": "ISC", "dependencies": { @@ -2370,6 +2174,8 @@ }, "node_modules/@npmcli/agent/node_modules/lru-cache": { "version": "11.2.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", + "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -2378,6 +2184,8 @@ }, "node_modules/@npmcli/arborist": { "version": "9.1.6", + "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-9.1.6.tgz", + "integrity": "sha512-c5Pr3EG8UP5ollkJy2x+UdEQC5sEHe3H9whYn6hb2HJimAKS4zmoJkx5acCiR/g4P38RnCSMlsYQyyHnKYeLvQ==", "dev": true, "license": "ISC", "dependencies": { @@ -2423,29 +2231,32 @@ } }, "node_modules/@npmcli/arborist/node_modules/balanced-match": { - "version": "4.0.2", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, "license": "MIT", - "dependencies": { - "jackspeak": "^4.2.3" - }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@npmcli/arborist/node_modules/brace-expansion": { - "version": "5.0.2", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@npmcli/arborist/node_modules/lru-cache": { - "version": "11.2.6", + "version": "11.2.7", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", + "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -2453,14 +2264,16 @@ } }, "node_modules/@npmcli/arborist/node_modules/minimatch": { - "version": "10.2.1", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.2" + "brace-expansion": "^5.0.5" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2468,6 +2281,8 @@ }, "node_modules/@npmcli/arborist/node_modules/npm-bundled": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-5.0.0.tgz", + "integrity": "sha512-JLSpbzh6UUXIEoqPsYBvVNVmyrjVZ1fzEFbqxKkTJQkWBO3xFzFT+KDnSKQWwOQNbuWRwt5LSD6HOTLGIWzfrw==", "dev": true, "license": "ISC", "dependencies": { @@ -2479,6 +2294,8 @@ }, "node_modules/@npmcli/arborist/node_modules/npm-normalize-package-bin": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-5.0.0.tgz", + "integrity": "sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==", "dev": true, "license": "ISC", "engines": { @@ -2486,10 +2303,13 @@ } }, "node_modules/@npmcli/arborist/node_modules/pacote": { - "version": "21.3.1", + "version": "21.5.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.5.0.tgz", + "integrity": "sha512-VtZ0SB8mb5Tzw3dXDfVAIjhyVKUHZkS/ZH9/5mpKenwC9sFOXNI0JI7kEF7IMkwOnsWMFrvAZHzx1T5fmrp9FQ==", "dev": true, "license": "ISC", "dependencies": { + "@gar/promise-retry": "^1.0.0", "@npmcli/git": "^7.0.0", "@npmcli/installed-package-contents": "^4.0.0", "@npmcli/package-json": "^7.0.0", @@ -2503,7 +2323,6 @@ "npm-pick-manifest": "^11.0.1", "npm-registry-fetch": "^19.0.0", "proc-log": "^6.0.0", - "promise-retry": "^2.0.1", "sigstore": "^4.0.0", "ssri": "^13.0.0", "tar": "^7.4.3" @@ -2517,6 +2336,8 @@ }, "node_modules/@npmcli/arborist/node_modules/pacote/node_modules/@npmcli/installed-package-contents": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-4.0.0.tgz", + "integrity": "sha512-yNyAdkBxB72gtZ4GrwXCM0ZUedo9nIbOMKfGjt6Cu6DXf0p8y1PViZAKDC8q8kv/fufx0WTjRBdSlyrvnP7hmA==", "dev": true, "license": "ISC", "dependencies": { @@ -2532,6 +2353,8 @@ }, "node_modules/@npmcli/arborist/node_modules/pacote/node_modules/proc-log": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", "engines": { @@ -2540,6 +2363,8 @@ }, "node_modules/@npmcli/arborist/node_modules/pacote/node_modules/ssri": { "version": "13.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.1.tgz", + "integrity": "sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==", "dev": true, "license": "ISC", "dependencies": { @@ -2551,6 +2376,8 @@ }, "node_modules/@npmcli/fs": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-4.0.0.tgz", + "integrity": "sha512-/xGlezI6xfGO9NwuJlnwz/K14qD1kCSAGtacBHnGzeAIuJGazcp45KP5NuyARXoKb7cwulAGWVsbeSxdG/cb0Q==", "dev": true, "license": "ISC", "dependencies": { @@ -2561,16 +2388,18 @@ } }, "node_modules/@npmcli/git": { - "version": "7.0.1", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-7.0.2.tgz", + "integrity": "sha512-oeolHDjExNAJAnlYP2qzNjMX/Xi9bmu78C9dIGr4xjobrSKbuMYCph8lTzn4vnW3NjIqVmw/f8BCfouqyJXlRg==", "dev": true, "license": "ISC", "dependencies": { + "@gar/promise-retry": "^1.0.0", "@npmcli/promise-spawn": "^9.0.0", "ini": "^6.0.0", "lru-cache": "^11.2.1", "npm-pick-manifest": "^11.0.1", "proc-log": "^6.0.0", - "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^6.0.0" }, @@ -2580,6 +2409,8 @@ }, "node_modules/@npmcli/git/node_modules/ini": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz", + "integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==", "dev": true, "license": "ISC", "engines": { @@ -2588,6 +2419,8 @@ }, "node_modules/@npmcli/git/node_modules/isexe": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -2595,7 +2428,9 @@ } }, "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "11.2.6", + "version": "11.2.7", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz", + "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -2604,6 +2439,8 @@ }, "node_modules/@npmcli/git/node_modules/proc-log": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", "engines": { @@ -2612,6 +2449,8 @@ }, "node_modules/@npmcli/git/node_modules/which": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "dev": true, "license": "ISC", "dependencies": { @@ -2626,6 +2465,8 @@ }, "node_modules/@npmcli/installed-package-contents": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-3.0.0.tgz", + "integrity": "sha512-fkxoPuFGvxyrH+OQzyTkX2LUEamrF4jZSmxjAtPPHHGO0dqsQ8tTKjnIS8SAnPHdk2I03BDtSMR5K/4loKg79Q==", "dev": true, "license": "ISC", "dependencies": { @@ -2641,6 +2482,8 @@ }, "node_modules/@npmcli/map-workspaces": { "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-5.0.3.tgz", + "integrity": "sha512-o2grssXo1e774E5OtEwwrgoszYRh0lqkJH+Pb9r78UcqdGJRDRfhpM8DvZPjzNLLNYeD/rNbjOKM3Ss5UABROw==", "dev": true, "license": "ISC", "dependencies": { @@ -2655,6 +2498,8 @@ }, "node_modules/@npmcli/map-workspaces/node_modules/@npmcli/name-from-folder": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-4.0.0.tgz", + "integrity": "sha512-qfrhVlOSqmKM8i6rkNdZzABj8MKEITGFAY+4teqBziksCQAOLutiAxM1wY2BKEd8KjUSpWmWCYxvXr0y4VTlPg==", "dev": true, "license": "ISC", "engines": { @@ -2662,52 +2507,57 @@ } }, "node_modules/@npmcli/map-workspaces/node_modules/balanced-match": { - "version": "4.0.2", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, "license": "MIT", - "dependencies": { - "jackspeak": "^4.2.3" - }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": { - "version": "5.0.2", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@npmcli/map-workspaces/node_modules/glob": { - "version": "13.0.5", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "minimatch": "^10.2.1", - "minipass": "^7.1.2", - "path-scurry": "^2.0.0" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { - "version": "10.2.1", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.2" + "brace-expansion": "^5.0.5" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2715,6 +2565,8 @@ }, "node_modules/@npmcli/metavuln-calculator": { "version": "9.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-9.0.3.tgz", + "integrity": "sha512-94GLSYhLXF2t2LAC7pDwLaM4uCARzxShyAQKsirmlNcpidH89VA4/+K1LbJmRMgz5gy65E/QBBWQdUvGLe2Frg==", "dev": true, "license": "ISC", "dependencies": { @@ -2730,6 +2582,8 @@ }, "node_modules/@npmcli/metavuln-calculator/node_modules/json-parse-even-better-errors": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-5.0.0.tgz", + "integrity": "sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==", "dev": true, "license": "MIT", "engines": { @@ -2738,6 +2592,8 @@ }, "node_modules/@npmcli/metavuln-calculator/node_modules/proc-log": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", "engines": { @@ -2746,6 +2602,8 @@ }, "node_modules/@npmcli/name-from-folder": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-3.0.0.tgz", + "integrity": "sha512-61cDL8LUc9y80fXn+lir+iVt8IS0xHqEKwPu/5jCjxQTVoSCmkXvw4vbMrzAMtmghz3/AkiBjhHkDKUH+kf7kA==", "dev": true, "license": "ISC", "engines": { @@ -2754,6 +2612,8 @@ }, "node_modules/@npmcli/node-gyp": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-4.0.0.tgz", + "integrity": "sha512-+t5DZ6mO/QFh78PByMq1fGSAub/agLJZDRfJRMeOSNCt8s9YVlTjmGpIPwPhvXTGUIJk+WszlT0rQa1W33yzNA==", "dev": true, "license": "ISC", "engines": { @@ -2762,6 +2622,8 @@ }, "node_modules/@npmcli/package-json": { "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-7.0.2.tgz", + "integrity": "sha512-0ylN3U5htO1SJTmy2YI78PZZjLkKUGg7EKgukb2CRi0kzyoDr0cfjHAzi7kozVhj2V3SxN1oyKqZ2NSo40z00g==", "dev": true, "license": "ISC", "dependencies": { @@ -2778,29 +2640,33 @@ } }, "node_modules/@npmcli/package-json/node_modules/balanced-match": { - "version": "4.0.2", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, "license": "MIT", - "dependencies": { - "jackspeak": "^4.2.3" - }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@npmcli/package-json/node_modules/brace-expansion": { - "version": "5.0.2", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@npmcli/package-json/node_modules/glob": { "version": "11.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", + "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -2823,6 +2689,8 @@ }, "node_modules/@npmcli/package-json/node_modules/json-parse-even-better-errors": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-5.0.0.tgz", + "integrity": "sha512-ZF1nxZ28VhQouRWhUcVlUIN3qwSgPuswK05s/HIaoetAoE/9tngVmCHjSxmSQPav1nd+lPtTL0YZ/2AFdR/iYQ==", "dev": true, "license": "MIT", "engines": { @@ -2830,14 +2698,16 @@ } }, "node_modules/@npmcli/package-json/node_modules/minimatch": { - "version": "10.2.1", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.2" + "brace-expansion": "^5.0.5" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2845,6 +2715,8 @@ }, "node_modules/@npmcli/package-json/node_modules/proc-log": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", "engines": { @@ -2853,6 +2725,8 @@ }, "node_modules/@npmcli/promise-spawn": { "version": "9.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-9.0.1.tgz", + "integrity": "sha512-OLUaoqBuyxeTqUvjA3FZFiXUfYC1alp3Sa99gW3EUDz3tZ3CbXDdcZ7qWKBzicrJleIgucoWamWH1saAmH/l2Q==", "dev": true, "license": "ISC", "dependencies": { @@ -2864,6 +2738,8 @@ }, "node_modules/@npmcli/promise-spawn/node_modules/isexe": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -2872,6 +2748,8 @@ }, "node_modules/@npmcli/promise-spawn/node_modules/which": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "dev": true, "license": "ISC", "dependencies": { @@ -2886,6 +2764,8 @@ }, "node_modules/@npmcli/query": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/query/-/query-4.0.1.tgz", + "integrity": "sha512-4OIPFb4weUUwkDXJf4Hh1inAn8neBGq3xsH4ZsAaN6FK3ldrFkH7jSpCc7N9xesi0Sp+EBXJ9eGMDrEww2Ztqw==", "dev": true, "license": "ISC", "dependencies": { @@ -2897,6 +2777,8 @@ }, "node_modules/@npmcli/redact": { "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-3.2.2.tgz", + "integrity": "sha512-7VmYAmk4csGv08QzrDKScdzn11jHPFGyqJW39FyPgPuAp3zIaUmuCo1yxw9aGs+NEJuTGQ9Gwqpt93vtJubucg==", "dev": true, "license": "ISC", "engines": { @@ -2905,6 +2787,8 @@ }, "node_modules/@npmcli/run-script": { "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-10.0.3.tgz", + "integrity": "sha512-ER2N6itRkzWbbtVmZ9WKaWxVlKlOeBFF1/7xx+KA5J1xKa4JjUwBdb6tDpk0v1qA+d+VDwHI9qmLcXSWcmi+Rw==", "dev": true, "license": "ISC", "dependencies": { @@ -2921,6 +2805,8 @@ }, "node_modules/@npmcli/run-script/node_modules/@npmcli/node-gyp": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-5.0.0.tgz", + "integrity": "sha512-uuG5HZFXLfyFKqg8QypsmgLQW7smiRjVc45bqD/ofZZcR/uxEjgQU8qDPv0s9TEeMUiAAU/GC5bR6++UdTirIQ==", "dev": true, "license": "ISC", "engines": { @@ -2929,6 +2815,8 @@ }, "node_modules/@npmcli/run-script/node_modules/isexe": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -2937,6 +2825,8 @@ }, "node_modules/@npmcli/run-script/node_modules/proc-log": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", "engines": { @@ -2945,6 +2835,8 @@ }, "node_modules/@npmcli/run-script/node_modules/which": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "dev": true, "license": "ISC", "dependencies": { @@ -2958,14 +2850,16 @@ } }, "node_modules/@nx/devkit": { - "version": "22.5.1", + "version": "22.6.4", + "resolved": "https://registry.npmjs.org/@nx/devkit/-/devkit-22.6.4.tgz", + "integrity": "sha512-4VRND4Hl+zWSPvs68cJn0PUoxi1ADS1iqXy3VJNtUlVqjE7Y5LtZxKUC05w5OKP+2jMfU3viPTZIGwHnHuIaYA==", "dev": true, "license": "MIT", "dependencies": { "@zkochan/js-yaml": "0.0.7", "ejs": "^3.1.7", "enquirer": "~2.3.6", - "minimatch": "10.1.1", + "minimatch": "10.2.4", "semver": "^7.6.3", "tslib": "^2.3.0", "yargs-parser": "21.1.1" @@ -2974,42 +2868,199 @@ "nx": ">= 21 <= 23 || ^22.0.0-0" } }, - "node_modules/@nx/devkit/node_modules/minimatch": { - "version": "10.1.1", + "node_modules/@nx/devkit/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@nx/devkit/node_modules/brace-expansion": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/@nx/devkit/node_modules/minimatch": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@nx/devkit/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/@nx/nx-darwin-arm64": { + "version": "22.6.4", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-arm64/-/nx-darwin-arm64-22.6.4.tgz", + "integrity": "sha512-KuUQ9t8pxIO+Px1kbjA0XDLOU6XoAsijl0ssIMRYN1w5ly+0k/KglWt7qgwDockkaLRHkQ3YSR8I2LJXJE+Vig==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@nx/nx-darwin-x64": { + "version": "22.6.4", + "resolved": "https://registry.npmjs.org/@nx/nx-darwin-x64/-/nx-darwin-x64-22.6.4.tgz", + "integrity": "sha512-FB2XL2+ixbRI1fddz4oW+9MhoJASoTD8Ai4q5+B1OUPftgarIPLxaqI8TWba30Bos2AiYDofMJPf9uhBmLDH5Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@nx/nx-freebsd-x64": { + "version": "22.6.4", + "resolved": "https://registry.npmjs.org/@nx/nx-freebsd-x64/-/nx-freebsd-x64-22.6.4.tgz", + "integrity": "sha512-qNsXhlflc77afjcRKCn7bqI8l/HPEjKhQRFs8wfKbAfNw3XEASc0EZtBV/TStLGV6PEZQldVBaId5FBMp8GW6Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@nx/nx-linux-arm-gnueabihf": { + "version": "22.6.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-22.6.4.tgz", + "integrity": "sha512-rjfnii0xGe8SQqsO/DDHeJSjbqp2H5fOEgZlaYXDGOwQeLZ1TQplEdx8hyI/ErAUwVO3YHnzoMtmachBQOlspw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@nx/nx-linux-arm64-gnu": { + "version": "22.6.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-22.6.4.tgz", + "integrity": "sha512-x6Zim1STewCXuHBCgoy2TO0586UlwH4RNCobn0mTiPd1jt7nU+fNqo3SpY8RzY1KmBfgcO48BBrfykPE9YWMpg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@nx/nx-linux-arm64-musl": { + "version": "22.6.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-22.6.4.tgz", + "integrity": "sha512-vYOqdgXIhtHFWdtnonp/jFfmfkyNPTu1JEdXuJpSxwUQdV2dWqS/l3HVPVWHXDrVKofPafK3M72jMvoWoaOQ6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@nx/nx-linux-x64-gnu": { + "version": "22.6.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-22.6.4.tgz", + "integrity": "sha512-UfWUDlOzlvQNVa1mnqOFxzvUwoGfM2o9ruhwYRoFm3XJbVYnjINyQsdcHwwDJItJP04LZzLPxA1+O8sU+Oqg6A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@nx/nx-linux-x64-musl": { + "version": "22.6.4", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-22.6.4.tgz", + "integrity": "sha512-dwXpcyin4ScD5gH9FdhiNnOqFXclXLFBDTyRCEOlRUbOPayF9YEcH0PPIf9uWmwP3tshhAdr5sg9DLN+r7M3xg==", + "cpu": [ + "x64" + ], "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@nx/devkit/node_modules/yargs-parser": { - "version": "21.1.1", + "node_modules/@nx/nx-win32-arm64-msvc": { + "version": "22.6.4", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-22.6.4.tgz", + "integrity": "sha512-KqjJbFWhKJaKjET3Ep8hltXPizO0EstF4yfmp3oepWVn11poagc2MT1pf/tnRf6cdD88wd0bmw/83Ng6WUQ3Uw==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@nx/nx-darwin-arm64": { - "version": "22.5.1", + "node_modules/@nx/nx-win32-x64-msvc": { + "version": "22.6.4", + "resolved": "https://registry.npmjs.org/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-22.6.4.tgz", + "integrity": "sha512-CIL9m6uilGGr/eU+41/+aVWUnEcq+j1EDynUX2A4InLTbAN0ylte4Af+72mvipNiqJgDkjKaNzOCQDnp8QBjEQ==", "cpu": [ - "arm64" + "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "darwin" + "win32" ] }, "node_modules/@octokit/auth-token": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", + "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", "dev": true, "license": "MIT", "engines": { @@ -3018,6 +3069,8 @@ }, "node_modules/@octokit/core": { "version": "5.2.2", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.2.tgz", + "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==", "dev": true, "license": "MIT", "dependencies": { @@ -3035,6 +3088,8 @@ }, "node_modules/@octokit/endpoint": { "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.6.tgz", + "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==", "dev": true, "license": "MIT", "dependencies": { @@ -3047,6 +3102,8 @@ }, "node_modules/@octokit/graphql": { "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.1.tgz", + "integrity": "sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==", "dev": true, "license": "MIT", "dependencies": { @@ -3060,16 +3117,22 @@ }, "node_modules/@octokit/openapi-types": { "version": "24.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", "dev": true, "license": "MIT" }, "node_modules/@octokit/plugin-enterprise-rest": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz", + "integrity": "sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==", "dev": true, "license": "MIT" }, "node_modules/@octokit/plugin-paginate-rest": { "version": "11.4.4-cjs.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.4-cjs.2.tgz", + "integrity": "sha512-2dK6z8fhs8lla5PaOTgqfCGBxgAv/le+EhPs27KklPhm1bKObpu6lXzwfUEQ16ajXzqNrKMujsFyo9K2eaoISw==", "dev": true, "license": "MIT", "dependencies": { @@ -3084,6 +3147,8 @@ }, "node_modules/@octokit/plugin-request-log": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz", + "integrity": "sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==", "dev": true, "license": "MIT", "engines": { @@ -3095,6 +3160,8 @@ }, "node_modules/@octokit/plugin-rest-endpoint-methods": { "version": "13.3.2-cjs.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.2-cjs.1.tgz", + "integrity": "sha512-VUjIjOOvF2oELQmiFpWA1aOPdawpyaCUqcEBc/UOUnj3Xp6DJGrJ1+bjUIIDzdHjnFNO6q57ODMfdEZnoBkCwQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3109,6 +3176,8 @@ }, "node_modules/@octokit/request": { "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.1.tgz", + "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==", "dev": true, "license": "MIT", "dependencies": { @@ -3123,6 +3192,8 @@ }, "node_modules/@octokit/request-error": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.1.tgz", + "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==", "dev": true, "license": "MIT", "dependencies": { @@ -3136,6 +3207,8 @@ }, "node_modules/@octokit/rest": { "version": "20.1.2", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.1.2.tgz", + "integrity": "sha512-GmYiltypkHHtihFwPRxlaorG5R9VAHuk/vbszVoRTGXnAsY60wYLkh/E2XiFmdZmqrisw+9FaazS1i5SbdWYgA==", "dev": true, "license": "MIT", "dependencies": { @@ -3150,6 +3223,8 @@ }, "node_modules/@octokit/types": { "version": "13.10.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", "dev": true, "license": "MIT", "dependencies": { @@ -3158,7 +3233,7 @@ }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, "license": "MIT", @@ -3197,7 +3272,7 @@ }, "node_modules/@scure/bip32": { "version": "2.0.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@scure/bip32/-/bip32-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-2.0.1.tgz", "integrity": "sha512-4Md1NI5BzoVP+bhyJaY3K6yMesEFzNS1sE/cP+9nuvE7p/b0kx9XbpDHHFl8dHtufcbdHRUUQdRqLIPHN/s7yA==", "license": "MIT", "dependencies": { @@ -3211,7 +3286,7 @@ }, "node_modules/@scure/bip32/node_modules/@scure/base": { "version": "2.0.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@scure/base/-/base-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-2.0.0.tgz", "integrity": "sha512-3E1kpuZginKkek01ovG8krQ0Z44E3DHPjc5S2rjJw9lZn3KSQOs8S7wqikF/AH7iRanHypj85uGyxk0XAyC37w==", "license": "MIT", "funding": { @@ -3220,7 +3295,7 @@ }, "node_modules/@scure/bip39": { "version": "2.0.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@scure/bip39/-/bip39-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-2.0.1.tgz", "integrity": "sha512-PsxdFj/d2AcJcZDX1FXN3dDgitDDTmwf78rKZq1a6c1P1Nan1X/Sxc7667zU3U+AN60g7SxxP0YCVw2H/hBycg==", "license": "MIT", "dependencies": { @@ -3233,7 +3308,7 @@ }, "node_modules/@scure/bip39/node_modules/@scure/base": { "version": "2.0.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@scure/base/-/base-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-2.0.0.tgz", "integrity": "sha512-3E1kpuZginKkek01ovG8krQ0Z44E3DHPjc5S2rjJw9lZn3KSQOs8S7wqikF/AH7iRanHypj85uGyxk0XAyC37w==", "license": "MIT", "funding": { @@ -3242,6 +3317,8 @@ }, "node_modules/@shikijs/engine-oniguruma": { "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.19.0.tgz", + "integrity": "sha512-1hRxtYIJfJSZeM5ivbUXv9hcJP3PWRo5prG/V2sWwiubUKTa+7P62d2qxCW8jiVFX4pgRHhnHNp+qeR7Xl+6kg==", "dev": true, "license": "MIT", "dependencies": { @@ -3251,6 +3328,8 @@ }, "node_modules/@shikijs/langs": { "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.19.0.tgz", + "integrity": "sha512-dBMFzzg1QiXqCVQ5ONc0z2ebyoi5BKz+MtfByLm0o5/nbUu3Iz8uaTCa5uzGiscQKm7lVShfZHU1+OG3t5hgwg==", "dev": true, "license": "MIT", "dependencies": { @@ -3259,6 +3338,8 @@ }, "node_modules/@shikijs/themes": { "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.19.0.tgz", + "integrity": "sha512-H36qw+oh91Y0s6OlFfdSuQ0Ld+5CgB/VE6gNPK+Hk4VRbVG/XQgkjnt4KzfnnoO6tZPtKJKHPjwebOCfjd6F8A==", "dev": true, "license": "MIT", "dependencies": { @@ -3267,6 +3348,8 @@ }, "node_modules/@shikijs/types": { "version": "3.19.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.19.0.tgz", + "integrity": "sha512-Z2hdeEQlzuntf/BZpFG8a+Fsw9UVXdML7w0o3TgSXV3yNESGon+bs9ITkQb3Ki7zxoXOOu5oJWqZ2uto06V9iQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3276,11 +3359,15 @@ }, "node_modules/@shikijs/vscode-textmate": { "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", "dev": true, "license": "MIT" }, "node_modules/@sigstore/bundle": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-4.0.0.tgz", + "integrity": "sha512-NwCl5Y0V6Di0NexvkTqdoVfmjTaQwoLM236r89KEojGmq/jMls8S+zb7yOwAPdXvbwfKDlP+lmXgAL4vKSQT+A==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3291,7 +3378,9 @@ } }, "node_modules/@sigstore/core": { - "version": "3.1.0", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-3.2.0.tgz", + "integrity": "sha512-kxHrDQ9YgfrWUSXU0cjsQGv8JykOFZQ9ErNKbFPWzk3Hgpwu8x2hHrQ9IdA8yl+j9RTLTC3sAF3Tdq1IQCP4oA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -3300,6 +3389,8 @@ }, "node_modules/@sigstore/protobuf-specs": { "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.5.0.tgz", + "integrity": "sha512-MM8XIwUjN2bwvCg1QvrMtbBmpcSHrkhFSCu1D11NyPvDQ25HEc4oG5/OcQfd/Tlf/OxmKWERDj0zGE23jQaMwA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -3307,27 +3398,61 @@ } }, "node_modules/@sigstore/sign": { - "version": "4.1.0", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-4.1.1.tgz", + "integrity": "sha512-Hf4xglukg0XXQ2RiD5vSoLjdPe8OBUPA8XeVjUObheuDcWdYWrnH/BNmxZCzkAy68MzmNCxXLeurJvs6hcP2OQ==", "dev": true, "license": "Apache-2.0", "dependencies": { + "@gar/promise-retry": "^1.0.2", "@sigstore/bundle": "^4.0.0", - "@sigstore/core": "^3.1.0", + "@sigstore/core": "^3.2.0", "@sigstore/protobuf-specs": "^0.5.0", - "make-fetch-happen": "^15.0.3", - "proc-log": "^6.1.0", - "promise-retry": "^2.0.1" + "make-fetch-happen": "^15.0.4", + "proc-log": "^6.1.0" }, "engines": { "node": "^20.17.0 || >=22.9.0" } }, + "node_modules/@sigstore/sign/node_modules/@npmcli/redact": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-4.0.0.tgz", + "integrity": "sha512-gOBg5YHMfZy+TfHArfVogwgfBeQnKbbGo3pSUyK/gSI0AVu+pEiDVcKlQb0D8Mg1LNRZILZ6XG8I5dJ4KuAd9Q==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, + "node_modules/@sigstore/sign/node_modules/iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/@sigstore/sign/node_modules/make-fetch-happen": { - "version": "15.0.3", + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.5.tgz", + "integrity": "sha512-uCbIa8jWWmQZt4dSnEStkVC6gdakiinAm4PiGsywIkguF0eWMdcjDz0ECYhUolFU3pFLOev9VNPCEygydXnddg==", "dev": true, "license": "ISC", "dependencies": { + "@gar/promise-retry": "^1.0.0", "@npmcli/agent": "^4.0.0", + "@npmcli/redact": "^4.0.0", "cacache": "^20.0.1", "http-cache-semantics": "^4.1.1", "minipass": "^7.0.2", @@ -3336,7 +3461,6 @@ "minipass-pipeline": "^1.2.4", "negotiator": "^1.0.0", "proc-log": "^6.0.0", - "promise-retry": "^2.0.1", "ssri": "^13.0.0" }, "engines": { @@ -3344,7 +3468,9 @@ } }, "node_modules/@sigstore/sign/node_modules/minipass-fetch": { - "version": "5.0.1", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-5.0.2.tgz", + "integrity": "sha512-2d0q2a8eCi2IRg/IGubCNRJoYbA1+YPXAzQVRFmB45gdGZafyivnZ5YSEfo3JikbjGxOdntGFvBQGqaSMXlAFQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3356,11 +3482,13 @@ "node": "^20.17.0 || >=22.9.0" }, "optionalDependencies": { - "encoding": "^0.1.13" + "iconv-lite": "^0.7.2" } }, "node_modules/@sigstore/sign/node_modules/minipass-sized": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-2.0.0.tgz", + "integrity": "sha512-zSsHhto5BcUVM2m1LurnXY6M//cGhVaegT71OfOXoprxT6o780GZd792ea6FfrQkuU4usHZIUczAQMRUE2plzA==", "dev": true, "license": "ISC", "dependencies": { @@ -3372,6 +3500,8 @@ }, "node_modules/@sigstore/sign/node_modules/proc-log": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", "engines": { @@ -3380,6 +3510,8 @@ }, "node_modules/@sigstore/sign/node_modules/ssri": { "version": "13.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.1.tgz", + "integrity": "sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==", "dev": true, "license": "ISC", "dependencies": { @@ -3390,7 +3522,9 @@ } }, "node_modules/@sigstore/tuf": { - "version": "4.0.1", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-4.0.2.tgz", + "integrity": "sha512-TCAzTy0xzdP79EnxSjq9KQ3eaR7+FmudLC6eRKknVKZbV7ZNlGLClAAQb/HMNJ5n2OBNk2GT1tEmU0xuPr+SLQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3403,6 +3537,8 @@ }, "node_modules/@sigstore/verify": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-3.1.0.tgz", + "integrity": "sha512-mNe0Iigql08YupSOGv197YdHpPPr+EzDZmfCgMc7RPNaZTw5aLN01nBl6CHJOh3BGtnMIj83EeN4butBchc8Ag==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -3416,14 +3552,14 @@ }, "node_modules/@sinclair/typebox": { "version": "0.34.49", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@sinclair/typebox/-/typebox-0.34.49.tgz", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.49.tgz", "integrity": "sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==", "dev": true, "license": "MIT" }, "node_modules/@sinonjs/commons": { "version": "3.0.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@sinonjs/commons/-/commons-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, "license": "BSD-3-Clause", @@ -3432,9 +3568,9 @@ } }, "node_modules/@sinonjs/fake-timers": { - "version": "15.3.2", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@sinonjs/fake-timers/-/fake-timers-15.3.2.tgz", - "integrity": "sha512-mrn35Jl2pCpns+mE3HaZa1yPN5EYCRgiMI+135COjr2hr8Cls9DXqIZ57vZe2cz7y2XVSq92tcs6kGQcT1J8Rw==", + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", + "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -3468,6 +3604,8 @@ }, "node_modules/@tufjs/canonical-json": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", "dev": true, "license": "MIT", "engines": { @@ -3476,6 +3614,8 @@ }, "node_modules/@tufjs/models": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-4.1.0.tgz", + "integrity": "sha512-Y8cK9aggNRsqJVaKUlEYs4s7CvQ1b1ta2DVPyAimb0I2qhzjNk+A+mxvll/klL0RlfuIUei8BF7YWiua4kQqww==", "dev": true, "license": "MIT", "dependencies": { @@ -3487,44 +3627,58 @@ } }, "node_modules/@tufjs/models/node_modules/balanced-match": { - "version": "4.0.2", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, "license": "MIT", - "dependencies": { - "jackspeak": "^4.2.3" - }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@tufjs/models/node_modules/brace-expansion": { - "version": "5.0.2", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/@tufjs/models/node_modules/minimatch": { - "version": "10.2.1", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.2" + "brace-expansion": "^5.0.5" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@types/babel__core": { "version": "7.20.5", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@types/babel__core/-/babel__core-7.20.5.tgz", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "license": "MIT", @@ -3538,7 +3692,7 @@ }, "node_modules/@types/babel__generator": { "version": "7.27.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "dev": true, "license": "MIT", @@ -3548,7 +3702,7 @@ }, "node_modules/@types/babel__template": { "version": "7.4.4", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@types/babel__template/-/babel__template-7.4.4.tgz", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "license": "MIT", @@ -3559,7 +3713,7 @@ }, "node_modules/@types/babel__traverse": { "version": "7.28.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "dev": true, "license": "MIT", @@ -3605,6 +3759,8 @@ }, "node_modules/@types/hast": { "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3634,7 +3790,7 @@ }, "node_modules/@types/jest": { "version": "30.0.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@types/jest/-/jest-30.0.0.tgz", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-30.0.0.tgz", "integrity": "sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==", "dev": true, "license": "MIT", @@ -3655,16 +3811,15 @@ }, "node_modules/@types/lodash": { "version": "4.17.21", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==", "dev": true, "license": "MIT" }, "node_modules/@types/minimist": { "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", "dev": true, "license": "MIT" }, @@ -3678,6 +3833,8 @@ }, "node_modules/@types/normalize-package-data": { "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", "dev": true, "license": "MIT" }, @@ -3688,6 +3845,8 @@ }, "node_modules/@types/unist": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "dev": true, "license": "MIT" }, @@ -3714,6 +3873,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.52.0.tgz", + "integrity": "sha512-okqtOgqu2qmZJ5iN4TWlgfF171dZmx2FzdOv2K/ixL2LZWDStL8+JgQerI2sa8eAEfoydG9+0V96m7V+P8yE1Q==", "dev": true, "license": "MIT", "dependencies": { @@ -3741,6 +3902,8 @@ }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, "license": "MIT", "engines": { @@ -3749,6 +3912,8 @@ }, "node_modules/@typescript-eslint/parser": { "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.52.0.tgz", + "integrity": "sha512-iIACsx8pxRnguSYhHiMn2PvhvfpopO9FXHyn1mG5txZIsAaB6F0KwbFnUQN3KCiG3Jcuad/Cao2FAs1Wp7vAyg==", "dev": true, "license": "MIT", "dependencies": { @@ -3772,6 +3937,8 @@ }, "node_modules/@typescript-eslint/project-service": { "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.52.0.tgz", + "integrity": "sha512-xD0MfdSdEmeFa3OmVqonHi+Cciab96ls1UhIF/qX/O/gPu5KXD0bY9lu33jj04fjzrXHcuvjBcBC+D3SNSadaw==", "dev": true, "license": "MIT", "dependencies": { @@ -3792,6 +3959,8 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.52.0.tgz", + "integrity": "sha512-ixxqmmCcc1Nf8S0mS0TkJ/3LKcC8mruYJPOU6Ia2F/zUUR4pApW7LzrpU3JmtePbRUTes9bEqRc1Gg4iyRnDzA==", "dev": true, "license": "MIT", "dependencies": { @@ -3808,6 +3977,8 @@ }, "node_modules/@typescript-eslint/tsconfig-utils": { "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.52.0.tgz", + "integrity": "sha512-jl+8fzr/SdzdxWJznq5nvoI7qn2tNYV/ZBAEcaFMVXf+K6jmXvAFrgo/+5rxgnL152f//pDEAYAhhBAZGrVfwg==", "dev": true, "license": "MIT", "engines": { @@ -3823,6 +3994,8 @@ }, "node_modules/@typescript-eslint/type-utils": { "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.52.0.tgz", + "integrity": "sha512-JD3wKBRWglYRQkAtsyGz1AewDu3mTc7NtRjR/ceTyGoPqmdS5oCdx/oZMWD5Zuqmo6/MpsYs0wp6axNt88/2EQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3846,6 +4019,8 @@ }, "node_modules/@typescript-eslint/types": { "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.52.0.tgz", + "integrity": "sha512-LWQV1V4q9V4cT4H5JCIx3481iIFxH1UkVk+ZkGGAV1ZGcjGI9IoFOfg3O6ywz8QqCDEp7Inlg6kovMofsNRaGg==", "dev": true, "license": "MIT", "engines": { @@ -3858,6 +4033,8 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.52.0.tgz", + "integrity": "sha512-XP3LClsCc0FsTK5/frGjolyADTh3QmsLp6nKd476xNI9CsSsLnmn4f0jrzNoAulmxlmNIpeXuHYeEQv61Q6qeQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3882,72 +4059,333 @@ "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/@typescript-eslint/utils": { - "version": "8.52.0", + "node_modules/@typescript-eslint/utils": { + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.52.0.tgz", + "integrity": "sha512-wYndVMWkweqHpEpwPhwqE2lnD2DxC6WVLupU/DOt/0/v+/+iQbbzO3jOHjmBMnhu0DgLULvOaU4h4pwHYi2oRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.52.0", + "@typescript-eslint/types": "8.52.0", + "@typescript-eslint/typescript-estree": "8.52.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.52.0.tgz", + "integrity": "sha512-ink3/Zofus34nmBsPjow63FP5M7IGff0RKAgqR6+CFpdk22M7aLwC9gOcLGYqr7MczLPzZVERW9hRog3O4n1sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.52.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" + }, + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.11.1", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "cpu": [ + "s390x" + ], "dev": true, "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.52.0", - "@typescript-eslint/types": "8.52.0", - "@typescript-eslint/typescript-estree": "8.52.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } + "optional": true, + "os": [ + "linux" + ] }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.52.0", + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "cpu": [ + "wasm32" + ], "dev": true, "license": "MIT", + "optional": true, "dependencies": { - "@typescript-eslint/types": "8.52.0", - "eslint-visitor-keys": "^4.2.1" + "@napi-rs/wasm-runtime": "^0.2.11" }, "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=14.0.0" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.1", + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", + "cpu": [ + "arm64" + ], "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "cpu": [ + "ia32" + ], "dev": true, - "license": "ISC" + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] }, - "node_modules/@unrs/resolver-binding-darwin-arm64": { + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", "cpu": [ - "arm64" + "x64" ], "dev": true, "license": "MIT", "optional": true, "os": [ - "darwin" + "win32" ] }, "node_modules/@webassemblyjs/ast": { @@ -4124,6 +4562,8 @@ }, "node_modules/@xrplf/eslint-config": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@xrplf/eslint-config/-/eslint-config-3.0.0.tgz", + "integrity": "sha512-bLeLS2RYrnu3tcY7YYPXJ4fPkS308waojnvzOnI/gB1ysw+BdOSBL/7CexD3tb+En8dvxn9wI5OAiUzoaQcOqw==", "dev": true, "license": "ISC", "dependencies": { @@ -4161,6 +4601,8 @@ }, "node_modules/@xrplf/prettier-config": { "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@xrplf/prettier-config/-/prettier-config-1.9.1.tgz", + "integrity": "sha512-1k4WCTstvGiTJQYUNTZhz4BM2DI/kVBRXh1Dw5fVaVDiGVb4YOuzxFNgipOWX/EllrjRTN5NNGLJEDk0nsMFEg==", "dev": true, "license": "ISC" }, @@ -4180,11 +4622,15 @@ }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true, "license": "BSD-2-Clause" }, "node_modules/@yarnpkg/parsers": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-3.0.2.tgz", + "integrity": "sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -4197,6 +4643,8 @@ }, "node_modules/@yarnpkg/parsers/node_modules/argparse": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "license": "MIT", "dependencies": { @@ -4205,6 +4653,8 @@ }, "node_modules/@yarnpkg/parsers/node_modules/js-yaml": { "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, "license": "MIT", "dependencies": { @@ -4217,6 +4667,8 @@ }, "node_modules/@zkochan/js-yaml": { "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.7.tgz", + "integrity": "sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4228,6 +4680,8 @@ }, "node_modules/abbrev": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-3.0.1.tgz", + "integrity": "sha512-AO2ac6pjRB3SJmGJo+v5/aK6Omggp6fsLrs6wN9bd35ulu4cCwaAU9+7ZhXjeqHVkaHThLuzH0nZr0YpCDhygg==", "dev": true, "license": "ISC", "engines": { @@ -4297,11 +4751,15 @@ }, "node_modules/add-stream": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", "dev": true, "license": "MIT" }, "node_modules/agent-base": { "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "dev": true, "license": "MIT", "engines": { @@ -4310,6 +4768,8 @@ }, "node_modules/aggregate-error": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "license": "MIT", "dependencies": { @@ -4337,6 +4797,8 @@ }, "node_modules/ajv-formats": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, "license": "MIT", "dependencies": { @@ -4353,6 +4815,8 @@ }, "node_modules/ajv-formats/node_modules/ajv": { "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "dependencies": { @@ -4368,11 +4832,15 @@ }, "node_modules/ajv-formats/node_modules/json-schema-traverse": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true, "license": "MIT" }, "node_modules/ansi-colors": { "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", "dev": true, "license": "MIT", "engines": { @@ -4381,8 +4849,6 @@ }, "node_modules/ansi-escapes": { "version": "4.3.2", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4431,6 +4897,8 @@ }, "node_modules/aproba": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", "dev": true, "license": "ISC" }, @@ -4476,16 +4944,10 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-differ": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/array-ify": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", "dev": true, "license": "MIT" }, @@ -4510,14 +4972,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-union": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/array.prototype.findlast": { "version": "1.2.5", "dev": true, @@ -4630,6 +5084,8 @@ }, "node_modules/arrify": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true, "license": "MIT", "engines": { @@ -4644,6 +5100,8 @@ }, "node_modules/async": { "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true, "license": "MIT" }, @@ -4657,6 +5115,8 @@ }, "node_modules/asynckit": { "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true, "license": "MIT" }, @@ -4684,12 +5144,14 @@ } }, "node_modules/axios": { - "version": "1.13.5", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.12.0.tgz", + "integrity": "sha512-oXTDccv8PcfjZmPGlWsPSwtOJCZ/b6W5jAMCNcfwJbCzDckwG0jrYJFaWH1yvivfCXjVzV/SPDEhMB3Q+DSurg==", "dev": true, "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.11", - "form-data": "^4.0.5", + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", "proxy-from-env": "^1.1.0" } }, @@ -4703,16 +5165,16 @@ } }, "node_modules/babel-jest": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/babel-jest/-/babel-jest-30.3.0.tgz", - "integrity": "sha512-gRpauEU2KRrCox5Z296aeVHR4jQ98BCnu0IO332D/xpHNOsIH/bgSRk9k6GbKIbBw8vFeN6ctuu6tV8WOyVfYQ==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.2.0.tgz", + "integrity": "sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/transform": "30.3.0", + "@jest/transform": "30.2.0", "@types/babel__core": "^7.20.5", "babel-plugin-istanbul": "^7.0.1", - "babel-preset-jest": "30.3.0", + "babel-preset-jest": "30.2.0", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "slash": "^3.0.0" @@ -4726,7 +5188,7 @@ }, "node_modules/babel-plugin-istanbul": { "version": "7.0.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", "integrity": "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==", "dev": true, "license": "BSD-3-Clause", @@ -4745,9 +5207,9 @@ } }, "node_modules/babel-plugin-jest-hoist": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.3.0.tgz", - "integrity": "sha512-+TRkByhsws6sfPjVaitzadk1I0F5sPvOVUH5tyTSzhePpsGIVrdeunHSw/C36QeocS95OOk8lunc4rlu5Anwsg==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.2.0.tgz", + "integrity": "sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==", "dev": true, "license": "MIT", "dependencies": { @@ -4783,13 +5245,13 @@ } }, "node_modules/babel-preset-jest": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/babel-preset-jest/-/babel-preset-jest-30.3.0.tgz", - "integrity": "sha512-6ZcUbWHC+dMz2vfzdNwi87Z1gQsLNK2uLuK1Q89R11xdvejcivlYYwDlEv0FHX3VwEXpbBQ9uufB/MUNpZGfhQ==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.2.0.tgz", + "integrity": "sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==", "dev": true, "license": "MIT", "dependencies": { - "babel-plugin-jest-hoist": "30.3.0", + "babel-plugin-jest-hoist": "30.2.0", "babel-preset-current-node-syntax": "^1.2.0" }, "engines": { @@ -4806,6 +5268,8 @@ }, "node_modules/base64-js": { "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true, "funding": [ { @@ -4833,6 +5297,8 @@ }, "node_modules/baseline-browser-mapping": { "version": "2.9.12", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.12.tgz", + "integrity": "sha512-Mij6Lij93pTAIsSYy5cyBQ975Qh9uLEc5rwGTpomiZeXZL9yIS6uORJakb3ScHgfs0serMMfIbXzokPMuEiRyw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -4841,11 +5307,15 @@ }, "node_modules/before-after-hook": { "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", "dev": true, "license": "Apache-2.0" }, "node_modules/bignumber.js": { "version": "9.3.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.0.tgz", + "integrity": "sha512-EM7aMFTXbptt/wZdMlBv2t8IViwQL+h6SLHosp8Yf0dqJMTnY6iL32opnAB6kAdL0SZPuvcAzFr31o0c/R3/RA==", "license": "MIT", "engines": { "node": "*" @@ -4853,6 +5323,8 @@ }, "node_modules/bin-links": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-5.0.0.tgz", + "integrity": "sha512-sdleLVfCjBtgO5cNjA2HVRvWBJAHs4zwenaCPMNJAJU0yNxpzj80IpjOIimkpkr+mhlA+how5poQtt53PygbHA==", "dev": true, "license": "ISC", "dependencies": { @@ -4868,6 +5340,8 @@ }, "node_modules/bin-links/node_modules/cmd-shim": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-7.0.0.tgz", + "integrity": "sha512-rtpaCbr164TPPh+zFdkWpCyZuKkjpAzODfaZCf/SVJZzJN+4bHQb/LP3Jzq5/+84um3XXY8r548XiWKSborwVw==", "dev": true, "license": "ISC", "engines": { @@ -4876,6 +5350,8 @@ }, "node_modules/bin-links/node_modules/read-cmd-shim": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-5.0.0.tgz", + "integrity": "sha512-SEbJV7tohp3DAAILbEMPXavBjAnMN0tVnh4+9G8ihV4Pq3HYF9h8QNez9zkJ1ILkv9G2BjdzwctznGZXgu/HGw==", "dev": true, "license": "ISC", "engines": { @@ -4884,6 +5360,8 @@ }, "node_modules/bin-links/node_modules/signal-exit": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "license": "ISC", "engines": { @@ -4895,6 +5373,8 @@ }, "node_modules/bin-links/node_modules/write-file-atomic": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-6.0.0.tgz", + "integrity": "sha512-GmqrO8WJ1NuzJ2DrziEI2o57jKAVIQNf8a18W3nCYU3H7PNWqCCVTeH6/NQE93CIllIgQS98rrmVkYgTX9fFJQ==", "dev": true, "license": "ISC", "dependencies": { @@ -4918,6 +5398,8 @@ }, "node_modules/bl": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "license": "MIT", "dependencies": { @@ -4997,6 +5479,8 @@ }, "node_modules/browserslist": { "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "dev": true, "funding": [ { @@ -5048,6 +5532,8 @@ }, "node_modules/buffer": { "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, "funding": [ { @@ -5076,6 +5562,8 @@ }, "node_modules/byte-size": { "version": "8.1.1", + "resolved": "https://registry.npmjs.org/byte-size/-/byte-size-8.1.1.tgz", + "integrity": "sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==", "dev": true, "license": "MIT", "engines": { @@ -5092,6 +5580,8 @@ }, "node_modules/cacache": { "version": "20.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-20.0.3.tgz", + "integrity": "sha512-3pUp4e8hv07k1QlijZu6Kn7c9+ZpWWk4j3F8N3xPuCExULobqJydKYOTj1FTq58srkJsXvO7LbGAH4C0ZU3WGw==", "dev": true, "license": "ISC", "dependencies": { @@ -5113,6 +5603,8 @@ }, "node_modules/cacache/node_modules/@npmcli/fs": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-5.0.0.tgz", + "integrity": "sha512-7OsC1gNORBEawOa5+j2pXN9vsicaIOH5cPXxoR6fJOmH6/EXpJB2CajXOu1fPRFun2m1lktEFX11+P89hqO/og==", "dev": true, "license": "ISC", "dependencies": { @@ -5124,6 +5616,8 @@ }, "node_modules/cacache/node_modules/balanced-match": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.2.tgz", + "integrity": "sha512-x0K50QvKQ97fdEz2kPehIerj+YTeptKF9hyYkKf6egnwmMWAkADiO0QCzSp0R5xN8FTZgYaBfSaue46Ej62nMg==", "dev": true, "license": "MIT", "dependencies": { @@ -5135,6 +5629,8 @@ }, "node_modules/cacache/node_modules/brace-expansion": { "version": "5.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz", + "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==", "dev": true, "license": "MIT", "dependencies": { @@ -5146,6 +5642,8 @@ }, "node_modules/cacache/node_modules/glob": { "version": "13.0.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.5.tgz", + "integrity": "sha512-BzXxZg24Ibra1pbQ/zE7Kys4Ua1ks7Bn6pKLkVPZ9FZe4JQS6/Q7ef3LG1H+k7lUf5l4T3PLSyYyYJVYUvfgTw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -5162,6 +5660,8 @@ }, "node_modules/cacache/node_modules/lru-cache": { "version": "11.2.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", + "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -5169,14 +5669,16 @@ } }, "node_modules/cacache/node_modules/minimatch": { - "version": "10.2.1", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { "brace-expansion": "^5.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -5184,6 +5686,8 @@ }, "node_modules/cacache/node_modules/p-map": { "version": "7.0.4", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.4.tgz", + "integrity": "sha512-tkAQEw8ysMzmkhgw8k+1U/iPhWNhykKnSk4Rd5zLoPJCuJaGRPo6YposrZgaxHKzDHdDWWZvE/Sk7hsL2X/CpQ==", "dev": true, "license": "MIT", "engines": { @@ -5195,6 +5699,8 @@ }, "node_modules/cacache/node_modules/ssri": { "version": "13.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-13.0.1.tgz", + "integrity": "sha512-QUiRf1+u9wPTL/76GTYlKttDEBWV1ga9ZXW8BG6kfdeyyM8LGPix9gROyg9V2+P0xNyF3X2Go526xKFdMZrHSQ==", "dev": true, "license": "ISC", "dependencies": { @@ -5266,6 +5772,8 @@ }, "node_modules/camelcase-keys": { "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, "license": "MIT", "dependencies": { @@ -5282,6 +5790,8 @@ }, "node_modules/caniuse-lite": { "version": "1.0.30001762", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001762.tgz", + "integrity": "sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==", "dev": true, "funding": [ { @@ -5301,6 +5811,8 @@ }, "node_modules/chai": { "version": "6.2.2", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", + "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", "dev": true, "license": "MIT", "engines": { @@ -5324,7 +5836,7 @@ }, "node_modules/char-regex": { "version": "1.0.2", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/char-regex/-/char-regex-1.0.2.tgz", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, "license": "MIT", @@ -5334,6 +5846,8 @@ }, "node_modules/chardet": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", + "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", "dev": true, "license": "MIT" }, @@ -5373,6 +5887,8 @@ }, "node_modules/chownr": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -5388,7 +5904,9 @@ } }, "node_modules/ci-info": { - "version": "3.9.0", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz", + "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==", "dev": true, "funding": [ { @@ -5403,13 +5921,15 @@ }, "node_modules/cjs-module-lexer": { "version": "2.2.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz", "integrity": "sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==", "dev": true, "license": "MIT" }, "node_modules/clean-stack": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, "license": "MIT", "engines": { @@ -5418,6 +5938,8 @@ }, "node_modules/cli-cursor": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "license": "MIT", "dependencies": { @@ -5429,6 +5951,8 @@ }, "node_modules/cli-spinners": { "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", "dev": true, "license": "MIT", "engines": { @@ -5440,6 +5964,8 @@ }, "node_modules/cli-width": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", "dev": true, "license": "ISC", "engines": { @@ -5458,6 +5984,8 @@ }, "node_modules/clone": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, "license": "MIT", "engines": { @@ -5490,6 +6018,8 @@ }, "node_modules/cmd-shim": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.3.tgz", + "integrity": "sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==", "dev": true, "license": "ISC", "engines": { @@ -5498,7 +6028,7 @@ }, "node_modules/co": { "version": "4.6.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/co/-/co-4.6.0.tgz", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, "license": "MIT", @@ -5509,7 +6039,7 @@ }, "node_modules/collect-v8-coverage": { "version": "1.0.3", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", "dev": true, "license": "MIT" @@ -5532,6 +6062,8 @@ }, "node_modules/color-support": { "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true, "license": "ISC", "bin": { @@ -5545,6 +6077,8 @@ }, "node_modules/columnify": { "version": "1.6.0", + "resolved": "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz", + "integrity": "sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==", "dev": true, "license": "MIT", "dependencies": { @@ -5557,6 +6091,8 @@ }, "node_modules/combined-stream": { "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "license": "MIT", "dependencies": { @@ -5568,6 +6104,8 @@ }, "node_modules/commander": { "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true, "license": "MIT" }, @@ -5581,11 +6119,15 @@ }, "node_modules/common-ancestor-path": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", + "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", "dev": true, "license": "ISC" }, "node_modules/compare-func": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", "dev": true, "license": "MIT", "dependencies": { @@ -5600,6 +6142,8 @@ }, "node_modules/concat-stream": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", "dev": true, "engines": [ "node >= 6.0" @@ -5646,6 +6190,8 @@ }, "node_modules/console-control-strings": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true, "license": "ISC" }, @@ -5659,6 +6205,8 @@ }, "node_modules/conventional-changelog-angular": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", + "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", "dev": true, "license": "ISC", "dependencies": { @@ -5670,6 +6218,8 @@ }, "node_modules/conventional-changelog-core": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-5.0.1.tgz", + "integrity": "sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==", "dev": true, "license": "MIT", "dependencies": { @@ -5691,6 +6241,8 @@ }, "node_modules/conventional-changelog-preset-loader": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz", + "integrity": "sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==", "dev": true, "license": "MIT", "engines": { @@ -5699,6 +6251,8 @@ }, "node_modules/conventional-changelog-writer": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-6.0.1.tgz", + "integrity": "sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5719,6 +6273,8 @@ }, "node_modules/conventional-commits-filter": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz", + "integrity": "sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==", "dev": true, "license": "MIT", "dependencies": { @@ -5731,6 +6287,8 @@ }, "node_modules/conventional-commits-parser": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz", + "integrity": "sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==", "dev": true, "license": "MIT", "dependencies": { @@ -5748,6 +6306,8 @@ }, "node_modules/conventional-recommended-bump": { "version": "7.0.1", + "resolved": "https://registry.npmjs.org/conventional-recommended-bump/-/conventional-recommended-bump-7.0.1.tgz", + "integrity": "sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==", "dev": true, "license": "MIT", "dependencies": { @@ -5807,7 +6367,9 @@ } }, "node_modules/copyfiles/node_modules/minimatch": { - "version": "3.1.2", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -5836,6 +6398,8 @@ }, "node_modules/cosmiconfig": { "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", "dev": true, "license": "MIT", "dependencies": { @@ -5879,6 +6443,8 @@ }, "node_modules/cssesc": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true, "license": "MIT", "bin": { @@ -5901,6 +6467,8 @@ }, "node_modules/dargs": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", "dev": true, "license": "MIT", "engines": { @@ -5965,6 +6533,8 @@ }, "node_modules/dateformat": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", "dev": true, "license": "MIT", "engines": { @@ -5978,6 +6548,8 @@ }, "node_modules/debug": { "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, "license": "MIT", "dependencies": { @@ -5994,6 +6566,8 @@ }, "node_modules/decamelize": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, "license": "MIT", "engines": { @@ -6002,6 +6576,8 @@ }, "node_modules/decamelize-keys": { "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", "dev": true, "license": "MIT", "dependencies": { @@ -6017,6 +6593,8 @@ }, "node_modules/decamelize-keys/node_modules/map-obj": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", "dev": true, "license": "MIT", "engines": { @@ -6024,9 +6602,9 @@ } }, "node_modules/dedent": { - "version": "1.7.2", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/dedent/-/dedent-1.7.2.tgz", - "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.1.tgz", + "integrity": "sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==", "dev": true, "license": "MIT", "peerDependencies": { @@ -6045,7 +6623,7 @@ }, "node_modules/deepmerge": { "version": "4.3.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/deepmerge/-/deepmerge-4.3.1.tgz", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "license": "MIT", @@ -6055,6 +6633,8 @@ }, "node_modules/defaults": { "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, "license": "MIT", "dependencies": { @@ -6082,6 +6662,8 @@ }, "node_modules/define-lazy-prop": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true, "license": "MIT", "engines": { @@ -6106,6 +6688,8 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, "license": "MIT", "engines": { @@ -6122,6 +6706,8 @@ }, "node_modules/deprecation": { "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", "dev": true, "license": "ISC" }, @@ -6134,17 +6720,9 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/detect-indent": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/detect-newline": { "version": "3.1.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/detect-newline/-/detect-newline-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, "license": "MIT", @@ -6189,6 +6767,8 @@ }, "node_modules/dot-prop": { "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -6200,6 +6780,8 @@ }, "node_modules/dotenv": { "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", "dev": true, "license": "BSD-2-Clause", "engines": { @@ -6211,6 +6793,8 @@ }, "node_modules/dotenv-expand": { "version": "11.0.7", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -6238,7 +6822,7 @@ }, "node_modules/eastasianwidth": { "version": "0.2.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true, "license": "MIT" @@ -6250,6 +6834,8 @@ }, "node_modules/ejs": { "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -6264,12 +6850,14 @@ }, "node_modules/electron-to-chromium": { "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", "dev": true, "license": "ISC" }, "node_modules/emittery": { "version": "0.13.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/emittery/-/emittery-0.13.1.tgz", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "license": "MIT", @@ -6295,6 +6883,8 @@ }, "node_modules/encoding": { "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "license": "MIT", "optional": true, @@ -6304,6 +6894,8 @@ }, "node_modules/encoding/node_modules/iconv-lite": { "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "license": "MIT", "optional": true, @@ -6316,6 +6908,8 @@ }, "node_modules/end-of-stream": { "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", "dev": true, "license": "MIT", "dependencies": { @@ -6399,6 +6993,8 @@ }, "node_modules/enquirer": { "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", "dev": true, "license": "MIT", "dependencies": { @@ -6440,6 +7036,8 @@ }, "node_modules/env-paths": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, "license": "MIT", "engines": { @@ -6459,6 +7057,8 @@ }, "node_modules/err-code": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "dev": true, "license": "MIT" }, @@ -6582,6 +7182,8 @@ }, "node_modules/es-module-lexer": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", + "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", "dev": true, "license": "MIT" }, @@ -6663,6 +7265,8 @@ }, "node_modules/eslint": { "version": "9.39.2", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", + "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "dev": true, "license": "MIT", "dependencies": { @@ -6847,6 +7451,8 @@ }, "node_modules/eslint-plugin-array-func": { "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-array-func/-/eslint-plugin-array-func-5.1.0.tgz", + "integrity": "sha512-+OULB0IQdENBmBf8pHMPPObgV6QyfeXFin483jPonOaiurI9UFmc8UydWriK5f5Gel8xBhQLA6NzMwbck1BUJw==", "dev": true, "license": "MIT", "engines": { @@ -6926,7 +7532,9 @@ } }, "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -7007,7 +7615,9 @@ } }, "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": { - "version": "3.1.2", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "peer": true, @@ -7020,6 +7630,8 @@ }, "node_modules/eslint-plugin-n": { "version": "17.23.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.23.1.tgz", + "integrity": "sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==", "dev": true, "license": "MIT", "dependencies": { @@ -7138,7 +7750,9 @@ } }, "node_modules/eslint-plugin-react/node_modules/minimatch": { - "version": "3.1.2", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "peer": true, @@ -7177,6 +7791,8 @@ }, "node_modules/eslint-plugin-tsdoc": { "version": "0.5.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.5.0.tgz", + "integrity": "sha512-ush8ehCwub2rgE16OIgQPFyj/o0k3T8kL++9IrAI4knsmupNo8gvfO2ERgDHWWgTC5MglbwLVRswU93HyXqNpw==", "dev": true, "license": "MIT", "dependencies": { @@ -7187,6 +7803,8 @@ }, "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/project-service": { "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.4.tgz", + "integrity": "sha512-nPiRSKuvtTN+no/2N1kt2tUh/HoFzeEgOm9fQ6XQk4/ApGqjx0zFIIaLJ6wooR1HIoozvj2j6vTi/1fgAz7UYQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7207,6 +7825,8 @@ }, "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/scope-manager": { "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.4.tgz", + "integrity": "sha512-tMDbLGXb1wC+McN1M6QeDx7P7c0UWO5z9CXqp7J8E+xGcJuUuevWKxuG8j41FoweS3+L41SkyKKkia16jpX7CA==", "dev": true, "license": "MIT", "dependencies": { @@ -7223,6 +7843,8 @@ }, "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/tsconfig-utils": { "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.4.tgz", + "integrity": "sha512-+/XqaZPIAk6Cjg7NWgSGe27X4zMGqrFqZ8atJsX3CWxH/jACqWnrWI68h7nHQld0y+k9eTTjb9r+KU4twLoo9A==", "dev": true, "license": "MIT", "engines": { @@ -7238,6 +7860,8 @@ }, "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/types": { "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.4.tgz", + "integrity": "sha512-USjyxm3gQEePdUwJBFjjGNG18xY9A2grDVGuk7/9AkjIF1L+ZrVnwR5VAU5JXtUnBL/Nwt3H31KlRDaksnM7/w==", "dev": true, "license": "MIT", "engines": { @@ -7250,6 +7874,8 @@ }, "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/typescript-estree": { "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.4.tgz", + "integrity": "sha512-7oV2qEOr1d4NWNmpXLR35LvCfOkTNymY9oyW+lUHkmCno7aOmIf/hMaydnJBUTBMRCOGZh8YjkFOc8dadEoNGA==", "dev": true, "license": "MIT", "dependencies": { @@ -7277,6 +7903,8 @@ }, "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/utils": { "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.4.tgz", + "integrity": "sha512-AbSv11fklGXV6T28dp2Me04Uw90R2iJ30g2bgLz529Koehrmkbs1r7paFqr1vPCZi7hHwYxYtxfyQMRC8QaVSg==", "dev": true, "license": "MIT", "dependencies": { @@ -7299,6 +7927,8 @@ }, "node_modules/eslint-plugin-tsdoc/node_modules/@typescript-eslint/visitor-keys": { "version": "8.46.4", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.4.tgz", + "integrity": "sha512-/++5CYLQqsO9HFGLI7APrxBJYo+5OCMpViuhV8q5/Qa3o5mMrF//eQHks+PXcsAVaLdn817fMuS7zqoXNNZGaw==", "dev": true, "license": "MIT", "dependencies": { @@ -7315,6 +7945,8 @@ }, "node_modules/eslint-plugin-tsdoc/node_modules/eslint-visitor-keys": { "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -7371,7 +8003,9 @@ } }, "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -7473,7 +8107,7 @@ }, "node_modules/execa": { "version": "5.1.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/execa/-/execa-5.1.1.tgz", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "license": "MIT", @@ -7497,7 +8131,7 @@ }, "node_modules/exit-x": { "version": "0.2.2", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/exit-x/-/exit-x-0.2.2.tgz", + "resolved": "https://registry.npmjs.org/exit-x/-/exit-x-0.2.2.tgz", "integrity": "sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==", "dev": true, "license": "MIT", @@ -7506,18 +8140,18 @@ } }, "node_modules/expect": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/expect/-/expect-30.3.0.tgz", - "integrity": "sha512-1zQrciTiQfRdo7qJM1uG4navm8DayFa2TgCSRlzUyNkhcJ6XUZF3hjnpkyr3VhAqPH7i/9GkG7Tv5abz6fqz0Q==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-30.2.0.tgz", + "integrity": "sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/expect-utils": "30.3.0", + "@jest/expect-utils": "30.2.0", "@jest/get-type": "30.1.0", - "jest-matcher-utils": "30.3.0", - "jest-message-util": "30.3.0", - "jest-mock": "30.3.0", - "jest-util": "30.3.0" + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", + "jest-util": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -7525,6 +8159,8 @@ }, "node_modules/exponential-backoff": { "version": "3.1.3", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.3.tgz", + "integrity": "sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==", "dev": true, "license": "Apache-2.0" }, @@ -7545,6 +8181,8 @@ }, "node_modules/fast-glob": { "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, "license": "MIT", "dependencies": { @@ -7560,6 +8198,8 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "license": "ISC", "dependencies": { @@ -7580,6 +8220,8 @@ }, "node_modules/fast-uri": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", "dev": true, "funding": [ { @@ -7603,6 +8245,8 @@ }, "node_modules/fastq": { "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", "dev": true, "license": "ISC", "dependencies": { @@ -7619,6 +8263,8 @@ }, "node_modules/figures": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "license": "MIT", "dependencies": { @@ -7633,6 +8279,8 @@ }, "node_modules/figures/node_modules/escape-string-regexp": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "license": "MIT", "engines": { @@ -7651,7 +8299,9 @@ } }, "node_modules/filelist": { - "version": "1.0.4", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz", + "integrity": "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -7659,7 +8309,9 @@ } }, "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", "dev": true, "license": "ISC", "dependencies": { @@ -7757,7 +8409,9 @@ } }, "node_modules/flatted": { - "version": "3.3.3", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, "license": "ISC" }, @@ -7796,6 +8450,8 @@ }, "node_modules/foreground-child": { "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", "dev": true, "license": "ISC", "dependencies": { @@ -7811,6 +8467,8 @@ }, "node_modules/foreground-child/node_modules/signal-exit": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "license": "ISC", "engines": { @@ -7822,6 +8480,8 @@ }, "node_modules/form-data": { "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", "dev": true, "license": "MIT", "dependencies": { @@ -7837,6 +8497,8 @@ }, "node_modules/front-matter": { "version": "4.0.2", + "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", + "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", "dev": true, "license": "MIT", "dependencies": { @@ -7845,6 +8507,8 @@ }, "node_modules/front-matter/node_modules/argparse": { "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "license": "MIT", "dependencies": { @@ -7853,6 +8517,8 @@ }, "node_modules/front-matter/node_modules/js-yaml": { "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, "license": "MIT", "dependencies": { @@ -7865,11 +8531,15 @@ }, "node_modules/fs-constants": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true, "license": "MIT" }, "node_modules/fs-extra": { - "version": "11.3.3", + "version": "11.3.4", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz", + "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==", "dev": true, "license": "MIT", "dependencies": { @@ -7883,6 +8553,8 @@ }, "node_modules/fs-minipass": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dev": true, "license": "ISC", "dependencies": { @@ -7985,7 +8657,7 @@ }, "node_modules/get-package-type": { "version": "0.1.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/get-package-type/-/get-package-type-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, "license": "MIT", @@ -7995,6 +8667,8 @@ }, "node_modules/get-pkg-repo": { "version": "4.2.1", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", + "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", "dev": true, "license": "MIT", "dependencies": { @@ -8012,6 +8686,8 @@ }, "node_modules/get-pkg-repo/node_modules/hosted-git-info": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, "license": "ISC", "dependencies": { @@ -8023,6 +8699,8 @@ }, "node_modules/get-pkg-repo/node_modules/lru-cache": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "license": "ISC", "dependencies": { @@ -8034,20 +8712,11 @@ }, "node_modules/get-pkg-repo/node_modules/yallist": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" }, - "node_modules/get-port": { - "version": "5.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-proto": { "version": "1.0.1", "dev": true, @@ -8062,7 +8731,7 @@ }, "node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/get-stream/-/get-stream-6.0.1.tgz", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, "license": "MIT", @@ -8102,6 +8771,9 @@ }, "node_modules/git-raw-commits": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-3.0.0.tgz", + "integrity": "sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==", + "deprecated": "This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead.", "dev": true, "license": "MIT", "dependencies": { @@ -8118,6 +8790,8 @@ }, "node_modules/git-remote-origin-url": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", "dev": true, "license": "MIT", "dependencies": { @@ -8128,16 +8802,11 @@ "node": ">=4" } }, - "node_modules/git-remote-origin-url/node_modules/pify": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/git-semver-tags": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-5.0.1.tgz", + "integrity": "sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==", + "deprecated": "This package is no longer maintained. For the JavaScript API, please use @conventional-changelog/git-client instead.", "dev": true, "license": "MIT", "dependencies": { @@ -8153,6 +8822,8 @@ }, "node_modules/git-up": { "version": "7.0.0", + "resolved": "https://registry.npmjs.org/git-up/-/git-up-7.0.0.tgz", + "integrity": "sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8162,6 +8833,8 @@ }, "node_modules/git-url-parse": { "version": "14.0.0", + "resolved": "https://registry.npmjs.org/git-url-parse/-/git-url-parse-14.0.0.tgz", + "integrity": "sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8170,6 +8843,8 @@ }, "node_modules/gitconfiglocal": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", "dev": true, "license": "BSD", "dependencies": { @@ -8221,7 +8896,9 @@ } }, "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -8302,6 +8979,8 @@ }, "node_modules/hard-rejection": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true, "license": "MIT", "engines": { @@ -8379,6 +9058,8 @@ }, "node_modules/has-unicode": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "dev": true, "license": "ISC" }, @@ -8395,6 +9076,8 @@ }, "node_modules/hosted-git-info": { "version": "9.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-9.0.2.tgz", + "integrity": "sha512-M422h7o/BR3rmCQ8UHi7cyyMqKltdP9Uo+J2fXK+RSAY+wTcKOIRyhTuKv4qn+DJf3g+PL890AzId5KZpX+CBg==", "dev": true, "license": "ISC", "dependencies": { @@ -8406,6 +9089,8 @@ }, "node_modules/hosted-git-info/node_modules/lru-cache": { "version": "11.2.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", + "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -8419,6 +9104,8 @@ }, "node_modules/http-cache-semantics": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", "dev": true, "license": "BSD-2-Clause" }, @@ -8460,6 +9147,8 @@ }, "node_modules/http-proxy-agent": { "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "license": "MIT", "dependencies": { @@ -8472,6 +9161,8 @@ }, "node_modules/https-proxy-agent": { "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, "license": "MIT", "dependencies": { @@ -8503,6 +9194,8 @@ }, "node_modules/ieee754": { "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true, "funding": [ { @@ -8530,6 +9223,8 @@ }, "node_modules/ignore-walk": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-8.0.0.tgz", + "integrity": "sha512-FCeMZT4NiRQGh+YkeKMtWrOmBgWjHjMJ26WQWrRQyoyzqevdaGSakUaJW5xQYmjLlUVk2qUnCjYVBax9EKKg8A==", "dev": true, "license": "ISC", "dependencies": { @@ -8540,36 +9235,39 @@ } }, "node_modules/ignore-walk/node_modules/balanced-match": { - "version": "4.0.2", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, "license": "MIT", - "dependencies": { - "jackspeak": "^4.2.3" - }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/ignore-walk/node_modules/brace-expansion": { - "version": "5.0.2", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^4.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" } }, "node_modules/ignore-walk/node_modules/minimatch": { - "version": "10.2.1", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "brace-expansion": "^5.0.2" + "brace-expansion": "^5.0.5" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -8618,6 +9316,8 @@ }, "node_modules/indent-string": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "license": "MIT", "engines": { @@ -8640,11 +9340,15 @@ }, "node_modules/ini": { "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true, "license": "ISC" }, "node_modules/init-package-json": { "version": "8.2.2", + "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-8.2.2.tgz", + "integrity": "sha512-pXVMn67Jdw2hPKLCuJZj62NC9B2OIDd1R3JwZXTHXuEnfN3Uq5kJbKOSld6YEU+KOGfMD82EzxFTYz5o0SSJoA==", "dev": true, "license": "ISC", "dependencies": { @@ -8662,6 +9366,8 @@ }, "node_modules/inquirer": { "version": "12.9.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.9.6.tgz", + "integrity": "sha512-603xXOgyfxhuis4nfnWaZrMaotNT0Km9XwwBNWUKbIDqeCY89jGr2F9YPEMiNhU6XjIP4VoWISMBFfcc5NgrTw==", "dev": true, "license": "MIT", "dependencies": { @@ -8708,6 +9414,8 @@ }, "node_modules/ip-address": { "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", "dev": true, "license": "MIT", "engines": { @@ -8814,6 +9522,8 @@ }, "node_modules/is-ci": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8823,6 +9533,22 @@ "is-ci": "bin.js" } }, + "node_modules/is-ci/node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-core-module": { "version": "2.16.1", "dev": true, @@ -8870,6 +9596,8 @@ }, "node_modules/is-docker": { "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, "license": "MIT", "bin": { @@ -8914,7 +9642,7 @@ }, "node_modules/is-generator-fn": { "version": "2.1.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, "license": "MIT", @@ -8952,6 +9680,8 @@ }, "node_modules/is-interactive": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, "license": "MIT", "engines": { @@ -9005,6 +9735,8 @@ }, "node_modules/is-obj": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, "license": "MIT", "engines": { @@ -9013,6 +9745,8 @@ }, "node_modules/is-plain-obj": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, "license": "MIT", "engines": { @@ -9063,6 +9797,8 @@ }, "node_modules/is-ssh": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.1.tgz", + "integrity": "sha512-JNeu1wQsHjyHgn9NcWTaXq6zWSR6hqE0++zhfZlkFBbScNkyvxCdeV8sRkSBaeLKxmbpR21brail63ACNxJ0Tg==", "dev": true, "license": "MIT", "dependencies": { @@ -9071,7 +9807,7 @@ }, "node_modules/is-stream": { "version": "2.0.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/is-stream/-/is-stream-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, "license": "MIT", @@ -9115,6 +9851,8 @@ }, "node_modules/is-text-path": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", "dev": true, "license": "MIT", "dependencies": { @@ -9140,6 +9878,8 @@ }, "node_modules/is-unicode-supported": { "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, "license": "MIT", "engines": { @@ -9191,6 +9931,8 @@ }, "node_modules/is-wsl": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, "license": "MIT", "dependencies": { @@ -9239,7 +9981,7 @@ }, "node_modules/istanbul-lib-instrument": { "version": "6.0.3", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, "license": "BSD-3-Clause", @@ -9256,7 +9998,7 @@ }, "node_modules/istanbul-lib-report": { "version": "3.0.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "license": "BSD-3-Clause", @@ -9271,7 +10013,7 @@ }, "node_modules/istanbul-lib-source-maps": { "version": "5.0.6", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", "dev": true, "license": "BSD-3-Clause", @@ -9286,7 +10028,7 @@ }, "node_modules/istanbul-reports": { "version": "3.2.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, "license": "BSD-3-Clause", @@ -9317,6 +10059,8 @@ }, "node_modules/jackspeak": { "version": "4.2.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.2.3.tgz", + "integrity": "sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -9331,6 +10075,8 @@ }, "node_modules/jake": { "version": "10.9.4", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", + "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -9351,16 +10097,16 @@ "license": "MIT" }, "node_modules/jest": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest/-/jest-30.3.0.tgz", - "integrity": "sha512-AkXIIFcaazymvey2i/+F94XRnM6TsVLZDhBMLsd1Sf/W0wzsvvpjeyUrCZD6HGG4SDYPgDJDBKeiJTBb10WzMg==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-30.2.0.tgz", + "integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "30.3.0", - "@jest/types": "30.3.0", + "@jest/core": "30.2.0", + "@jest/types": "30.2.0", "import-local": "^3.2.0", - "jest-cli": "30.3.0" + "jest-cli": "30.2.0" }, "bin": { "jest": "bin/jest.js" @@ -9378,14 +10124,14 @@ } }, "node_modules/jest-changed-files": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-changed-files/-/jest-changed-files-30.3.0.tgz", - "integrity": "sha512-B/7Cny6cV5At6M25EWDgf9S617lHivamL8vl6KEpJqkStauzcG4e+WPfDgMMF+H4FVH4A2PLRyvgDJan4441QA==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.2.0.tgz", + "integrity": "sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==", "dev": true, "license": "MIT", "dependencies": { "execa": "^5.1.1", - "jest-util": "30.3.0", + "jest-util": "30.2.0", "p-limit": "^3.1.0" }, "engines": { @@ -9393,29 +10139,29 @@ } }, "node_modules/jest-circus": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-circus/-/jest-circus-30.3.0.tgz", - "integrity": "sha512-PyXq5szeSfR/4f1lYqCmmQjh0vqDkURUYi9N6whnHjlRz4IUQfMcXkGLeEoiJtxtyPqgUaUUfyQlApXWBSN1RA==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.2.0.tgz", + "integrity": "sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.3.0", - "@jest/expect": "30.3.0", - "@jest/test-result": "30.3.0", - "@jest/types": "30.3.0", + "@jest/environment": "30.2.0", + "@jest/expect": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "co": "^4.6.0", "dedent": "^1.6.0", "is-generator-fn": "^2.1.0", - "jest-each": "30.3.0", - "jest-matcher-utils": "30.3.0", - "jest-message-util": "30.3.0", - "jest-runtime": "30.3.0", - "jest-snapshot": "30.3.0", - "jest-util": "30.3.0", + "jest-each": "30.2.0", + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-runtime": "30.2.0", + "jest-snapshot": "30.2.0", + "jest-util": "30.2.0", "p-limit": "^3.1.0", - "pretty-format": "30.3.0", + "pretty-format": "30.2.0", "pure-rand": "^7.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" @@ -9424,22 +10170,50 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/pretty-format": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, "node_modules/jest-cli": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-cli/-/jest-cli-30.3.0.tgz", - "integrity": "sha512-l6Tqx+j1fDXJEW5bqYykDQQ7mQg+9mhWXtnj+tQZrTWYHyHoi6Be8HPumDSA+UiX2/2buEgjA58iJzdj146uCw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.2.0.tgz", + "integrity": "sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "30.3.0", - "@jest/test-result": "30.3.0", - "@jest/types": "30.3.0", + "@jest/core": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/types": "30.2.0", "chalk": "^4.1.2", "exit-x": "^0.2.2", "import-local": "^3.2.0", - "jest-config": "30.3.0", - "jest-util": "30.3.0", - "jest-validate": "30.3.0", + "jest-config": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", "yargs": "^17.7.2" }, "bin": { @@ -9459,7 +10233,7 @@ }, "node_modules/jest-cli/node_modules/cliui": { "version": "8.0.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/cliui/-/cliui-8.0.1.tgz", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "license": "ISC", @@ -9474,7 +10248,7 @@ }, "node_modules/jest-cli/node_modules/yargs": { "version": "17.7.2", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/yargs/-/yargs-17.7.2.tgz", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "license": "MIT", @@ -9493,7 +10267,7 @@ }, "node_modules/jest-cli/node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/yargs-parser/-/yargs-parser-21.1.1.tgz", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "license": "ISC", @@ -9502,33 +10276,34 @@ } }, "node_modules/jest-config": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-config/-/jest-config-30.3.0.tgz", - "integrity": "sha512-WPMAkMAtNDY9P/oKObtsRG/6KTrhtgPJoBTmk20uDn4Uy6/3EJnnaZJre/FMT1KVRx8cve1r7/FlMIOfRVWL4w==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.2.0.tgz", + "integrity": "sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.27.4", "@jest/get-type": "30.1.0", "@jest/pattern": "30.0.1", - "@jest/test-sequencer": "30.3.0", - "@jest/types": "30.3.0", - "babel-jest": "30.3.0", + "@jest/test-sequencer": "30.2.0", + "@jest/types": "30.2.0", + "babel-jest": "30.2.0", "chalk": "^4.1.2", "ci-info": "^4.2.0", "deepmerge": "^4.3.1", - "glob": "^10.5.0", + "glob": "^10.3.10", "graceful-fs": "^4.2.11", - "jest-circus": "30.3.0", + "jest-circus": "30.2.0", "jest-docblock": "30.2.0", - "jest-environment-node": "30.3.0", + "jest-environment-node": "30.2.0", "jest-regex-util": "30.0.1", - "jest-resolve": "30.3.0", - "jest-runner": "30.3.0", - "jest-util": "30.3.0", - "jest-validate": "30.3.0", + "jest-resolve": "30.2.0", + "jest-runner": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "micromatch": "^4.0.8", "parse-json": "^5.2.0", - "pretty-format": "30.3.0", + "pretty-format": "30.2.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -9554,7 +10329,7 @@ }, "node_modules/jest-config/node_modules/@isaacs/cliui": { "version": "8.0.2", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@isaacs/cliui/-/cliui-8.0.2.tgz", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, "license": "ISC", @@ -9572,7 +10347,7 @@ }, "node_modules/jest-config/node_modules/ansi-regex": { "version": "6.2.2", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ansi-regex/-/ansi-regex-6.2.2.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, "license": "MIT", @@ -9584,13 +10359,13 @@ } }, "node_modules/jest-config/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" @@ -9598,7 +10373,7 @@ }, "node_modules/jest-config/node_modules/ci-info": { "version": "4.4.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ci-info/-/ci-info-4.4.0.tgz", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", "dev": true, "funding": [ @@ -9614,7 +10389,7 @@ }, "node_modules/jest-config/node_modules/glob": { "version": "10.5.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/glob/-/glob-10.5.0.tgz", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, @@ -9636,7 +10411,7 @@ }, "node_modules/jest-config/node_modules/jackspeak": { "version": "3.4.3", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jackspeak/-/jackspeak-3.4.3.tgz", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "license": "BlueOak-1.0.0", @@ -9652,14 +10427,14 @@ }, "node_modules/jest-config/node_modules/lru-cache": { "version": "10.4.3", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/lru-cache/-/lru-cache-10.4.3.tgz", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, "license": "ISC" }, "node_modules/jest-config/node_modules/path-scurry": { "version": "1.11.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/path-scurry/-/path-scurry-1.11.1.tgz", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "license": "BlueOak-1.0.0", @@ -9674,9 +10449,24 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/jest-config/node_modules/pretty-format": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, "node_modules/jest-config/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/string-width/-/string-width-5.1.2.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "license": "MIT", @@ -9694,7 +10484,7 @@ }, "node_modules/jest-config/node_modules/strip-ansi": { "version": "7.2.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/strip-ansi/-/strip-ansi-7.2.0.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", @@ -9710,7 +10500,7 @@ }, "node_modules/jest-config/node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "license": "MIT", @@ -9726,9 +10516,22 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/jest-config/node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-diff": { "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-diff/-/jest-diff-30.3.0.tgz", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.3.0.tgz", "integrity": "sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==", "dev": true, "license": "MIT", @@ -9742,9 +10545,19 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, + "node_modules/jest-diff/node_modules/@jest/diff-sequences": { + "version": "30.3.0", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.3.0.tgz", + "integrity": "sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, "node_modules/jest-docblock": { "version": "30.2.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-docblock/-/jest-docblock-30.2.0.tgz", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.2.0.tgz", "integrity": "sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==", "dev": true, "license": "MIT", @@ -9756,57 +10569,85 @@ } }, "node_modules/jest-each": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-each/-/jest-each-30.3.0.tgz", - "integrity": "sha512-V8eMndg/aZ+3LnCJgSm13IxS5XSBM22QSZc9BtPK8Dek6pm+hfUNfwBdvsB3d342bo1q7wnSkC38zjX259qZNA==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.2.0.tgz", + "integrity": "sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", - "@jest/types": "30.3.0", + "@jest/types": "30.2.0", "chalk": "^4.1.2", - "jest-util": "30.3.0", - "pretty-format": "30.3.0" + "jest-util": "30.2.0", + "pretty-format": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/pretty-format": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-environment-node": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-environment-node/-/jest-environment-node-30.3.0.tgz", - "integrity": "sha512-4i6HItw/JSiJVsC5q0hnKIe/hbYfZLVG9YJ/0pU9Hz2n/9qZe3Rhn5s5CUZA5ORZlcdT/vmAXRMyONXJwPrmYQ==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.2.0.tgz", + "integrity": "sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.3.0", - "@jest/fake-timers": "30.3.0", - "@jest/types": "30.3.0", + "@jest/environment": "30.2.0", + "@jest/fake-timers": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "jest-mock": "30.3.0", - "jest-util": "30.3.0", - "jest-validate": "30.3.0" + "jest-mock": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-haste-map": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-haste-map/-/jest-haste-map-30.3.0.tgz", - "integrity": "sha512-mMi2oqG4KRU0R9QEtscl87JzMXfUhbKaFqOxmjb2CKcbHcUGFrJCBWHmnTiUqi6JcnzoBlO4rWfpdl2k/RfLCA==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.2.0.tgz", + "integrity": "sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.3.0", + "@jest/types": "30.2.0", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", "jest-regex-util": "30.0.1", - "jest-util": "30.3.0", - "jest-worker": "30.3.0", - "picomatch": "^4.0.3", + "jest-util": "30.2.0", + "jest-worker": "30.2.0", + "micromatch": "^4.0.8", "walker": "^1.0.8" }, "engines": { @@ -9816,63 +10657,122 @@ "fsevents": "^2.3.3" } }, - "node_modules/jest-haste-map/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "node_modules/jest-leak-detector": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.2.0.tgz", + "integrity": "sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==", "dev": true, "license": "MIT", + "dependencies": { + "@jest/get-type": "30.1.0", + "pretty-format": "30.2.0" + }, "engines": { - "node": ">=12" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-leak-detector/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-leak-detector": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-leak-detector/-/jest-leak-detector-30.3.0.tgz", - "integrity": "sha512-cuKmUUGIjfXZAiGJ7TbEMx0bcqNdPPI6P1V+7aF+m/FUJqFDxkFR4JqkTu8ZOiU5AaX/x0hZ20KaaIPXQzbMGQ==", + "node_modules/jest-leak-detector/node_modules/pretty-format": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/get-type": "30.1.0", - "pretty-format": "30.3.0" + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-matcher-utils/-/jest-matcher-utils-30.3.0.tgz", - "integrity": "sha512-HEtc9uFQgaUHkC7nLSlQL3Tph4Pjxt/yiPvkIrrDCt9jhoLIgxaubo1G+CFOnmHYMxHwwdaSN7mkIFs6ZK8OhA==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz", + "integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", "chalk": "^4.1.2", - "jest-diff": "30.3.0", - "pretty-format": "30.3.0" + "jest-diff": "30.2.0", + "pretty-format": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/jest-diff": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz", + "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/diff-sequences": "30.0.1", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/pretty-format": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-message-util": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-message-util/-/jest-message-util-30.3.0.tgz", - "integrity": "sha512-Z/j4Bo+4ySJ+JPJN3b2Qbl9hDq3VrXmnjjGEWD/x0BCXeOXPTV1iZYYzl2X8c1MaCOL+ewMyNBcm88sboE6YWw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz", + "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@jest/types": "30.3.0", + "@jest/types": "30.2.0", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", - "picomatch": "^4.0.3", - "pretty-format": "30.3.0", + "micromatch": "^4.0.8", + "pretty-format": "30.2.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" }, @@ -9880,29 +10780,44 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-message-util/node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/pretty-format": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-mock": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-mock/-/jest-mock-30.3.0.tgz", - "integrity": "sha512-OTzICK8CpE+t4ndhKrwlIdbM6Pn8j00lvmSmq5ejiO+KxukbLjgOflKWMn3KE34EZdQm5RqTuKj+5RIEniYhog==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz", + "integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.3.0", + "@jest/types": "30.2.0", "@types/node": "*", - "jest-util": "30.3.0" + "jest-util": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -9910,7 +10825,7 @@ }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "license": "MIT", @@ -9928,7 +10843,7 @@ }, "node_modules/jest-regex-util": { "version": "30.0.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-regex-util/-/jest-regex-util-30.0.1.tgz", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", "dev": true, "license": "MIT", @@ -9937,18 +10852,18 @@ } }, "node_modules/jest-resolve": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-resolve/-/jest-resolve-30.3.0.tgz", - "integrity": "sha512-NRtTAHQlpd15F9rUR36jqwelbrDV/dY4vzNte3S2kxCKUJRYNd5/6nTSbYiak1VX5g8IoFF23Uj5TURkUW8O5g==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.2.0.tgz", + "integrity": "sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==", "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.1.2", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.3.0", + "jest-haste-map": "30.2.0", "jest-pnp-resolver": "^1.2.3", - "jest-util": "30.3.0", - "jest-validate": "30.3.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", "slash": "^3.0.0", "unrs-resolver": "^1.7.11" }, @@ -9957,46 +10872,46 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-resolve-dependencies/-/jest-resolve-dependencies-30.3.0.tgz", - "integrity": "sha512-9ev8s3YN6Hsyz9LV75XUwkCVFlwPbaFn6Wp75qnI0wzAINYWY8Fb3+6y59Rwd3QaS3kKXffHXsZMziMavfz/nw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.2.0.tgz", + "integrity": "sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==", "dev": true, "license": "MIT", "dependencies": { "jest-regex-util": "30.0.1", - "jest-snapshot": "30.3.0" + "jest-snapshot": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-runner": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-runner/-/jest-runner-30.3.0.tgz", - "integrity": "sha512-gDv6C9LGKWDPLia9TSzZwf4h3kMQCqyTpq+95PODnTRDO0g9os48XIYYkS6D236vjpBir2fF63YmJFtqkS5Duw==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.2.0.tgz", + "integrity": "sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.3.0", - "@jest/environment": "30.3.0", - "@jest/test-result": "30.3.0", - "@jest/transform": "30.3.0", - "@jest/types": "30.3.0", + "@jest/console": "30.2.0", + "@jest/environment": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "emittery": "^0.13.1", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", "jest-docblock": "30.2.0", - "jest-environment-node": "30.3.0", - "jest-haste-map": "30.3.0", - "jest-leak-detector": "30.3.0", - "jest-message-util": "30.3.0", - "jest-resolve": "30.3.0", - "jest-runtime": "30.3.0", - "jest-util": "30.3.0", - "jest-watcher": "30.3.0", - "jest-worker": "30.3.0", + "jest-environment-node": "30.2.0", + "jest-haste-map": "30.2.0", + "jest-leak-detector": "30.2.0", + "jest-message-util": "30.2.0", + "jest-resolve": "30.2.0", + "jest-runtime": "30.2.0", + "jest-util": "30.2.0", + "jest-watcher": "30.2.0", + "jest-worker": "30.2.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -10006,7 +10921,7 @@ }, "node_modules/jest-runner/node_modules/source-map-support": { "version": "0.5.13", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/source-map-support/-/source-map-support-0.5.13.tgz", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "license": "MIT", @@ -10016,32 +10931,32 @@ } }, "node_modules/jest-runtime": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-runtime/-/jest-runtime-30.3.0.tgz", - "integrity": "sha512-CgC+hIBJbuh78HEffkhNKcbXAytQViplcl8xupqeIWyKQF50kCQA8J7GeJCkjisC6hpnC9Muf8jV5RdtdFbGng==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.2.0.tgz", + "integrity": "sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.3.0", - "@jest/fake-timers": "30.3.0", - "@jest/globals": "30.3.0", + "@jest/environment": "30.2.0", + "@jest/fake-timers": "30.2.0", + "@jest/globals": "30.2.0", "@jest/source-map": "30.0.1", - "@jest/test-result": "30.3.0", - "@jest/transform": "30.3.0", - "@jest/types": "30.3.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "cjs-module-lexer": "^2.1.0", "collect-v8-coverage": "^1.0.2", - "glob": "^10.5.0", + "glob": "^10.3.10", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.3.0", - "jest-message-util": "30.3.0", - "jest-mock": "30.3.0", + "jest-haste-map": "30.2.0", + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", "jest-regex-util": "30.0.1", - "jest-resolve": "30.3.0", - "jest-snapshot": "30.3.0", - "jest-util": "30.3.0", + "jest-resolve": "30.2.0", + "jest-snapshot": "30.2.0", + "jest-util": "30.2.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -10051,7 +10966,7 @@ }, "node_modules/jest-runtime/node_modules/@isaacs/cliui": { "version": "8.0.2", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/@isaacs/cliui/-/cliui-8.0.2.tgz", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, "license": "ISC", @@ -10069,7 +10984,7 @@ }, "node_modules/jest-runtime/node_modules/ansi-regex": { "version": "6.2.2", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ansi-regex/-/ansi-regex-6.2.2.tgz", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "dev": true, "license": "MIT", @@ -10082,7 +10997,7 @@ }, "node_modules/jest-runtime/node_modules/ansi-styles": { "version": "6.2.3", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ansi-styles/-/ansi-styles-6.2.3.tgz", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "dev": true, "license": "MIT", @@ -10095,7 +11010,7 @@ }, "node_modules/jest-runtime/node_modules/glob": { "version": "10.5.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/glob/-/glob-10.5.0.tgz", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, @@ -10117,7 +11032,7 @@ }, "node_modules/jest-runtime/node_modules/jackspeak": { "version": "3.4.3", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jackspeak/-/jackspeak-3.4.3.tgz", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "license": "BlueOak-1.0.0", @@ -10133,14 +11048,14 @@ }, "node_modules/jest-runtime/node_modules/lru-cache": { "version": "10.4.3", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/lru-cache/-/lru-cache-10.4.3.tgz", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, "license": "ISC" }, "node_modules/jest-runtime/node_modules/path-scurry": { "version": "1.11.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/path-scurry/-/path-scurry-1.11.1.tgz", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "license": "BlueOak-1.0.0", @@ -10157,7 +11072,7 @@ }, "node_modules/jest-runtime/node_modules/string-width": { "version": "5.1.2", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/string-width/-/string-width-5.1.2.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, "license": "MIT", @@ -10175,7 +11090,7 @@ }, "node_modules/jest-runtime/node_modules/strip-ansi": { "version": "7.2.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/strip-ansi/-/strip-ansi-7.2.0.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", @@ -10191,7 +11106,7 @@ }, "node_modules/jest-runtime/node_modules/wrap-ansi": { "version": "8.1.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, "license": "MIT", @@ -10208,9 +11123,9 @@ } }, "node_modules/jest-snapshot": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-snapshot/-/jest-snapshot-30.3.0.tgz", - "integrity": "sha512-f14c7atpb4O2DeNhwcvS810Y63wEn8O1HqK/luJ4F6M4NjvxmAKQwBUWjbExUtMxWJQ0wVgmCKymeJK6NZMnfQ==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.2.0.tgz", + "integrity": "sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==", "dev": true, "license": "MIT", "dependencies": { @@ -10219,20 +11134,20 @@ "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/types": "^7.27.3", - "@jest/expect-utils": "30.3.0", + "@jest/expect-utils": "30.2.0", "@jest/get-type": "30.1.0", - "@jest/snapshot-utils": "30.3.0", - "@jest/transform": "30.3.0", - "@jest/types": "30.3.0", + "@jest/snapshot-utils": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", "babel-preset-current-node-syntax": "^1.2.0", "chalk": "^4.1.2", - "expect": "30.3.0", + "expect": "30.2.0", "graceful-fs": "^4.2.11", - "jest-diff": "30.3.0", - "jest-matcher-utils": "30.3.0", - "jest-message-util": "30.3.0", - "jest-util": "30.3.0", - "pretty-format": "30.3.0", + "jest-diff": "30.2.0", + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-util": "30.2.0", + "pretty-format": "30.2.0", "semver": "^7.7.2", "synckit": "^0.11.8" }, @@ -10240,19 +11155,63 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/jest-diff": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz", + "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/diff-sequences": "30.0.1", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/pretty-format": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, "node_modules/jest-util": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-util/-/jest-util-30.3.0.tgz", - "integrity": "sha512-/jZDa00a3Sz7rdyu55NLrQCIrbyIkbBxareejQI315f/i8HjYN+ZWsDLLpoQSiUIEIyZF/R8fDg3BmB8AtHttg==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.3.0", + "@jest/types": "30.2.0", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", - "picomatch": "^4.0.3" + "picomatch": "^4.0.2" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -10260,7 +11219,7 @@ }, "node_modules/jest-util/node_modules/ci-info": { "version": "4.4.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ci-info/-/ci-info-4.4.0.tgz", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", "dev": true, "funding": [ @@ -10276,7 +11235,7 @@ }, "node_modules/jest-util/node_modules/picomatch": { "version": "4.0.4", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/picomatch/-/picomatch-4.0.4.tgz", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", @@ -10288,26 +11247,39 @@ } }, "node_modules/jest-validate": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-validate/-/jest-validate-30.3.0.tgz", - "integrity": "sha512-I/xzC8h5G+SHCb2P2gWkJYrNiTbeL47KvKeW5EzplkyxzBRBw1ssSHlI/jXec0ukH2q7x2zAWQm7015iusg62Q==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.2.0.tgz", + "integrity": "sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", - "@jest/types": "30.3.0", + "@jest/types": "30.2.0", "camelcase": "^6.3.0", "chalk": "^4.1.2", "leven": "^3.1.0", - "pretty-format": "30.3.0" + "pretty-format": "30.2.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/jest-validate/node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/camelcase/-/camelcase-6.3.0.tgz", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "license": "MIT", @@ -10318,20 +11290,35 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/jest-validate/node_modules/pretty-format": { + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, "node_modules/jest-watcher": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-watcher/-/jest-watcher-30.3.0.tgz", - "integrity": "sha512-PJ1d9ThtTR8aMiBWUdcownq9mDdLXsQzJayTk4kmaBRHKvwNQn+ANveuhEBUyNI2hR1TVhvQ8D5kHubbzBHR/w==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.2.0.tgz", + "integrity": "sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "30.3.0", - "@jest/types": "30.3.0", + "@jest/test-result": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "emittery": "^0.13.1", - "jest-util": "30.3.0", + "jest-util": "30.2.0", "string-length": "^4.0.2" }, "engines": { @@ -10339,15 +11326,15 @@ } }, "node_modules/jest-worker": { - "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/jest-worker/-/jest-worker-30.3.0.tgz", - "integrity": "sha512-DrCKkaQwHexjRUFTmPzs7sHQe0TSj9nvDALKGdwmK5mW9v7j90BudWirKAJHt3QQ9Dhrg1F7DogPzhChppkJpQ==", + "version": "30.2.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.2.0.tgz", + "integrity": "sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==", "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", - "jest-util": "30.3.0", + "jest-util": "30.2.0", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" }, @@ -10357,7 +11344,7 @@ }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/supports-color/-/supports-color-8.1.1.tgz", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", @@ -10373,6 +11360,8 @@ }, "node_modules/jju": { "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", "dev": true, "license": "MIT" }, @@ -10383,6 +11372,8 @@ }, "node_modules/js-yaml": { "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "license": "MIT", "dependencies": { @@ -10438,6 +11429,8 @@ }, "node_modules/json-stringify-nice": { "version": "1.1.4", + "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", + "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==", "dev": true, "license": "ISC", "funding": { @@ -10446,6 +11439,8 @@ }, "node_modules/json-stringify-safe": { "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "dev": true, "license": "ISC" }, @@ -10462,11 +11457,15 @@ }, "node_modules/jsonc-parser": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", + "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", "dev": true, "license": "MIT" }, "node_modules/jsonfile": { "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", "dev": true, "license": "MIT", "dependencies": { @@ -10478,6 +11477,8 @@ }, "node_modules/jsonparse": { "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true, "engines": [ "node >= 0.2.0" @@ -10486,6 +11487,8 @@ }, "node_modules/JSONStream": { "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", "dev": true, "license": "(MIT OR Apache-2.0)", "dependencies": { @@ -10516,11 +11519,15 @@ }, "node_modules/just-diff": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-6.0.2.tgz", + "integrity": "sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==", "dev": true, "license": "MIT" }, "node_modules/just-diff-apply": { "version": "5.5.0", + "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz", + "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==", "dev": true, "license": "MIT" }, @@ -10628,7 +11635,9 @@ } }, "node_modules/karma/node_modules/minimatch": { - "version": "3.1.2", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -10684,11 +11693,12 @@ } }, "node_modules/lerna": { - "version": "9.0.4", + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/lerna/-/lerna-9.0.7.tgz", + "integrity": "sha512-PMjbSWYfwL1yZ5c1D2PZuFyzmtYhLdn0f76uG8L25g6eYy34j+2jPb4Q6USx1UJvxVtxkdVEeAAWS/WxgJ8VZA==", "dev": true, "license": "MIT", "dependencies": { - "@lerna/create": "9.0.4", "@npmcli/arborist": "9.1.6", "@npmcli/package-json": "7.0.2", "@npmcli/run-script": "10.0.3", @@ -10698,6 +11708,7 @@ "aproba": "2.0.0", "byte-size": "8.1.1", "chalk": "4.1.0", + "ci-info": "4.3.1", "cmd-shim": "6.0.3", "color-support": "1.1.3", "columnify": "1.6.0", @@ -10710,7 +11721,6 @@ "envinfo": "7.13.0", "execa": "5.0.0", "fs-extra": "^11.2.0", - "get-port": "5.1.1", "get-stream": "6.0.0", "git-url-parse": "14.0.0", "glob-parent": "6.0.2", @@ -10720,16 +11730,13 @@ "init-package-json": "8.2.2", "inquirer": "12.9.6", "is-ci": "3.0.1", - "is-stream": "2.0.0", "jest-diff": ">=30.0.0 < 31", "js-yaml": "4.1.1", "libnpmaccess": "10.0.3", "libnpmpublish": "11.1.2", "load-json-file": "6.2.0", - "make-dir": "4.0.0", "make-fetch-happen": "15.0.2", - "minimatch": "3.0.5", - "multimatch": "5.0.0", + "minimatch": "3.1.4", "npm-package-arg": "13.0.1", "npm-packlist": "10.0.3", "npm-registry-fetch": "19.1.0", @@ -10741,28 +11748,21 @@ "p-reduce": "2.1.0", "p-waterfall": "2.1.1", "pacote": "21.0.1", - "pify": "5.0.0", "read-cmd-shim": "4.0.0", - "resolve-from": "5.0.0", - "rimraf": "^6.1.2", "semver": "7.7.2", - "set-blocking": "^2.0.0", "signal-exit": "3.0.7", "slash": "3.0.0", "ssri": "12.0.0", "string-width": "^4.2.3", - "tar": "7.5.7", - "temp-dir": "1.0.0", + "tar": "7.5.11", "through": "2.3.8", "tinyglobby": "0.2.12", "typescript": ">=3 < 6", "upath": "2.0.1", - "uuid": "^11.1.0", "validate-npm-package-license": "3.0.4", "validate-npm-package-name": "6.0.2", "wide-align": "1.1.5", "write-file-atomic": "5.0.1", - "write-pkg": "4.0.0", "yargs": "17.7.2", "yargs-parser": "21.1.1" }, @@ -10775,6 +11775,8 @@ }, "node_modules/lerna/node_modules/brace-expansion": { "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -10784,6 +11786,8 @@ }, "node_modules/lerna/node_modules/chalk": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "license": "MIT", "dependencies": { @@ -10799,6 +11803,8 @@ }, "node_modules/lerna/node_modules/cliui": { "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "license": "ISC", "dependencies": { @@ -10812,6 +11818,8 @@ }, "node_modules/lerna/node_modules/dedent": { "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -10825,6 +11833,8 @@ }, "node_modules/lerna/node_modules/envinfo": { "version": "7.13.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.13.0.tgz", + "integrity": "sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==", "dev": true, "license": "MIT", "bin": { @@ -10836,6 +11846,8 @@ }, "node_modules/lerna/node_modules/execa": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", + "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", "dev": true, "license": "MIT", "dependencies": { @@ -10852,91 +11864,45 @@ "engines": { "node": ">=10" }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/lerna/node_modules/fdir": { - "version": "6.5.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/lerna/node_modules/get-stream": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lerna/node_modules/glob": { - "version": "13.0.5", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "minimatch": "^10.2.1", - "minipass": "^7.1.2", - "path-scurry": "^2.0.0" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/lerna/node_modules/glob/node_modules/balanced-match": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "jackspeak": "^4.2.3" - }, - "engines": { - "node": "20 || >=22" + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/lerna/node_modules/glob/node_modules/brace-expansion": { - "version": "5.0.2", + "node_modules/lerna/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, "engines": { - "node": "20 || >=22" + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } } }, - "node_modules/lerna/node_modules/glob/node_modules/minimatch": { - "version": "10.2.1", + "node_modules/lerna/node_modules/get-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.0.tgz", + "integrity": "sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==", "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "brace-expansion": "^5.0.2" - }, + "license": "MIT", "engines": { - "node": "20 || >=22" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lerna/node_modules/import-local": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "license": "MIT", "dependencies": { @@ -10953,16 +11919,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lerna/node_modules/is-stream": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/lerna/node_modules/minimatch": { - "version": "3.0.5", + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.4.tgz", + "integrity": "sha512-twmL+S8+7yIsE9wsqgzU3E8/LumN3M3QELrBZ20OdmQ9jB2JvW5oZtBEmft84k/Gs5CG9mqtWc6Y9vW+JEzGxw==", "dev": true, "license": "ISC", "dependencies": { @@ -10973,7 +11933,9 @@ } }, "node_modules/lerna/node_modules/picomatch": { - "version": "4.0.3", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { @@ -10983,34 +11945,10 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/lerna/node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/lerna/node_modules/rimraf": { - "version": "6.1.3", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "glob": "^13.0.3", - "package-json-from-dist": "^1.0.1" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/lerna/node_modules/semver": { "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", "bin": { @@ -11022,6 +11960,8 @@ }, "node_modules/lerna/node_modules/tinyglobby": { "version": "0.2.12", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", + "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", "dev": true, "license": "MIT", "dependencies": { @@ -11037,6 +11977,8 @@ }, "node_modules/lerna/node_modules/yargs": { "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "license": "MIT", "dependencies": { @@ -11054,6 +11996,8 @@ }, "node_modules/lerna/node_modules/yargs-parser": { "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "license": "ISC", "engines": { @@ -11062,7 +12006,7 @@ }, "node_modules/leven": { "version": "3.1.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/leven/-/leven-3.1.0.tgz", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, "license": "MIT", @@ -11084,6 +12028,8 @@ }, "node_modules/libnpmaccess": { "version": "10.0.3", + "resolved": "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-10.0.3.tgz", + "integrity": "sha512-JPHTfWJxIK+NVPdNMNGnkz4XGX56iijPbe0qFWbdt68HL+kIvSzh+euBL8npLZvl2fpaxo+1eZSdoG15f5YdIQ==", "dev": true, "license": "ISC", "dependencies": { @@ -11096,6 +12042,8 @@ }, "node_modules/libnpmpublish": { "version": "11.1.2", + "resolved": "https://registry.npmjs.org/libnpmpublish/-/libnpmpublish-11.1.2.tgz", + "integrity": "sha512-tNcU3cLH7toloAzhOOrBDhjzgbxpyuYvkf+BPPnnJCdc5EIcdJ8JcT+SglvCQKKyZ6m9dVXtCVlJcA6csxKdEA==", "dev": true, "license": "ISC", "dependencies": { @@ -11112,20 +12060,6 @@ "node": "^20.17.0 || >=22.9.0" } }, - "node_modules/libnpmpublish/node_modules/ci-info": { - "version": "4.4.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/lines-and-columns": { "version": "1.2.4", "dev": true, @@ -11141,6 +12075,8 @@ }, "node_modules/load-json-file": { "version": "6.2.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", + "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11155,6 +12091,8 @@ }, "node_modules/load-json-file/node_modules/type-fest": { "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -11163,6 +12101,8 @@ }, "node_modules/loader-runner": { "version": "4.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", + "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", "dev": true, "license": "MIT", "engines": { @@ -11189,11 +12129,15 @@ }, "node_modules/lodash": { "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", "dev": true, "license": "MIT" }, "node_modules/lodash.ismatch": { "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", "dev": true, "license": "MIT" }, @@ -11209,6 +12153,8 @@ }, "node_modules/log-symbols": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "license": "MIT", "dependencies": { @@ -11283,6 +12229,8 @@ }, "node_modules/make-fetch-happen": { "version": "15.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-15.0.2.tgz", + "integrity": "sha512-sI1NY4lWlXBAfjmCtVWIIpBypbBdhHtcjnwnv+gtCnsaOffyFil3aidszGC8hgzJe+fT1qix05sWxmD/Bmf/oQ==", "dev": true, "license": "ISC", "dependencies": { @@ -11312,6 +12260,8 @@ }, "node_modules/map-obj": { "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", "dev": true, "license": "MIT", "engines": { @@ -11367,6 +12317,8 @@ }, "node_modules/meow": { "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", "dev": true, "license": "MIT", "dependencies": { @@ -11391,6 +12343,8 @@ }, "node_modules/meow/node_modules/find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", "dependencies": { @@ -11403,11 +12357,15 @@ }, "node_modules/meow/node_modules/hosted-git-info": { "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true, "license": "ISC" }, "node_modules/meow/node_modules/locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", "dependencies": { @@ -11419,6 +12377,8 @@ }, "node_modules/meow/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", "dependencies": { @@ -11433,6 +12393,8 @@ }, "node_modules/meow/node_modules/p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", "dependencies": { @@ -11444,6 +12406,8 @@ }, "node_modules/meow/node_modules/read-pkg": { "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "license": "MIT", "dependencies": { @@ -11458,6 +12422,8 @@ }, "node_modules/meow/node_modules/read-pkg-up": { "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "license": "MIT", "dependencies": { @@ -11474,6 +12440,8 @@ }, "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -11482,6 +12450,8 @@ }, "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -11493,6 +12463,8 @@ }, "node_modules/meow/node_modules/read-pkg/node_modules/type-fest": { "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -11501,6 +12473,8 @@ }, "node_modules/meow/node_modules/semver": { "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", "dev": true, "license": "ISC", "bin": { @@ -11509,6 +12483,8 @@ }, "node_modules/meow/node_modules/type-fest": { "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -11525,6 +12501,8 @@ }, "node_modules/merge2": { "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "license": "MIT", "engines": { @@ -11583,6 +12561,8 @@ }, "node_modules/min-indent": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", "dev": true, "license": "MIT", "engines": { @@ -11590,11 +12570,13 @@ } }, "node_modules/minimatch": { - "version": "9.0.5", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^2.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -11613,6 +12595,8 @@ }, "node_modules/minimist-options": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", "dev": true, "license": "MIT", "dependencies": { @@ -11625,15 +12609,19 @@ } }, "node_modules/minipass": { - "version": "7.1.2", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", "dev": true, - "license": "ISC", + "license": "BlueOak-1.0.0", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/minipass-collect": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", "dev": true, "license": "ISC", "dependencies": { @@ -11645,6 +12633,8 @@ }, "node_modules/minipass-fetch": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-4.0.1.tgz", + "integrity": "sha512-j7U11C5HXigVuutxebFadoYBbd7VSdZWggSe64NVdvWNBqGAiXPL2QVCehjmw7lY1oF9gOllYbORh+hiNgfPgQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11661,6 +12651,8 @@ }, "node_modules/minipass-flush": { "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, "license": "ISC", "dependencies": { @@ -11672,6 +12664,8 @@ }, "node_modules/minipass-flush/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "license": "ISC", "dependencies": { @@ -11683,11 +12677,15 @@ }, "node_modules/minipass-flush/node_modules/yallist": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" }, "node_modules/minipass-pipeline": { "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, "license": "ISC", "dependencies": { @@ -11699,6 +12697,8 @@ }, "node_modules/minipass-pipeline/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "license": "ISC", "dependencies": { @@ -11710,11 +12710,15 @@ }, "node_modules/minipass-pipeline/node_modules/yallist": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" }, "node_modules/minipass-sized": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, "license": "ISC", "dependencies": { @@ -11726,6 +12730,8 @@ }, "node_modules/minipass-sized/node_modules/minipass": { "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "license": "ISC", "dependencies": { @@ -11737,11 +12743,15 @@ }, "node_modules/minipass-sized/node_modules/yallist": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" }, "node_modules/minizlib": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", "dev": true, "license": "MIT", "dependencies": { @@ -11764,6 +12774,8 @@ }, "node_modules/modify-values": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", "dev": true, "license": "MIT", "engines": { @@ -11783,54 +12795,10 @@ "dev": true, "license": "MIT" }, - "node_modules/multimatch": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/multimatch/node_modules/arrify": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/multimatch/node_modules/brace-expansion": { - "version": "1.1.12", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/multimatch/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/mute-stream": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", "dev": true, "license": "ISC", "engines": { @@ -11858,6 +12826,8 @@ }, "node_modules/negotiator": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz", + "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==", "dev": true, "license": "MIT", "engines": { @@ -11876,6 +12846,8 @@ }, "node_modules/node-gyp": { "version": "12.2.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-12.2.0.tgz", + "integrity": "sha512-q23WdzrQv48KozXlr0U1v9dwO/k59NHeSzn6loGcasyf0UnSrtzs8kRxM+mfwJSf0DkX0s43hcqgnSO4/VNthQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11899,6 +12871,8 @@ }, "node_modules/node-gyp/node_modules/abbrev": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-4.0.0.tgz", + "integrity": "sha512-a1wflyaL0tHtJSmLSOVybYhy22vRih4eduhhrkcjgrWGnRfrZtovJ2FRjxuTtkkj47O/baf0R86QU5OuYpz8fA==", "dev": true, "license": "ISC", "engines": { @@ -11907,6 +12881,8 @@ }, "node_modules/node-gyp/node_modules/isexe": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-4.0.0.tgz", + "integrity": "sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -11915,6 +12891,8 @@ }, "node_modules/node-gyp/node_modules/nopt": { "version": "9.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-9.0.0.tgz", + "integrity": "sha512-Zhq3a+yFKrYwSBluL4H9XP3m3y5uvQkB/09CwDruCiRmR/UJYnn9W4R48ry0uGC70aeTPKLynBtscP9efFFcPw==", "dev": true, "license": "ISC", "dependencies": { @@ -11929,6 +12907,8 @@ }, "node_modules/node-gyp/node_modules/proc-log": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", "engines": { @@ -11937,6 +12917,8 @@ }, "node_modules/node-gyp/node_modules/which": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/which/-/which-6.0.1.tgz", + "integrity": "sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==", "dev": true, "license": "ISC", "dependencies": { @@ -11954,13 +12936,10 @@ "dev": true, "license": "MIT" }, - "node_modules/node-machine-id": { - "version": "1.1.12", - "dev": true, - "license": "MIT" - }, "node_modules/node-releases": { "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", "dev": true, "license": "MIT" }, @@ -11996,6 +12975,8 @@ }, "node_modules/nopt": { "version": "8.1.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-8.1.0.tgz", + "integrity": "sha512-ieGu42u/Qsa4TFktmaKEwM6MQH0pOWnaB3htzh0JRtx84+Mebc0cbZYN5bC+6WTZ4+77xrL9Pn5m7CV6VIkV7A==", "dev": true, "license": "ISC", "dependencies": { @@ -12010,6 +12991,8 @@ }, "node_modules/normalize-package-data": { "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -12024,6 +13007,8 @@ }, "node_modules/normalize-package-data/node_modules/hosted-git-info": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, "license": "ISC", "dependencies": { @@ -12035,6 +13020,8 @@ }, "node_modules/normalize-package-data/node_modules/lru-cache": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "license": "ISC", "dependencies": { @@ -12046,6 +13033,8 @@ }, "node_modules/normalize-package-data/node_modules/yallist": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true, "license": "ISC" }, @@ -12059,6 +13048,8 @@ }, "node_modules/npm-bundled": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-4.0.0.tgz", + "integrity": "sha512-IxaQZDMsqfQ2Lz37VvyyEtKLe8FsRZuysmedy/N06TU1RyVppYKXrO4xIhR0F+7ubIBox6Q7nir6fQI3ej39iA==", "dev": true, "license": "ISC", "dependencies": { @@ -12070,6 +13061,8 @@ }, "node_modules/npm-install-checks": { "version": "7.1.2", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-7.1.2.tgz", + "integrity": "sha512-z9HJBCYw9Zr8BqXcllKIs5nI+QggAImbBdHphOzVYrz2CB4iQ6FzWyKmlqDZua+51nAu7FcemlbTc9VgQN5XDQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -12081,6 +13074,8 @@ }, "node_modules/npm-normalize-package-bin": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-4.0.0.tgz", + "integrity": "sha512-TZKxPvItzai9kN9H/TkmCtx/ZN/hvr3vUycjlfmH0ootY9yFBzNOpiXAdIn1Iteqsvk4lQn6B5PTrt+n6h8k/w==", "dev": true, "license": "ISC", "engines": { @@ -12089,6 +13084,8 @@ }, "node_modules/npm-package-arg": { "version": "13.0.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-13.0.1.tgz", + "integrity": "sha512-6zqls5xFvJbgFjB1B2U6yITtyGBjDBORB7suI4zA4T/sZ1OmkMFlaQSNB/4K0LtXNA1t4OprAFxPisadK5O2ag==", "dev": true, "license": "ISC", "dependencies": { @@ -12103,6 +13100,8 @@ }, "node_modules/npm-packlist": { "version": "10.0.3", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-10.0.3.tgz", + "integrity": "sha512-zPukTwJMOu5X5uvm0fztwS5Zxyvmk38H/LfidkOMt3gbZVCyro2cD/ETzwzVPcWZA3JOyPznfUN/nkyFiyUbxg==", "dev": true, "license": "ISC", "dependencies": { @@ -12115,6 +13114,8 @@ }, "node_modules/npm-packlist/node_modules/proc-log": { "version": "6.1.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-6.1.0.tgz", + "integrity": "sha512-iG+GYldRf2BQ0UDUAd6JQ/RwzaQy6mXmsk/IzlYyal4A4SNFw54MeH4/tLkF4I5WoWG9SQwuqWzS99jaFQHBuQ==", "dev": true, "license": "ISC", "engines": { @@ -12123,6 +13124,8 @@ }, "node_modules/npm-pick-manifest": { "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-11.0.3.tgz", + "integrity": "sha512-buzyCfeoGY/PxKqmBqn1IUJrZnUi1VVJTdSSRPGI60tJdUhUoSQFhs0zycJokDdOznQentgrpf8LayEHyyYlqQ==", "dev": true, "license": "ISC", "dependencies": { @@ -12137,6 +13140,8 @@ }, "node_modules/npm-pick-manifest/node_modules/npm-install-checks": { "version": "8.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-8.0.0.tgz", + "integrity": "sha512-ScAUdMpyzkbpxoNekQ3tNRdFI8SJ86wgKZSQZdUxT+bj0wVFpsEMWnkXP0twVe1gJyNF5apBWDJhhIbgrIViRA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -12148,6 +13153,8 @@ }, "node_modules/npm-pick-manifest/node_modules/npm-normalize-package-bin": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-5.0.0.tgz", + "integrity": "sha512-CJi3OS4JLsNMmr2u07OJlhcrPxCeOeP/4xq67aWNai6TNWWbTrlNDgl8NcFKVlcBKp18GPj+EzbNIgrBfZhsag==", "dev": true, "license": "ISC", "engines": { @@ -12156,6 +13163,8 @@ }, "node_modules/npm-registry-fetch": { "version": "19.1.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-19.1.0.tgz", + "integrity": "sha512-xyZLfs7TxPu/WKjHUs0jZOPinzBAI32kEUel6za0vH+JUTnFZ5zbHI1ZoGZRDm6oMjADtrli6FxtMlk/5ABPNw==", "dev": true, "license": "ISC", "dependencies": { @@ -12274,7 +13283,9 @@ } }, "node_modules/npm-run-all/node_modules/minimatch": { - "version": "3.1.2", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -12353,16 +13364,19 @@ } }, "node_modules/nx": { - "version": "22.5.1", + "version": "22.6.4", + "resolved": "https://registry.npmjs.org/nx/-/nx-22.6.4.tgz", + "integrity": "sha512-WEaCnLKeO9RhQAOBMfXgYO/Lx5wL4ARCtRGiYCjJtAJIZ5kcVn4uPKL2Xz1xekpF7ef/+YNrUQSrblx47Ms9Rg==", "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { + "@ltd/j-toml": "^1.38.0", "@napi-rs/wasm-runtime": "0.2.4", "@yarnpkg/lockfile": "^1.1.0", "@yarnpkg/parsers": "3.0.2", "@zkochan/js-yaml": "0.0.7", - "axios": "^1.12.0", + "axios": "1.12.0", "cli-cursor": "3.1.0", "cli-spinners": "2.6.1", "cliui": "^8.0.1", @@ -12377,8 +13391,7 @@ "jest-diff": "^30.0.2", "jsonc-parser": "3.2.0", "lines-and-columns": "2.0.3", - "minimatch": "10.1.1", - "node-machine-id": "1.1.12", + "minimatch": "10.2.4", "npm-run-path": "^4.0.1", "open": "^8.4.0", "ora": "5.3.0", @@ -12400,20 +13413,20 @@ "nx-cloud": "bin/nx-cloud.js" }, "optionalDependencies": { - "@nx/nx-darwin-arm64": "22.5.1", - "@nx/nx-darwin-x64": "22.5.1", - "@nx/nx-freebsd-x64": "22.5.1", - "@nx/nx-linux-arm-gnueabihf": "22.5.1", - "@nx/nx-linux-arm64-gnu": "22.5.1", - "@nx/nx-linux-arm64-musl": "22.5.1", - "@nx/nx-linux-x64-gnu": "22.5.1", - "@nx/nx-linux-x64-musl": "22.5.1", - "@nx/nx-win32-arm64-msvc": "22.5.1", - "@nx/nx-win32-x64-msvc": "22.5.1" + "@nx/nx-darwin-arm64": "22.6.4", + "@nx/nx-darwin-x64": "22.6.4", + "@nx/nx-freebsd-x64": "22.6.4", + "@nx/nx-linux-arm-gnueabihf": "22.6.4", + "@nx/nx-linux-arm64-gnu": "22.6.4", + "@nx/nx-linux-arm64-musl": "22.6.4", + "@nx/nx-linux-x64-gnu": "22.6.4", + "@nx/nx-linux-x64-musl": "22.6.4", + "@nx/nx-win32-arm64-msvc": "22.6.4", + "@nx/nx-win32-x64-msvc": "22.6.4" }, "peerDependencies": { - "@swc-node/register": "1.11.1", - "@swc/core": "1.15.8" + "@swc-node/register": "^1.11.1", + "@swc/core": "^1.15.8" }, "peerDependenciesMeta": { "@swc-node/register": { @@ -12426,6 +13439,8 @@ }, "node_modules/nx/node_modules/@napi-rs/wasm-runtime": { "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.4.tgz", + "integrity": "sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12436,14 +13451,41 @@ }, "node_modules/nx/node_modules/@tybys/wasm-util": { "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", "dev": true, "license": "MIT", "dependencies": { "tslib": "^2.4.0" } }, + "node_modules/nx/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/nx/node_modules/brace-expansion": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, "node_modules/nx/node_modules/cliui": { "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "license": "ISC", "dependencies": { @@ -12457,6 +13499,8 @@ }, "node_modules/nx/node_modules/ignore": { "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, "license": "MIT", "engines": { @@ -12465,6 +13509,8 @@ }, "node_modules/nx/node_modules/lines-and-columns": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.3.tgz", + "integrity": "sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==", "dev": true, "license": "MIT", "engines": { @@ -12472,14 +13518,16 @@ } }, "node_modules/nx/node_modules/minimatch": { - "version": "10.1.1", + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", + "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" + "brace-expansion": "^5.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -12487,6 +13535,8 @@ }, "node_modules/nx/node_modules/strip-bom": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "license": "MIT", "engines": { @@ -12495,6 +13545,8 @@ }, "node_modules/nx/node_modules/tsconfig-paths": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", "dev": true, "license": "MIT", "dependencies": { @@ -12508,6 +13560,8 @@ }, "node_modules/nx/node_modules/yargs": { "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "license": "MIT", "dependencies": { @@ -12525,6 +13579,8 @@ }, "node_modules/nx/node_modules/yargs-parser": { "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "license": "ISC", "engines": { @@ -12674,6 +13730,8 @@ }, "node_modules/open": { "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12714,6 +13772,8 @@ }, "node_modules/ora": { "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", + "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", "dev": true, "license": "MIT", "dependencies": { @@ -12751,6 +13811,8 @@ }, "node_modules/p-finally": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", "dev": true, "license": "MIT", "engines": { @@ -12787,6 +13849,8 @@ }, "node_modules/p-map": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12801,6 +13865,8 @@ }, "node_modules/p-map-series": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-2.1.0.tgz", + "integrity": "sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==", "dev": true, "license": "MIT", "engines": { @@ -12809,6 +13875,8 @@ }, "node_modules/p-pipe": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-3.1.0.tgz", + "integrity": "sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==", "dev": true, "license": "MIT", "engines": { @@ -12820,6 +13888,8 @@ }, "node_modules/p-queue": { "version": "6.6.2", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz", + "integrity": "sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12835,6 +13905,8 @@ }, "node_modules/p-reduce": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz", + "integrity": "sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==", "dev": true, "license": "MIT", "engines": { @@ -12843,6 +13915,8 @@ }, "node_modules/p-timeout": { "version": "3.2.0", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz", + "integrity": "sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==", "dev": true, "license": "MIT", "dependencies": { @@ -12862,6 +13936,8 @@ }, "node_modules/p-waterfall": { "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-waterfall/-/p-waterfall-2.1.1.tgz", + "integrity": "sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==", "dev": true, "license": "MIT", "dependencies": { @@ -12876,11 +13952,15 @@ }, "node_modules/package-json-from-dist": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", "dev": true, "license": "BlueOak-1.0.0" }, "node_modules/pacote": { "version": "21.0.1", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-21.0.1.tgz", + "integrity": "sha512-LHGIUQUrcDIJUej53KJz1BPvUuHrItrR2yrnN0Kl9657cJ0ZT6QJHk9wWPBnQZhYT5KLyZWrk9jaYc2aKDu4yw==", "dev": true, "license": "ISC", "dependencies": { @@ -12911,6 +13991,8 @@ }, "node_modules/pacote/node_modules/@npmcli/git": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-6.0.3.tgz", + "integrity": "sha512-GUYESQlxZRAdhs3UhbB6pVRNUELQOHXwK9ruDkwmCv2aZ5y0SApQzUJCg02p3A7Ue2J5hxvlk1YI53c00NmRyQ==", "dev": true, "license": "ISC", "dependencies": { @@ -12929,6 +14011,8 @@ }, "node_modules/pacote/node_modules/@npmcli/promise-spawn": { "version": "8.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-8.0.3.tgz", + "integrity": "sha512-Yb00SWaL4F8w+K8YGhQ55+xE4RUNdMHV43WZGsiTM92gS+lC0mGsn7I4hLug7pbao035S6bj3Y3w0cUNGLfmkg==", "dev": true, "license": "ISC", "dependencies": { @@ -12940,6 +14024,8 @@ }, "node_modules/pacote/node_modules/hosted-git-info": { "version": "8.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.1.0.tgz", + "integrity": "sha512-Rw/B2DNQaPBICNXEm8balFz9a6WpZrkCGpcWFpy7nCj+NyhSdqXipmfvtmWt9xGfp0wZnBxB+iVpLmQMYt47Tw==", "dev": true, "license": "ISC", "dependencies": { @@ -12951,6 +14037,8 @@ }, "node_modules/pacote/node_modules/ini": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-5.0.0.tgz", + "integrity": "sha512-+N0ngpO3e7cRUWOJAS7qw0IZIVc6XPrW4MlFBdD066F2L4k1L6ker3hLqSq7iXxU5tgS4WGkIUElWn5vogAEnw==", "dev": true, "license": "ISC", "engines": { @@ -12959,6 +14047,8 @@ }, "node_modules/pacote/node_modules/isexe": { "version": "3.1.5", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.5.tgz", + "integrity": "sha512-6B3tLtFqtQS4ekarvLVMZ+X+VlvQekbe4taUkf/rhVO3d/h0M2rfARm/pXLcPEsjjMsFgrFgSrhQIxcSVrBz8w==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -12967,11 +14057,15 @@ }, "node_modules/pacote/node_modules/lru-cache": { "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true, "license": "ISC" }, "node_modules/pacote/node_modules/npm-pick-manifest": { "version": "10.0.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-10.0.0.tgz", + "integrity": "sha512-r4fFa4FqYY8xaM7fHecQ9Z2nE9hgNfJR+EmoKv0+chvzWkBcORX3r0FpTByP+CbOVJDladMXnPQGVN8PBLGuTQ==", "dev": true, "license": "ISC", "dependencies": { @@ -12986,6 +14080,8 @@ }, "node_modules/pacote/node_modules/npm-pick-manifest/node_modules/npm-package-arg": { "version": "12.0.2", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-12.0.2.tgz", + "integrity": "sha512-f1NpFjNI9O4VbKMOlA5QoBq/vSQPORHcTZ2feJpFkTHJ9eQkdlmZEKSjcAhxTGInC7RlEyScT9ui67NaOsjFWA==", "dev": true, "license": "ISC", "dependencies": { @@ -13000,6 +14096,8 @@ }, "node_modules/pacote/node_modules/which": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz", + "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==", "dev": true, "license": "ISC", "dependencies": { @@ -13025,6 +14123,8 @@ }, "node_modules/parse-conflict-json": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-4.0.0.tgz", + "integrity": "sha512-37CN2VtcuvKgHUs8+0b1uJeEsbGn61GRHz469C94P5xiOoqpDYJYwjg4RY9Vmz39WyZAVkR5++nbJwLMIgOCnQ==", "dev": true, "license": "ISC", "dependencies": { @@ -13038,6 +14138,8 @@ }, "node_modules/parse-conflict-json/node_modules/json-parse-even-better-errors": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-4.0.0.tgz", + "integrity": "sha512-lR4MXjGNgkJc7tkQ97kb2nuEMnNCyU//XYVH0MKTGcXEiSudQ5MKGKen3C5QubYy0vmq+JGitUg92uuywGEwIA==", "dev": true, "license": "MIT", "engines": { @@ -13071,6 +14173,8 @@ }, "node_modules/parse-path": { "version": "7.1.0", + "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-7.1.0.tgz", + "integrity": "sha512-EuCycjZtfPcjWk7KTksnJ5xPMvWGA/6i4zrLYhRG0hGvC3GPU/jGUj3Cy+ZR0v30duV3e23R95T1lE2+lsndSw==", "dev": true, "license": "MIT", "dependencies": { @@ -13084,6 +14188,8 @@ }, "node_modules/parse-url": { "version": "8.1.0", + "resolved": "https://registry.npmjs.org/parse-url/-/parse-url-8.1.0.tgz", + "integrity": "sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==", "dev": true, "license": "MIT", "dependencies": { @@ -13128,7 +14234,9 @@ "license": "MIT" }, "node_modules/path-scurry": { - "version": "2.0.1", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -13136,7 +14244,7 @@ "minipass": "^7.1.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -13144,6 +14252,8 @@ }, "node_modules/path-scurry/node_modules/lru-cache": { "version": "11.2.6", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.6.tgz", + "integrity": "sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==", "dev": true, "license": "BlueOak-1.0.0", "engines": { @@ -13156,7 +14266,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, "license": "MIT", "engines": { @@ -13178,14 +14290,13 @@ } }, "node_modules/pify": { - "version": "5.0.0", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "node_modules/pirates": { @@ -13198,6 +14309,8 @@ }, "node_modules/pkg-dir": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13209,6 +14322,8 @@ }, "node_modules/pkg-dir/node_modules/find-up": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", "dependencies": { @@ -13221,6 +14336,8 @@ }, "node_modules/pkg-dir/node_modules/locate-path": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", "dependencies": { @@ -13232,6 +14349,8 @@ }, "node_modules/pkg-dir/node_modules/p-limit": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", "dependencies": { @@ -13246,6 +14365,8 @@ }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", "dependencies": { @@ -13265,6 +14386,8 @@ }, "node_modules/postcss-selector-parser": { "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", "dev": true, "license": "MIT", "dependencies": { @@ -13284,7 +14407,9 @@ } }, "node_modules/prettier": { - "version": "3.6.2", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", + "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, "license": "MIT", "bin": { @@ -13310,7 +14435,7 @@ }, "node_modules/pretty-format": { "version": "30.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/pretty-format/-/pretty-format-30.3.0.tgz", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.3.0.tgz", "integrity": "sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==", "dev": true, "license": "MIT", @@ -13325,7 +14450,7 @@ }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/ansi-styles/-/ansi-styles-5.2.0.tgz", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", @@ -13338,6 +14463,8 @@ }, "node_modules/proc-log": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-5.0.0.tgz", + "integrity": "sha512-Azwzvl90HaF0aCz1JrDdXQykFakSSNPaPoiZ9fm5qJIMHioDZEi7OAdRwSm6rSoPtY3Qutnm3L7ogmg3dc+wbQ==", "dev": true, "license": "ISC", "engines": { @@ -13359,6 +14486,8 @@ }, "node_modules/proggy": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proggy/-/proggy-3.0.0.tgz", + "integrity": "sha512-QE8RApCM3IaRRxVzxrjbgNMpQEX6Wu0p0KBeoSiSEw5/bsGwZHsshF4LCxH2jp/r6BU+bqA3LrMDEYNfJnpD8Q==", "dev": true, "license": "ISC", "engines": { @@ -13367,6 +14496,8 @@ }, "node_modules/promise-all-reject-late": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", + "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==", "dev": true, "license": "ISC", "funding": { @@ -13375,6 +14506,8 @@ }, "node_modules/promise-call-limit": { "version": "3.0.2", + "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-3.0.2.tgz", + "integrity": "sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==", "dev": true, "license": "ISC", "funding": { @@ -13383,6 +14516,8 @@ }, "node_modules/promise-retry": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, "license": "MIT", "dependencies": { @@ -13395,6 +14530,8 @@ }, "node_modules/promzard": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/promzard/-/promzard-2.0.0.tgz", + "integrity": "sha512-Ncd0vyS2eXGOjchIRg6PVCYKetJYrW1BSbbIo+bKdig61TB6nH2RQNF2uP+qMpsI73L/jURLWojcw8JNIKZ3gg==", "dev": true, "license": "ISC", "dependencies": { @@ -13423,11 +14560,15 @@ }, "node_modules/protocols": { "version": "2.0.2", + "resolved": "https://registry.npmjs.org/protocols/-/protocols-2.0.2.tgz", + "integrity": "sha512-hHVTzba3wboROl0/aWRRG9dMytgH6ow//STBZh43l/wQgmMhYhOFi0EHWAPtoCz9IAUymsyP0TSBHkhgMEGNnQ==", "dev": true, "license": "MIT" }, "node_modules/proxy-from-env": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "dev": true, "license": "MIT" }, @@ -13449,7 +14590,7 @@ }, "node_modules/pure-rand": { "version": "7.0.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/pure-rand/-/pure-rand-7.0.1.tgz", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz", "integrity": "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==", "dev": true, "funding": [ @@ -13474,6 +14615,8 @@ }, "node_modules/queue-microtask": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true, "funding": [ { @@ -13493,6 +14636,8 @@ }, "node_modules/quick-lru": { "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true, "license": "MIT", "engines": { @@ -13501,6 +14646,8 @@ }, "node_modules/randombytes": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13531,6 +14678,8 @@ }, "node_modules/react": { "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", + "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", "dev": true, "license": "MIT", "engines": { @@ -13544,6 +14693,8 @@ }, "node_modules/read": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/read/-/read-4.1.0.tgz", + "integrity": "sha512-uRfX6K+f+R8OOrYScaM3ixPY4erg69f8DN6pgTvMcA9iRc8iDhwrA4m3Yu8YYKsXJgVvum+m8PkRboZwwuLzYA==", "dev": true, "license": "ISC", "dependencies": { @@ -13555,6 +14706,8 @@ }, "node_modules/read-cmd-shim": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz", + "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==", "dev": true, "license": "ISC", "engines": { @@ -13576,6 +14729,8 @@ }, "node_modules/read-pkg-up": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", "dev": true, "license": "MIT", "dependencies": { @@ -13588,6 +14743,8 @@ }, "node_modules/read-pkg-up/node_modules/find-up": { "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", "dev": true, "license": "MIT", "dependencies": { @@ -13599,6 +14756,8 @@ }, "node_modules/read-pkg-up/node_modules/locate-path": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", "dev": true, "license": "MIT", "dependencies": { @@ -13611,6 +14770,8 @@ }, "node_modules/read-pkg-up/node_modules/p-limit": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "license": "MIT", "dependencies": { @@ -13622,6 +14783,8 @@ }, "node_modules/read-pkg-up/node_modules/p-locate": { "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", "dev": true, "license": "MIT", "dependencies": { @@ -13633,6 +14796,8 @@ }, "node_modules/read-pkg-up/node_modules/p-try": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", "dev": true, "license": "MIT", "engines": { @@ -13641,6 +14806,8 @@ }, "node_modules/read-pkg-up/node_modules/path-exists": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, "license": "MIT", "engines": { @@ -13726,6 +14893,8 @@ }, "node_modules/readable-stream": { "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "license": "MIT", "dependencies": { @@ -13761,6 +14930,8 @@ }, "node_modules/redent": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, "license": "MIT", "dependencies": { @@ -13888,6 +15059,8 @@ }, "node_modules/resolve.exports": { "version": "2.0.3", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz", + "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==", "dev": true, "license": "MIT", "engines": { @@ -13896,6 +15069,8 @@ }, "node_modules/restore-cursor": { "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "license": "MIT", "dependencies": { @@ -13908,6 +15083,8 @@ }, "node_modules/retry": { "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true, "license": "MIT", "engines": { @@ -13916,6 +15093,8 @@ }, "node_modules/reusify": { "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, "license": "MIT", "engines": { @@ -13956,6 +15135,8 @@ }, "node_modules/run-async": { "version": "4.0.6", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-4.0.6.tgz", + "integrity": "sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==", "dev": true, "license": "MIT", "engines": { @@ -13964,6 +15145,8 @@ }, "node_modules/run-parallel": { "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "funding": [ { @@ -13991,6 +15174,8 @@ }, "node_modules/rxjs": { "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -14072,6 +15257,8 @@ }, "node_modules/schema-utils": { "version": "4.3.3", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", + "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "license": "MIT", "dependencies": { @@ -14090,6 +15277,8 @@ }, "node_modules/schema-utils/node_modules/ajv": { "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "dependencies": { @@ -14105,6 +15294,8 @@ }, "node_modules/schema-utils/node_modules/ajv-keywords": { "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "license": "MIT", "dependencies": { @@ -14116,11 +15307,15 @@ }, "node_modules/schema-utils/node_modules/json-schema-traverse": { "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true, "license": "MIT" }, "node_modules/semver": { "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "dev": true, "license": "ISC", "bin": { @@ -14132,17 +15327,14 @@ }, "node_modules/serialize-javascript": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "node_modules/set-function-length": { "version": "1.2.2", "dev": true, @@ -14307,6 +15499,8 @@ }, "node_modules/sigstore": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-4.1.0.tgz", + "integrity": "sha512-/fUgUhYghuLzVT/gaJoeVehLCgZiUxPCPMcyVNY0lIf/cTCz58K/WTI7PefDarXxp9nUKpEwg1yyz3eSBMTtgA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -14344,6 +15538,8 @@ }, "node_modules/smart-buffer": { "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, "license": "MIT", "engines": { @@ -14459,6 +15655,8 @@ }, "node_modules/socks": { "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", "dev": true, "license": "MIT", "dependencies": { @@ -14472,6 +15670,8 @@ }, "node_modules/socks-proxy-agent": { "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", "dev": true, "license": "MIT", "dependencies": { @@ -14483,17 +15683,6 @@ "node": ">= 14" } }, - "node_modules/sort-keys": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/source-map": { "version": "0.6.1", "dev": true, @@ -14588,6 +15777,8 @@ }, "node_modules/split": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dev": true, "license": "MIT", "dependencies": { @@ -14599,6 +15790,8 @@ }, "node_modules/split2": { "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", "dev": true, "license": "ISC", "dependencies": { @@ -14607,11 +15800,15 @@ }, "node_modules/sprintf-js": { "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true, "license": "BSD-3-Clause" }, "node_modules/ssri": { "version": "12.0.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-12.0.0.tgz", + "integrity": "sha512-S7iGNosepx9RadX82oimUkvr0Ct7IjJbEbs4mJcTxst8um95J3sDYU1RBEOvdu6oL1Wek2ODI5i4MAw+dZ6cAQ==", "dev": true, "license": "ISC", "dependencies": { @@ -14712,6 +15909,8 @@ }, "node_modules/string_decoder": { "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "license": "MIT", "dependencies": { @@ -14720,7 +15919,7 @@ }, "node_modules/string-length": { "version": "4.0.2", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/string-length/-/string-length-4.0.2.tgz", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "license": "MIT", @@ -14748,7 +15947,7 @@ "node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/string-width/-/string-width-4.2.3.tgz", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "license": "MIT", @@ -14763,7 +15962,7 @@ }, "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/emoji-regex/-/emoji-regex-8.0.0.tgz", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true, "license": "MIT" @@ -14908,7 +16107,7 @@ "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "license": "MIT", @@ -14937,6 +16136,8 @@ }, "node_modules/strip-indent": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, "license": "MIT", "dependencies": { @@ -14995,6 +16196,8 @@ }, "node_modules/tapable": { "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", + "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", "dev": true, "license": "MIT", "engines": { @@ -15006,7 +16209,9 @@ } }, "node_modules/tar": { - "version": "7.5.7", + "version": "7.5.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.11.tgz", + "integrity": "sha512-ChjMH33/KetonMTAtpYdgUFr0tbz69Fp2v7zWxQfYZX4g5ZN2nOBXm1R2xyA+lMIKrLKIoKAwFj93jE/avX9cQ==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -15022,6 +16227,8 @@ }, "node_modules/tar-stream": { "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, "license": "MIT", "dependencies": { @@ -15037,22 +16244,18 @@ }, "node_modules/tar/node_modules/yallist": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", "dev": true, "license": "BlueOak-1.0.0", "engines": { "node": ">=18" } }, - "node_modules/temp-dir": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/terser": { "version": "5.44.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", + "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -15070,6 +16273,8 @@ }, "node_modules/terser-webpack-plugin": { "version": "5.3.16", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", + "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", "dev": true, "license": "MIT", "dependencies": { @@ -15103,6 +16308,8 @@ }, "node_modules/terser-webpack-plugin/node_modules/jest-worker": { "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, "license": "MIT", "dependencies": { @@ -15116,6 +16323,8 @@ }, "node_modules/terser-webpack-plugin/node_modules/supports-color": { "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -15130,7 +16339,7 @@ }, "node_modules/test-exclude": { "version": "6.0.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/test-exclude/-/test-exclude-6.0.0.tgz", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "license": "ISC", @@ -15144,9 +16353,9 @@ } }, "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.14", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/brace-expansion/-/brace-expansion-1.1.14.tgz", - "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -15156,7 +16365,7 @@ }, "node_modules/test-exclude/node_modules/minimatch": { "version": "3.1.5", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/minimatch/-/minimatch-3.1.5.tgz", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", @@ -15169,6 +16378,8 @@ }, "node_modules/text-extensions": { "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", "dev": true, "license": "MIT", "engines": { @@ -15177,6 +16388,8 @@ }, "node_modules/through": { "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true, "license": "MIT" }, @@ -15223,6 +16436,8 @@ }, "node_modules/tinyglobby": { "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, "license": "MIT", "dependencies": { @@ -15238,6 +16453,8 @@ }, "node_modules/tinyglobby/node_modules/fdir": { "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, "license": "MIT", "engines": { @@ -15253,7 +16470,9 @@ } }, "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.3", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { @@ -15265,6 +16484,8 @@ }, "node_modules/tmp": { "version": "0.2.5", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", + "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", "dev": true, "license": "MIT", "engines": { @@ -15305,6 +16526,8 @@ }, "node_modules/tree-kill": { "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true, "license": "MIT", "bin": { @@ -15313,6 +16536,8 @@ }, "node_modules/treeverse": { "version": "3.0.0", + "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-3.0.0.tgz", + "integrity": "sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==", "dev": true, "license": "ISC", "engines": { @@ -15321,6 +16546,8 @@ }, "node_modules/trim-newlines": { "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true, "license": "MIT", "engines": { @@ -15329,6 +16556,8 @@ }, "node_modules/ts-api-utils": { "version": "2.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", + "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", "dev": true, "license": "MIT", "engines": { @@ -15360,7 +16589,9 @@ } }, "node_modules/ts-declaration-location/node_modules/picomatch": { - "version": "4.0.3", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { @@ -15372,6 +16603,8 @@ }, "node_modules/ts-jest": { "version": "29.4.6", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.6.tgz", + "integrity": "sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==", "dev": true, "license": "MIT", "dependencies": { @@ -15442,6 +16675,8 @@ }, "node_modules/ts-loader": { "version": "9.5.4", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.4.tgz", + "integrity": "sha512-nCz0rEwunlTZiy6rXFByQU1kVVpCIgUpc/psFiKVrUwrizdnIbRFu8w7bxhUF0X613DYwT4XzrZHpVyMe758hQ==", "dev": true, "license": "MIT", "dependencies": { @@ -15541,11 +16776,15 @@ }, "node_modules/tslib": { "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "dev": true, "license": "0BSD" }, "node_modules/tuf-js": { "version": "4.1.0", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-4.1.0.tgz", + "integrity": "sha512-50QV99kCKH5P/Vs4E2Gzp7BopNV+KzTXqWeaxrfu5IQJBOULRsTIS9seSsOVT8ZnGXzCyx55nYWAi4qJzpZKEQ==", "dev": true, "license": "MIT", "dependencies": { @@ -15570,7 +16809,7 @@ }, "node_modules/type-detect": { "version": "4.0.8", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/type-detect/-/type-detect-4.0.8.tgz", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, "license": "MIT", @@ -15580,8 +16819,6 @@ }, "node_modules/type-fest": { "version": "0.21.3", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -15675,11 +16912,15 @@ }, "node_modules/typedarray": { "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true, "license": "MIT" }, "node_modules/typedoc": { "version": "0.28.15", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.15.tgz", + "integrity": "sha512-mw2/2vTL7MlT+BVo43lOsufkkd2CJO4zeOSuWQQsiXoV2VuEn7f6IZp2jsUDPmBMABpgR0R5jlcJ2OGEFYmkyg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -15714,6 +16955,8 @@ }, "node_modules/typescript-eslint": { "version": "8.52.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.52.0.tgz", + "integrity": "sha512-atlQQJ2YkO4pfTVQmQ+wvYQwexPDOIgo+RaVcD7gHgzy/IQA+XTyuxNM9M9TVXvttkF7koBHmcwisKdOAf2EcA==", "dev": true, "license": "MIT", "dependencies": { @@ -15800,6 +17043,8 @@ }, "node_modules/unique-filename": { "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-5.0.0.tgz", + "integrity": "sha512-2RaJTAvAb4owyjllTfXzFClJ7WsGxlykkPvCr9pA//LD9goVq+m4PPAeBgNodGZ7nSrntT/auWpJ6Y5IFXcfjg==", "dev": true, "license": "ISC", "dependencies": { @@ -15811,6 +17056,8 @@ }, "node_modules/unique-slug": { "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-6.0.0.tgz", + "integrity": "sha512-4Lup7Ezn8W3d52/xBhZBVdx323ckxa7DEvd9kPQHppTkLoJXw6ltrBCyj5pnrxj0qKDxYMJ56CoxNuFCscdTiw==", "dev": true, "license": "ISC", "dependencies": { @@ -15822,11 +17069,15 @@ }, "node_modules/universal-user-agent": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", "dev": true, "license": "ISC" }, "node_modules/universalify": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "license": "MIT", "engines": { @@ -15884,6 +17135,8 @@ }, "node_modules/upath": { "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", "dev": true, "license": "MIT", "engines": { @@ -15893,6 +17146,8 @@ }, "node_modules/update-browserslist-db": { "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "dev": true, "funding": [ { @@ -15941,18 +17196,6 @@ "node": ">= 0.4.0" } }, - "node_modules/uuid": { - "version": "11.1.0", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/esm/bin/uuid" - } - }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "dev": true, @@ -15960,7 +17203,7 @@ }, "node_modules/v8-to-istanbul": { "version": "9.3.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, "license": "ISC", @@ -15993,6 +17236,8 @@ }, "node_modules/validate-npm-package-name": { "version": "6.0.2", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-6.0.2.tgz", + "integrity": "sha512-IUoow1YUtvoBBC06dXs8bR8B9vuA3aJfmQNKMoaPG/OFsPmoQvw8xh+6Ye25Gx9DQhoEom3Pcu9MKHerm/NpUQ==", "dev": true, "license": "ISC", "engines": { @@ -16017,6 +17262,8 @@ }, "node_modules/walk-up-path": { "version": "4.0.0", + "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-4.0.0.tgz", + "integrity": "sha512-3hu+tD8YzSLGuFYtPRb48vdhKMi0KQV5sn+uWr8+7dMEq/2G/dtLrdDinkLjqq5TIbIBjYJ4Ax/n3YiaW7QM8A==", "dev": true, "license": "ISC", "engines": { @@ -16045,6 +17292,8 @@ }, "node_modules/wcwidth": { "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, "license": "MIT", "dependencies": { @@ -16053,6 +17302,8 @@ }, "node_modules/webpack": { "version": "5.104.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.104.1.tgz", + "integrity": "sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==", "dev": true, "license": "MIT", "dependencies": { @@ -16100,6 +17351,8 @@ }, "node_modules/webpack-bundle-analyzer": { "version": "5.1.1", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-5.1.1.tgz", + "integrity": "sha512-UzoaIA0Aigo5lUvoUkIkSoHtUK5rBJh9e2vW3Eqct0jc/L8hcruBCz/jsXEvB1hDU1G3V94jo2EJqPcFKeSSeQ==", "dev": true, "license": "MIT", "dependencies": { @@ -16132,6 +17385,8 @@ }, "node_modules/webpack-bundle-analyzer/node_modules/ws": { "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, "license": "MIT", "engines": { @@ -16345,6 +17600,8 @@ }, "node_modules/wide-align": { "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, "license": "ISC", "dependencies": { @@ -16388,7 +17645,7 @@ "node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "license": "MIT", @@ -16411,7 +17668,7 @@ }, "node_modules/write-file-atomic": { "version": "5.0.1", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, "license": "ISC", @@ -16425,7 +17682,7 @@ }, "node_modules/write-file-atomic/node_modules/signal-exit": { "version": "4.1.0", - "resolved": "https://artifactory.ops.ripple.com/artifactory/api/npm/ripple-npm/signal-exit/-/signal-exit-4.1.0.tgz", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, "license": "ISC", @@ -16436,83 +17693,10 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/write-json-file": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-indent": "^5.0.0", - "graceful-fs": "^4.1.15", - "make-dir": "^2.1.0", - "pify": "^4.0.1", - "sort-keys": "^2.0.0", - "write-file-atomic": "^2.4.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/write-json-file/node_modules/make-dir": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/write-json-file/node_modules/pify": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/write-json-file/node_modules/semver": { - "version": "5.7.2", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/write-json-file/node_modules/write-file-atomic": { - "version": "2.4.3", - "dev": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } - }, - "node_modules/write-pkg": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "sort-keys": "^2.0.0", - "type-fest": "^0.4.1", - "write-json-file": "^3.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/write-pkg/node_modules/type-fest": { - "version": "0.4.1", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=6" - } - }, "node_modules/ws": { "version": "8.19.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", + "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -16557,6 +17741,8 @@ }, "node_modules/yaml": { "version": "2.8.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", + "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", "dev": true, "license": "ISC", "bin": { @@ -16615,6 +17801,8 @@ }, "node_modules/yoctocolors-cjs": { "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", "dev": true, "license": "MIT", "engines": { From a01736ba57c91c787f16f55658e2bc73d8e92865 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 23 Apr 2026 17:20:41 -0400 Subject: [PATCH 15/22] fix tests --- .../src/models/transactions/contractCall.ts | 17 +-- .../models/transactions/contractClawback.ts | 12 +- .../src/models/transactions/contractCreate.ts | 17 +-- .../src/models/transactions/contractDelete.ts | 6 +- .../src/models/transactions/contractModify.ts | 19 +-- .../models/transactions/contractUserDelete.ts | 22 ++-- .../xrpl/test/models/contractCall.test.ts | 104 +++------------- .../xrpl/test/models/contractClawback.test.ts | 56 +++------ .../xrpl/test/models/contractCreate.test.ts | 98 ++++------------ .../xrpl/test/models/contractDelete.test.ts | 40 ++----- .../xrpl/test/models/contractModify.test.ts | 111 ++++-------------- .../test/models/contractUserDelete.test.ts | 104 +++------------- 12 files changed, 154 insertions(+), 452 deletions(-) diff --git a/packages/xrpl/src/models/transactions/contractCall.ts b/packages/xrpl/src/models/transactions/contractCall.ts index a1e6892575..dbd2cb9757 100644 --- a/packages/xrpl/src/models/transactions/contractCall.ts +++ b/packages/xrpl/src/models/transactions/contractCall.ts @@ -2,11 +2,12 @@ import { Parameter } from '../common' import { BaseTransaction, - // isNumber, - // isString, + isArray, + isNumber, + isString, validateBaseTransaction, - // validateOptionalField, - // validateRequiredField, + validateOptionalField, + validateRequiredField, } from './common' /** @@ -34,11 +35,11 @@ export interface ContractCall extends BaseTransaction { export function validateContractCall(tx: Record): void { validateBaseTransaction(tx) - // validateRequiredField(tx, 'ComputationAllowance', isNumber) + validateRequiredField(tx, 'ComputationAllowance', isNumber) - // validateRequiredField(tx, 'ContractAccount', isString) + validateRequiredField(tx, 'ContractAccount', isString) - // validateRequiredField(tx, 'FunctionName', isString) + validateRequiredField(tx, 'FunctionName', isString) - // validateOptionalField(tx, 'Parameters', isany[]) + validateOptionalField(tx, 'Parameters', isArray) } diff --git a/packages/xrpl/src/models/transactions/contractClawback.ts b/packages/xrpl/src/models/transactions/contractClawback.ts index 2976a9b9a2..91fe7c5794 100644 --- a/packages/xrpl/src/models/transactions/contractClawback.ts +++ b/packages/xrpl/src/models/transactions/contractClawback.ts @@ -2,11 +2,11 @@ import { Amount } from '../common' import { BaseTransaction, - // isAmount, - // isString, + isAmount, + isString, validateBaseTransaction, - // validateOptionalField, - // validateRequiredField, + validateOptionalField, + validateRequiredField, } from './common' /** @@ -29,7 +29,7 @@ export interface ContractClawback extends BaseTransaction { export function validateContractClawback(tx: Record): void { validateBaseTransaction(tx) - // validateRequiredField(tx, 'Amount', isAmount) + validateRequiredField(tx, 'Amount', isAmount) - // validateOptionalField(tx, 'ContractAccount', isString) + validateOptionalField(tx, 'ContractAccount', isString) } diff --git a/packages/xrpl/src/models/transactions/contractCreate.ts b/packages/xrpl/src/models/transactions/contractCreate.ts index 497dafce60..c592902438 100644 --- a/packages/xrpl/src/models/transactions/contractCreate.ts +++ b/packages/xrpl/src/models/transactions/contractCreate.ts @@ -2,9 +2,10 @@ import { Function, InstanceParameter, InstanceParameterValue } from '../common' import { BaseTransaction, GlobalFlagsInterface, - // isString, + isArray, + isString, validateBaseTransaction, - // validateOptionalField, + validateOptionalField, } from './common' /** @@ -60,15 +61,15 @@ export interface ContractCreate extends BaseTransaction { export function validateContractCreate(tx: Record): void { validateBaseTransaction(tx) - // validateOptionalField(tx, 'ContractCode', isString) + validateOptionalField(tx, 'ContractCode', isString) - // validateOptionalField(tx, 'ContractHash', isString) + validateOptionalField(tx, 'ContractHash', isString) - // validateOptionalField(tx, 'Functions', isany[]) + validateOptionalField(tx, 'Functions', isArray) - // validateOptionalField(tx, 'InstanceParameters', isany[]) + validateOptionalField(tx, 'InstanceParameters', isArray) - // validateOptionalField(tx, 'InstanceParameterValues', isany[]) + validateOptionalField(tx, 'InstanceParameterValues', isArray) - // validateOptionalField(tx, 'URI', isString) + validateOptionalField(tx, 'URI', isString) } diff --git a/packages/xrpl/src/models/transactions/contractDelete.ts b/packages/xrpl/src/models/transactions/contractDelete.ts index 60501195f2..d809b9f3b9 100644 --- a/packages/xrpl/src/models/transactions/contractDelete.ts +++ b/packages/xrpl/src/models/transactions/contractDelete.ts @@ -1,8 +1,8 @@ import { BaseTransaction, - // isString, + isString, validateBaseTransaction, - // validateRequiredField, + validateRequiredField, } from './common' /** @@ -23,5 +23,5 @@ export interface ContractDelete extends BaseTransaction { export function validateContractDelete(tx: Record): void { validateBaseTransaction(tx) - // validateRequiredField(tx, 'ContractAccount', isString) + validateRequiredField(tx, 'ContractAccount', isString) } diff --git a/packages/xrpl/src/models/transactions/contractModify.ts b/packages/xrpl/src/models/transactions/contractModify.ts index c16f79b9c9..33be00491e 100644 --- a/packages/xrpl/src/models/transactions/contractModify.ts +++ b/packages/xrpl/src/models/transactions/contractModify.ts @@ -1,9 +1,10 @@ import { Function, InstanceParameter, InstanceParameterValue } from '../common' import { BaseTransaction, - // isString, + isArray, + isString, validateBaseTransaction, - // validateOptionalField, + validateOptionalField, } from './common' /** @@ -36,17 +37,17 @@ export interface ContractModify extends BaseTransaction { export function validateContractModify(tx: Record): void { validateBaseTransaction(tx) - // validateOptionalField(tx, 'ContractAccount', isString) + validateOptionalField(tx, 'ContractAccount', isString) - // validateOptionalField(tx, 'ContractCode', isString) + validateOptionalField(tx, 'ContractCode', isString) - // validateOptionalField(tx, 'ContractHash', isString) + validateOptionalField(tx, 'ContractHash', isString) - // validateOptionalField(tx, 'Functions', isany[]) + validateOptionalField(tx, 'Functions', isArray) - // validateOptionalField(tx, 'InstanceParameters', isany[]) + validateOptionalField(tx, 'InstanceParameters', isArray) - // validateOptionalField(tx, 'InstanceParameterValues', isany[]) + validateOptionalField(tx, 'InstanceParameterValues', isArray) - // validateOptionalField(tx, 'URI', isString) + validateOptionalField(tx, 'URI', isString) } diff --git a/packages/xrpl/src/models/transactions/contractUserDelete.ts b/packages/xrpl/src/models/transactions/contractUserDelete.ts index a1e07f944f..c49b2d1e1c 100644 --- a/packages/xrpl/src/models/transactions/contractUserDelete.ts +++ b/packages/xrpl/src/models/transactions/contractUserDelete.ts @@ -1,11 +1,13 @@ import { Parameter } from '../common' + import { BaseTransaction, - // isNumber, - // isString, + isArray, + isNumber, + isString, validateBaseTransaction, - // validateOptionalField, - // validateRequiredField, + validateOptionalField, + validateRequiredField, } from './common' /** @@ -17,10 +19,6 @@ export interface ContractUserDelete extends BaseTransaction { ComputationAllowance: number ContractAccount: string - - FunctionName: string - - Parameters?: Parameter[] } /** @@ -32,11 +30,7 @@ export interface ContractUserDelete extends BaseTransaction { export function validateContractUserDelete(tx: Record): void { validateBaseTransaction(tx) - // validateRequiredField(tx, 'ComputationAllowance', isNumber) - - // validateRequiredField(tx, 'ContractAccount', isString) - - // validateRequiredField(tx, 'FunctionName', isString) + validateRequiredField(tx, 'ComputationAllowance', isNumber) - // validateOptionalField(tx, 'Parameters', isany[]) + validateRequiredField(tx, 'ContractAccount', isString) } diff --git a/packages/xrpl/test/models/contractCall.test.ts b/packages/xrpl/test/models/contractCall.test.ts index 1b3d0eb060..2433d7ef90 100644 --- a/packages/xrpl/test/models/contractCall.test.ts +++ b/packages/xrpl/test/models/contractCall.test.ts @@ -1,7 +1,9 @@ -import { assert } from 'chai' - -import { validate, ValidationError } from '../../src' import { validateContractCall } from '../../src/models/transactions/contractCall' +import { assertTxIsValid, assertTxValidationError } from '../testUtils' + +const assertValid = (tx: any): void => assertTxIsValid(tx, validateContractCall) +const assertInvalid = (tx: any, message: string): void => + assertTxValidationError(tx, validateContractCall, message) /** * ContractCall Transaction Verification Testing. @@ -13,118 +15,50 @@ describe('ContractCall', function () { beforeEach(function () { tx = { - /* TODO: add sample transaction */ + TransactionType: 'ContractCall', + Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + ComputationAllowance: 1000, + ContractAccount: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe', + FunctionName: 'noop', } as any }) it('verifies valid ContractCall', function () { - assert.doesNotThrow(() => validateContractCall(tx)) - assert.doesNotThrow(() => validate(tx)) + assertValid(tx) }) it('throws w/ missing ComputationAllowance', function () { delete tx.ComputationAllowance - - assert.throws( - () => validateContractCall(tx), - ValidationError, - 'ContractCall: missing field ComputationAllowance', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractCall: missing field ComputationAllowance', - ) + assertInvalid(tx, 'ContractCall: missing field ComputationAllowance') }) it('throws w/ invalid ComputationAllowance', function () { tx.ComputationAllowance = 'number' - - assert.throws( - () => validateContractCall(tx), - ValidationError, - 'ContractCall: invalid field ComputationAllowance', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractCall: invalid field ComputationAllowance', - ) + assertInvalid(tx, 'ContractCall: invalid field ComputationAllowance') }) it('throws w/ missing ContractAccount', function () { delete tx.ContractAccount - - assert.throws( - () => validateContractCall(tx), - ValidationError, - 'ContractCall: missing field ContractAccount', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractCall: missing field ContractAccount', - ) + assertInvalid(tx, 'ContractCall: missing field ContractAccount') }) it('throws w/ invalid ContractAccount', function () { tx.ContractAccount = 123 - - assert.throws( - () => validateContractCall(tx), - ValidationError, - 'ContractCall: invalid field ContractAccount', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractCall: invalid field ContractAccount', - ) + assertInvalid(tx, 'ContractCall: invalid field ContractAccount') }) it('throws w/ missing FunctionName', function () { delete tx.FunctionName - - assert.throws( - () => validateContractCall(tx), - ValidationError, - 'ContractCall: missing field FunctionName', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractCall: missing field FunctionName', - ) + assertInvalid(tx, 'ContractCall: missing field FunctionName') }) it('throws w/ invalid FunctionName', function () { tx.FunctionName = 123 - - assert.throws( - () => validateContractCall(tx), - ValidationError, - 'ContractCall: invalid field FunctionName', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractCall: invalid field FunctionName', - ) + assertInvalid(tx, 'ContractCall: invalid field FunctionName') }) it('throws w/ invalid Parameters', function () { - tx.Parameters = - /*TODO*/ - - assert.throws( - () => validateContractCall(tx), - ValidationError, - 'ContractCall: invalid field Parameters', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractCall: invalid field Parameters', - ) + tx.Parameters = 'not_an_array' + assertInvalid(tx, 'ContractCall: invalid field Parameters') }) }) diff --git a/packages/xrpl/test/models/contractClawback.test.ts b/packages/xrpl/test/models/contractClawback.test.ts index ee6a627af0..29c78cb9c1 100644 --- a/packages/xrpl/test/models/contractClawback.test.ts +++ b/packages/xrpl/test/models/contractClawback.test.ts @@ -1,7 +1,10 @@ -import { assert } from 'chai' - -import { validate, ValidationError } from '../../src' import { validateContractClawback } from '../../src/models/transactions/contractClawback' +import { assertTxIsValid, assertTxValidationError } from '../testUtils' + +const assertValid = (tx: any): void => + assertTxIsValid(tx, validateContractClawback) +const assertInvalid = (tx: any, message: string): void => + assertTxValidationError(tx, validateContractClawback, message) /** * ContractClawback Transaction Verification Testing. @@ -13,57 +16,32 @@ describe('ContractClawback', function () { beforeEach(function () { tx = { - /* TODO: add sample transaction */ + TransactionType: 'ContractClawback', + Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + Amount: { + currency: 'USD', + value: '1000', + issuer: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + }, } as any }) it('verifies valid ContractClawback', function () { - assert.doesNotThrow(() => validateContractClawback(tx)) - assert.doesNotThrow(() => validate(tx)) + assertValid(tx) }) it('throws w/ missing Amount', function () { delete tx.Amount - - assert.throws( - () => validateContractClawback(tx), - ValidationError, - 'ContractClawback: missing field Amount', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractClawback: missing field Amount', - ) + assertInvalid(tx, 'ContractClawback: missing field Amount') }) it('throws w/ invalid Amount', function () { tx.Amount = { currency: 'ETH' } - - assert.throws( - () => validateContractClawback(tx), - ValidationError, - 'ContractClawback: invalid field Amount', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractClawback: invalid field Amount', - ) + assertInvalid(tx, 'ContractClawback: invalid field Amount') }) it('throws w/ invalid ContractAccount', function () { tx.ContractAccount = 123 - - assert.throws( - () => validateContractClawback(tx), - ValidationError, - 'ContractClawback: invalid field ContractAccount', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractClawback: invalid field ContractAccount', - ) + assertInvalid(tx, 'ContractClawback: invalid field ContractAccount') }) }) diff --git a/packages/xrpl/test/models/contractCreate.test.ts b/packages/xrpl/test/models/contractCreate.test.ts index 75118be828..317a4fd481 100644 --- a/packages/xrpl/test/models/contractCreate.test.ts +++ b/packages/xrpl/test/models/contractCreate.test.ts @@ -1,7 +1,10 @@ -import { assert } from 'chai' - -import { validate, ValidationError } from '../../src' import { validateContractCreate } from '../../src/models/transactions/contractCreate' +import { assertTxIsValid, assertTxValidationError } from '../testUtils' + +const assertValid = (tx: any): void => + assertTxIsValid(tx, validateContractCreate) +const assertInvalid = (tx: any, message: string): void => + assertTxValidationError(tx, validateContractCreate, message) /** * ContractCreate Transaction Verification Testing. @@ -13,105 +16,44 @@ describe('ContractCreate', function () { beforeEach(function () { tx = { - /* TODO: add sample transaction */ + TransactionType: 'ContractCreate', + Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + ContractHash: + 'E5287A664638EDC1110BAF0FD3FF79013353FD797EF14FC970E552ED7097B721', } as any }) it('verifies valid ContractCreate', function () { - assert.doesNotThrow(() => validateContractCreate(tx)) - assert.doesNotThrow(() => validate(tx)) + assertValid(tx) }) it('throws w/ invalid ContractCode', function () { tx.ContractCode = 123 - - assert.throws( - () => validateContractCreate(tx), - ValidationError, - 'ContractCreate: invalid field ContractCode', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractCreate: invalid field ContractCode', - ) + assertInvalid(tx, 'ContractCreate: invalid field ContractCode') }) it('throws w/ invalid ContractHash', function () { tx.ContractHash = 123 - - assert.throws( - () => validateContractCreate(tx), - ValidationError, - 'ContractCreate: invalid field ContractHash', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractCreate: invalid field ContractHash', - ) + assertInvalid(tx, 'ContractCreate: invalid field ContractHash') }) it('throws w/ invalid Functions', function () { - tx.Functions = - /*TODO*/ - - assert.throws( - () => validateContractCreate(tx), - ValidationError, - 'ContractCreate: invalid field Functions', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractCreate: invalid field Functions', - ) + tx.Functions = 'not_an_array' + assertInvalid(tx, 'ContractCreate: invalid field Functions') }) it('throws w/ invalid InstanceParameters', function () { - tx.InstanceParameters = - /*TODO*/ - - assert.throws( - () => validateContractCreate(tx), - ValidationError, - 'ContractCreate: invalid field InstanceParameters', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractCreate: invalid field InstanceParameters', - ) + tx.InstanceParameters = 'not_an_array' + assertInvalid(tx, 'ContractCreate: invalid field InstanceParameters') }) it('throws w/ invalid InstanceParameterValues', function () { - tx.InstanceParameterValues = - /*TODO*/ - - assert.throws( - () => validateContractCreate(tx), - ValidationError, - 'ContractCreate: invalid field InstanceParameterValues', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractCreate: invalid field InstanceParameterValues', - ) + tx.InstanceParameterValues = 'not_an_array' + assertInvalid(tx, 'ContractCreate: invalid field InstanceParameterValues') }) it('throws w/ invalid URI', function () { tx.URI = 123 - - assert.throws( - () => validateContractCreate(tx), - ValidationError, - 'ContractCreate: invalid field URI', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractCreate: invalid field URI', - ) + assertInvalid(tx, 'ContractCreate: invalid field URI') }) }) diff --git a/packages/xrpl/test/models/contractDelete.test.ts b/packages/xrpl/test/models/contractDelete.test.ts index a79cbd3b6f..effb1ea31e 100644 --- a/packages/xrpl/test/models/contractDelete.test.ts +++ b/packages/xrpl/test/models/contractDelete.test.ts @@ -1,7 +1,10 @@ -import { assert } from 'chai' - -import { validate, ValidationError } from '../../src' import { validateContractDelete } from '../../src/models/transactions/contractDelete' +import { assertTxIsValid, assertTxValidationError } from '../testUtils' + +const assertValid = (tx: any): void => + assertTxIsValid(tx, validateContractDelete) +const assertInvalid = (tx: any, message: string): void => + assertTxValidationError(tx, validateContractDelete, message) /** * ContractDelete Transaction Verification Testing. @@ -13,42 +16,23 @@ describe('ContractDelete', function () { beforeEach(function () { tx = { - /* TODO: add sample transaction */ + TransactionType: 'ContractDelete', + Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + ContractAccount: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe', } as any }) it('verifies valid ContractDelete', function () { - assert.doesNotThrow(() => validateContractDelete(tx)) - assert.doesNotThrow(() => validate(tx)) + assertValid(tx) }) it('throws w/ missing ContractAccount', function () { delete tx.ContractAccount - - assert.throws( - () => validateContractDelete(tx), - ValidationError, - 'ContractDelete: missing field ContractAccount', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractDelete: missing field ContractAccount', - ) + assertInvalid(tx, 'ContractDelete: missing field ContractAccount') }) it('throws w/ invalid ContractAccount', function () { tx.ContractAccount = 123 - - assert.throws( - () => validateContractDelete(tx), - ValidationError, - 'ContractDelete: invalid field ContractAccount', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractDelete: invalid field ContractAccount', - ) + assertInvalid(tx, 'ContractDelete: invalid field ContractAccount') }) }) diff --git a/packages/xrpl/test/models/contractModify.test.ts b/packages/xrpl/test/models/contractModify.test.ts index a9cba72a83..87706a02cd 100644 --- a/packages/xrpl/test/models/contractModify.test.ts +++ b/packages/xrpl/test/models/contractModify.test.ts @@ -1,7 +1,10 @@ -import { assert } from 'chai' - -import { validate, ValidationError } from '../../src' import { validateContractModify } from '../../src/models/transactions/contractModify' +import { assertTxIsValid, assertTxValidationError } from '../testUtils' + +const assertValid = (tx: any): void => + assertTxIsValid(tx, validateContractModify) +const assertInvalid = (tx: any, message: string): void => + assertTxValidationError(tx, validateContractModify, message) /** * ContractModify Transaction Verification Testing. @@ -13,120 +16,50 @@ describe('ContractModify', function () { beforeEach(function () { tx = { - /* TODO: add sample transaction */ + TransactionType: 'ContractModify', + Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + ContractAccount: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe', + ContractHash: + 'E5287A664638EDC1110BAF0FD3FF79013353FD797EF14FC970E552ED7097B721', } as any }) it('verifies valid ContractModify', function () { - assert.doesNotThrow(() => validateContractModify(tx)) - assert.doesNotThrow(() => validate(tx)) + assertValid(tx) }) it('throws w/ invalid ContractAccount', function () { tx.ContractAccount = 123 - - assert.throws( - () => validateContractModify(tx), - ValidationError, - 'ContractModify: invalid field ContractAccount', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractModify: invalid field ContractAccount', - ) + assertInvalid(tx, 'ContractModify: invalid field ContractAccount') }) it('throws w/ invalid ContractCode', function () { tx.ContractCode = 123 - - assert.throws( - () => validateContractModify(tx), - ValidationError, - 'ContractModify: invalid field ContractCode', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractModify: invalid field ContractCode', - ) + assertInvalid(tx, 'ContractModify: invalid field ContractCode') }) it('throws w/ invalid ContractHash', function () { tx.ContractHash = 123 - - assert.throws( - () => validateContractModify(tx), - ValidationError, - 'ContractModify: invalid field ContractHash', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractModify: invalid field ContractHash', - ) + assertInvalid(tx, 'ContractModify: invalid field ContractHash') }) it('throws w/ invalid Functions', function () { - tx.Functions = - /*TODO*/ - - assert.throws( - () => validateContractModify(tx), - ValidationError, - 'ContractModify: invalid field Functions', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractModify: invalid field Functions', - ) + tx.Functions = 'not_an_array' + assertInvalid(tx, 'ContractModify: invalid field Functions') }) it('throws w/ invalid InstanceParameters', function () { - tx.InstanceParameters = - /*TODO*/ - - assert.throws( - () => validateContractModify(tx), - ValidationError, - 'ContractModify: invalid field InstanceParameters', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractModify: invalid field InstanceParameters', - ) + tx.InstanceParameters = 'not_an_array' + assertInvalid(tx, 'ContractModify: invalid field InstanceParameters') }) it('throws w/ invalid InstanceParameterValues', function () { - tx.InstanceParameterValues = - /*TODO*/ - - assert.throws( - () => validateContractModify(tx), - ValidationError, - 'ContractModify: invalid field InstanceParameterValues', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractModify: invalid field InstanceParameterValues', - ) + tx.InstanceParameterValues = 'not_an_array' + assertInvalid(tx, 'ContractModify: invalid field InstanceParameterValues') }) it('throws w/ invalid URI', function () { tx.URI = 123 - - assert.throws( - () => validateContractModify(tx), - ValidationError, - 'ContractModify: invalid field URI', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractModify: invalid field URI', - ) + assertInvalid(tx, 'ContractModify: invalid field URI') }) }) diff --git a/packages/xrpl/test/models/contractUserDelete.test.ts b/packages/xrpl/test/models/contractUserDelete.test.ts index 60fd428683..a60691748b 100644 --- a/packages/xrpl/test/models/contractUserDelete.test.ts +++ b/packages/xrpl/test/models/contractUserDelete.test.ts @@ -1,7 +1,10 @@ -import { assert } from 'chai' - -import { validate, ValidationError } from '../../src' import { validateContractUserDelete } from '../../src/models/transactions/contractUserDelete' +import { assertTxIsValid, assertTxValidationError } from '../testUtils' + +const assertValid = (tx: any): void => + assertTxIsValid(tx, validateContractUserDelete) +const assertInvalid = (tx: any, message: string): void => + assertTxValidationError(tx, validateContractUserDelete, message) /** * ContractUserDelete Transaction Verification Testing. @@ -13,118 +16,49 @@ describe('ContractUserDelete', function () { beforeEach(function () { tx = { - /* TODO: add sample transaction */ + TransactionType: 'ContractUserDelete', + Account: 'rWYkbWkCeg8dP6rXALnjgZSjjLyih5NXm', + ComputationAllowance: 1000, + ContractAccount: 'rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe', } as any }) it('verifies valid ContractUserDelete', function () { - assert.doesNotThrow(() => validateContractUserDelete(tx)) - assert.doesNotThrow(() => validate(tx)) + assertValid(tx) }) it('throws w/ missing ComputationAllowance', function () { delete tx.ComputationAllowance - - assert.throws( - () => validateContractUserDelete(tx), - ValidationError, - 'ContractUserDelete: missing field ComputationAllowance', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractUserDelete: missing field ComputationAllowance', - ) + assertInvalid(tx, 'ContractUserDelete: missing field ComputationAllowance') }) it('throws w/ invalid ComputationAllowance', function () { tx.ComputationAllowance = 'number' - - assert.throws( - () => validateContractUserDelete(tx), - ValidationError, - 'ContractUserDelete: invalid field ComputationAllowance', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractUserDelete: invalid field ComputationAllowance', - ) + assertInvalid(tx, 'ContractUserDelete: invalid field ComputationAllowance') }) it('throws w/ missing ContractAccount', function () { delete tx.ContractAccount - - assert.throws( - () => validateContractUserDelete(tx), - ValidationError, - 'ContractUserDelete: missing field ContractAccount', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractUserDelete: missing field ContractAccount', - ) + assertInvalid(tx, 'ContractUserDelete: missing field ContractAccount') }) it('throws w/ invalid ContractAccount', function () { tx.ContractAccount = 123 - - assert.throws( - () => validateContractUserDelete(tx), - ValidationError, - 'ContractUserDelete: invalid field ContractAccount', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractUserDelete: invalid field ContractAccount', - ) + assertInvalid(tx, 'ContractUserDelete: invalid field ContractAccount') }) it('throws w/ missing FunctionName', function () { delete tx.FunctionName - - assert.throws( - () => validateContractUserDelete(tx), - ValidationError, - 'ContractUserDelete: missing field FunctionName', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractUserDelete: missing field FunctionName', - ) + assertInvalid(tx, 'ContractUserDelete: missing field FunctionName') }) it('throws w/ invalid FunctionName', function () { tx.FunctionName = 123 - - assert.throws( - () => validateContractUserDelete(tx), - ValidationError, - 'ContractUserDelete: invalid field FunctionName', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractUserDelete: invalid field FunctionName', - ) + assertInvalid(tx, 'ContractUserDelete: invalid field FunctionName') }) it('throws w/ invalid Parameters', function () { - tx.Parameters = - /*TODO*/ - - assert.throws( - () => validateContractUserDelete(tx), - ValidationError, - 'ContractUserDelete: invalid field Parameters', - ) - assert.throws( - () => validate(tx), - ValidationError, - 'ContractUserDelete: invalid field Parameters', - ) + tx.Parameters = 'not_an_array' + assertInvalid(tx, 'ContractUserDelete: invalid field Parameters') }) }) From 99d773fcdca3de09035585c6e22ceff69b45bc4a Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 23 Apr 2026 17:29:57 -0400 Subject: [PATCH 16/22] fix linter --- packages/xrpl/src/models/common/index.ts | 1 + packages/xrpl/src/models/ledger/Amendments.ts | 3 ++- packages/xrpl/src/models/ledger/Contract.ts | 3 ++- packages/xrpl/src/models/ledger/ContractData.ts | 1 + .../xrpl/src/models/ledger/ContractSource.ts | 3 ++- .../xrpl/src/models/ledger/DepositPreauth.ts | 3 ++- .../xrpl/src/models/ledger/DirectoryNode.ts | 3 ++- packages/xrpl/src/models/ledger/FeeSettings.ts | 3 ++- packages/xrpl/src/models/ledger/NegativeUNL.ts | 3 ++- .../src/models/ledger/PermissionedDomain.ts | 3 ++- .../src/models/ledger/XChainOwnedClaimID.ts | 3 ++- .../ledger/XChainOwnedCreateAccountClaimID.ts | 3 ++- .../xrpl/src/models/methods/accountChannels.ts | 3 ++- .../src/models/methods/accountCurrencies.ts | 3 ++- .../xrpl/src/models/methods/accountLines.ts | 3 ++- .../xrpl/src/models/methods/accountObjects.ts | 3 ++- .../xrpl/src/models/methods/accountOffers.ts | 3 ++- .../xrpl/src/models/methods/contractInfo.ts | 11 +++++++---- .../src/models/methods/depositAuthorized.ts | 3 ++- .../xrpl/src/models/methods/gatewayBalances.ts | 3 ++- packages/xrpl/src/models/methods/ledger.ts | 17 +++++++---------- .../xrpl/src/models/methods/nftBuyOffers.ts | 3 ++- .../xrpl/src/models/methods/nftSellOffers.ts | 3 ++- .../xrpl/src/models/methods/nftsByIssuer.ts | 3 ++- .../xrpl/src/models/methods/ripplePathFind.ts | 3 ++- packages/xrpl/src/models/methods/simulate.ts | 5 ++--- .../xrpl/src/models/methods/transactionEntry.ts | 3 ++- packages/xrpl/src/models/methods/tx.ts | 10 ++++------ .../transactions/MPTokenIssuanceCreate.ts | 5 +++-- .../src/models/transactions/contractCreate.ts | 1 + .../src/models/transactions/contractModify.ts | 1 + .../models/transactions/contractUserDelete.ts | 4 ---- .../models/transactions/paymentChannelClaim.ts | 5 +++-- 33 files changed, 74 insertions(+), 53 deletions(-) diff --git a/packages/xrpl/src/models/common/index.ts b/packages/xrpl/src/models/common/index.ts index ef1147c106..a9e9732d54 100644 --- a/packages/xrpl/src/models/common/index.ts +++ b/packages/xrpl/src/models/common/index.ts @@ -340,6 +340,7 @@ export interface ParameterType { export interface ParameterValue { type: string + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- value can be any type depending on the parameter value: any } diff --git a/packages/xrpl/src/models/ledger/Amendments.ts b/packages/xrpl/src/models/ledger/Amendments.ts index b3971e869f..f80e207964 100644 --- a/packages/xrpl/src/models/ledger/Amendments.ts +++ b/packages/xrpl/src/models/ledger/Amendments.ts @@ -25,7 +25,8 @@ export interface Majority { * @category Ledger Entries */ export default interface Amendments - extends BaseLedgerEntry, HasOptionalPreviousTxnID { + extends BaseLedgerEntry, + HasOptionalPreviousTxnID { LedgerEntryType: 'Amendments' /** * Array of 256-bit amendment IDs for all currently-enabled amendments. If diff --git a/packages/xrpl/src/models/ledger/Contract.ts b/packages/xrpl/src/models/ledger/Contract.ts index 54ce33fbd1..26288f5b08 100644 --- a/packages/xrpl/src/models/ledger/Contract.ts +++ b/packages/xrpl/src/models/ledger/Contract.ts @@ -1,6 +1,7 @@ -import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' import { InstanceParameterValue } from '../common' +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' + /** * * diff --git a/packages/xrpl/src/models/ledger/ContractData.ts b/packages/xrpl/src/models/ledger/ContractData.ts index 70719e2bf7..60234dc6bb 100644 --- a/packages/xrpl/src/models/ledger/ContractData.ts +++ b/packages/xrpl/src/models/ledger/ContractData.ts @@ -16,5 +16,6 @@ export default interface ContractData /** The account associated with this contract. */ ContractAccount: string /** The JSON data for the contract. */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- contract JSON data can have any shape ContractJson: Record } diff --git a/packages/xrpl/src/models/ledger/ContractSource.ts b/packages/xrpl/src/models/ledger/ContractSource.ts index cb87c796a0..5835e0a528 100644 --- a/packages/xrpl/src/models/ledger/ContractSource.ts +++ b/packages/xrpl/src/models/ledger/ContractSource.ts @@ -1,6 +1,7 @@ -import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' import { Function, InstanceParameter } from '../common' +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' + /** * * diff --git a/packages/xrpl/src/models/ledger/DepositPreauth.ts b/packages/xrpl/src/models/ledger/DepositPreauth.ts index f93db62076..7d5d0804ae 100644 --- a/packages/xrpl/src/models/ledger/DepositPreauth.ts +++ b/packages/xrpl/src/models/ledger/DepositPreauth.ts @@ -9,7 +9,8 @@ import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' * @category Ledger Entries */ export default interface DepositPreauth - extends BaseLedgerEntry, HasPreviousTxnID { + extends BaseLedgerEntry, + HasPreviousTxnID { LedgerEntryType: 'DepositPreauth' /** The account that granted the preauthorization. */ Account: string diff --git a/packages/xrpl/src/models/ledger/DirectoryNode.ts b/packages/xrpl/src/models/ledger/DirectoryNode.ts index 4cabf1627b..2404098899 100644 --- a/packages/xrpl/src/models/ledger/DirectoryNode.ts +++ b/packages/xrpl/src/models/ledger/DirectoryNode.ts @@ -7,7 +7,8 @@ import { BaseLedgerEntry, HasOptionalPreviousTxnID } from './BaseLedgerEntry' * @category Ledger Entries */ export default interface DirectoryNode - extends BaseLedgerEntry, HasOptionalPreviousTxnID { + extends BaseLedgerEntry, + HasOptionalPreviousTxnID { LedgerEntryType: 'DirectoryNode' /** * A bit-map of boolean flags enabled for this directory. Currently, the diff --git a/packages/xrpl/src/models/ledger/FeeSettings.ts b/packages/xrpl/src/models/ledger/FeeSettings.ts index de44528c17..25de4b8820 100644 --- a/packages/xrpl/src/models/ledger/FeeSettings.ts +++ b/packages/xrpl/src/models/ledger/FeeSettings.ts @@ -27,7 +27,8 @@ export interface FeeSettingsPostAmendmentFields { } export interface FeeSettingsBase - extends BaseLedgerEntry, HasOptionalPreviousTxnID { + extends BaseLedgerEntry, + HasOptionalPreviousTxnID { LedgerEntryType: 'FeeSettings' /** * A bit-map of boolean flags for this object. No flags are defined for this type. diff --git a/packages/xrpl/src/models/ledger/NegativeUNL.ts b/packages/xrpl/src/models/ledger/NegativeUNL.ts index 090b4232db..b9c0d51f3a 100644 --- a/packages/xrpl/src/models/ledger/NegativeUNL.ts +++ b/packages/xrpl/src/models/ledger/NegativeUNL.ts @@ -13,7 +13,8 @@ export const NEGATIVE_UNL_ID = * @category Ledger Entries */ export default interface NegativeUNL - extends BaseLedgerEntry, HasOptionalPreviousTxnID { + extends BaseLedgerEntry, + HasOptionalPreviousTxnID { LedgerEntryType: 'NegativeUNL' /** * A list of trusted validators that are currently disabled. diff --git a/packages/xrpl/src/models/ledger/PermissionedDomain.ts b/packages/xrpl/src/models/ledger/PermissionedDomain.ts index 52e42f05ed..2582ce006c 100644 --- a/packages/xrpl/src/models/ledger/PermissionedDomain.ts +++ b/packages/xrpl/src/models/ledger/PermissionedDomain.ts @@ -3,7 +3,8 @@ import { AuthorizeCredential } from '../common' import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' export default interface PermissionedDomain - extends BaseLedgerEntry, HasPreviousTxnID { + extends BaseLedgerEntry, + HasPreviousTxnID { /* The ledger object's type (PermissionedDomain). */ LedgerEntryType: 'PermissionedDomain' diff --git a/packages/xrpl/src/models/ledger/XChainOwnedClaimID.ts b/packages/xrpl/src/models/ledger/XChainOwnedClaimID.ts index 8ff2519983..d0fb0ce76e 100644 --- a/packages/xrpl/src/models/ledger/XChainOwnedClaimID.ts +++ b/packages/xrpl/src/models/ledger/XChainOwnedClaimID.ts @@ -10,7 +10,8 @@ import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' * @category Ledger Entries */ export default interface XChainOwnedClaimID - extends BaseLedgerEntry, HasPreviousTxnID { + extends BaseLedgerEntry, + HasPreviousTxnID { LedgerEntryType: 'XChainOwnedClaimID' /** The account that checked out this unique claim ID value. */ diff --git a/packages/xrpl/src/models/ledger/XChainOwnedCreateAccountClaimID.ts b/packages/xrpl/src/models/ledger/XChainOwnedCreateAccountClaimID.ts index 7bae165f78..02b873f419 100644 --- a/packages/xrpl/src/models/ledger/XChainOwnedCreateAccountClaimID.ts +++ b/packages/xrpl/src/models/ledger/XChainOwnedCreateAccountClaimID.ts @@ -9,7 +9,8 @@ import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' * @category Ledger Entries */ export default interface XChainOwnedCreateAccountClaimID - extends BaseLedgerEntry, HasPreviousTxnID { + extends BaseLedgerEntry, + HasPreviousTxnID { LedgerEntryType: 'XChainOwnedCreateAccountClaimID' /** The account that owns this object. */ diff --git a/packages/xrpl/src/models/methods/accountChannels.ts b/packages/xrpl/src/models/methods/accountChannels.ts index ee8e7d0fd8..30b6dcf278 100644 --- a/packages/xrpl/src/models/methods/accountChannels.ts +++ b/packages/xrpl/src/models/methods/accountChannels.ts @@ -88,7 +88,8 @@ export interface Channel { * @category Requests */ export interface AccountChannelsRequest - extends BaseRequest, LookupByLedgerRequest { + extends BaseRequest, + LookupByLedgerRequest { command: 'account_channels' /** * The unique identifier of an account, typically the account's address. The diff --git a/packages/xrpl/src/models/methods/accountCurrencies.ts b/packages/xrpl/src/models/methods/accountCurrencies.ts index 56fc26ed57..2e0df1a754 100644 --- a/packages/xrpl/src/models/methods/accountCurrencies.ts +++ b/packages/xrpl/src/models/methods/accountCurrencies.ts @@ -8,7 +8,8 @@ import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' * @category Requests */ export interface AccountCurrenciesRequest - extends BaseRequest, LookupByLedgerRequest { + extends BaseRequest, + LookupByLedgerRequest { command: 'account_currencies' /** A unique identifier for the account, most commonly the account's address. */ account: string diff --git a/packages/xrpl/src/models/methods/accountLines.ts b/packages/xrpl/src/models/methods/accountLines.ts index 1bb26b1e0a..a588ed38b9 100644 --- a/packages/xrpl/src/models/methods/accountLines.ts +++ b/packages/xrpl/src/models/methods/accountLines.ts @@ -73,7 +73,8 @@ export interface AccountLinesTrustline { * @category Requests */ export interface AccountLinesRequest - extends BaseRequest, LookupByLedgerRequest { + extends BaseRequest, + LookupByLedgerRequest { command: 'account_lines' /** A unique identifier for the account, most commonly the account's Address. */ account: string diff --git a/packages/xrpl/src/models/methods/accountObjects.ts b/packages/xrpl/src/models/methods/accountObjects.ts index a339793db5..90092847ce 100644 --- a/packages/xrpl/src/models/methods/accountObjects.ts +++ b/packages/xrpl/src/models/methods/accountObjects.ts @@ -16,7 +16,8 @@ export type AccountObjectType = Exclude< * @category Requests */ export interface AccountObjectsRequest - extends BaseRequest, LookupByLedgerRequest { + extends BaseRequest, + LookupByLedgerRequest { command: 'account_objects' /** A unique identifier for the account, most commonly the account's address. */ account: string diff --git a/packages/xrpl/src/models/methods/accountOffers.ts b/packages/xrpl/src/models/methods/accountOffers.ts index 5009fd7f63..7b061506ac 100644 --- a/packages/xrpl/src/models/methods/accountOffers.ts +++ b/packages/xrpl/src/models/methods/accountOffers.ts @@ -10,7 +10,8 @@ import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' * @category Requests */ export interface AccountOffersRequest - extends BaseRequest, LookupByLedgerRequest { + extends BaseRequest, + LookupByLedgerRequest { command: 'account_offers' /** A unique identifier for the account, most commonly the account's Address. */ account: string diff --git a/packages/xrpl/src/models/methods/contractInfo.ts b/packages/xrpl/src/models/methods/contractInfo.ts index 30c702dea9..ff73cf56f4 100644 --- a/packages/xrpl/src/models/methods/contractInfo.ts +++ b/packages/xrpl/src/models/methods/contractInfo.ts @@ -21,16 +21,17 @@ export interface ContractInfoRequest function?: string } -interface ContractInfoResponse extends BaseResponse { +export interface ContractInfoResponse extends BaseResponse { result: { // IDEA - // contract: any // LedgerObject Contract for the contract instance - // contract_source: any // LedgerObject ContractSource for the contract code - // contract_account: any LedgerObject AccountRoot for pseudo-account of the contract + // contract: LedgerObject Contract for the contract instance + // contract_source: LedgerObject ContractSource for the contract code + // contract_account: LedgerObject AccountRoot for pseudo-account of the contract contract_account: string code: string hash: string + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- function definitions can vary functions: any[] source_code_uri: string @@ -39,7 +40,9 @@ interface ContractInfoResponse extends BaseResponse { * in the ledger. */ account_data: AccountRoot + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- contract data structure is flexible contract_data: any + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- user data structure is flexible user_data?: any /** diff --git a/packages/xrpl/src/models/methods/depositAuthorized.ts b/packages/xrpl/src/models/methods/depositAuthorized.ts index f0cf75ff2a..c64b964e7f 100644 --- a/packages/xrpl/src/models/methods/depositAuthorized.ts +++ b/packages/xrpl/src/models/methods/depositAuthorized.ts @@ -8,7 +8,8 @@ import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' * @category Requests */ export interface DepositAuthorizedRequest - extends BaseRequest, LookupByLedgerRequest { + extends BaseRequest, + LookupByLedgerRequest { command: 'deposit_authorized' /** The sender of a possible payment. */ source_account: string diff --git a/packages/xrpl/src/models/methods/gatewayBalances.ts b/packages/xrpl/src/models/methods/gatewayBalances.ts index 4f2a5997fa..569908a722 100644 --- a/packages/xrpl/src/models/methods/gatewayBalances.ts +++ b/packages/xrpl/src/models/methods/gatewayBalances.ts @@ -20,7 +20,8 @@ import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' * @category Requests */ export interface GatewayBalancesRequest - extends BaseRequest, LookupByLedgerRequest { + extends BaseRequest, + LookupByLedgerRequest { command: 'gateway_balances' /** The Address to check. This should be the issuing address. */ account: string diff --git a/packages/xrpl/src/models/methods/ledger.ts b/packages/xrpl/src/models/methods/ledger.ts index c0dab28a71..bc04e5f38e 100644 --- a/packages/xrpl/src/models/methods/ledger.ts +++ b/packages/xrpl/src/models/methods/ledger.ts @@ -144,8 +144,9 @@ export interface LedgerRequestExpandedAccountsOnly extends LedgerRequest { * * @category Requests */ -// eslint-disable-next-line max-len -- Disable for interface declaration. -export interface LedgerRequestExpandedAccountsAndTransactions extends LedgerRequest { + +export interface LedgerRequestExpandedAccountsAndTransactions + extends LedgerRequest { expand: true accounts: true transactions: true @@ -202,18 +203,14 @@ export interface LedgerQueueData { max_spend_drops?: string } -export interface LedgerBinary extends Omit< - Ledger, - 'transactions' | 'accountState' -> { +export interface LedgerBinary + extends Omit { accountState?: string[] transactions?: string[] } -export interface LedgerBinaryV1 extends Omit< - LedgerV1, - 'transactions' | 'accountState' -> { +export interface LedgerBinaryV1 + extends Omit { accountState?: string[] transactions?: string[] } diff --git a/packages/xrpl/src/models/methods/nftBuyOffers.ts b/packages/xrpl/src/models/methods/nftBuyOffers.ts index 7b03be2c3b..f9d2975200 100644 --- a/packages/xrpl/src/models/methods/nftBuyOffers.ts +++ b/packages/xrpl/src/models/methods/nftBuyOffers.ts @@ -9,7 +9,8 @@ import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' * @category Requests */ export interface NFTBuyOffersRequest - extends BaseRequest, LookupByLedgerRequest { + extends BaseRequest, + LookupByLedgerRequest { command: 'nft_buy_offers' /** * The unique identifier of an NFToken. The request returns buy offers for this NFToken. diff --git a/packages/xrpl/src/models/methods/nftSellOffers.ts b/packages/xrpl/src/models/methods/nftSellOffers.ts index c52e57d96f..b56df10914 100644 --- a/packages/xrpl/src/models/methods/nftSellOffers.ts +++ b/packages/xrpl/src/models/methods/nftSellOffers.ts @@ -9,7 +9,8 @@ import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' * @category Requests */ export interface NFTSellOffersRequest - extends BaseRequest, LookupByLedgerRequest { + extends BaseRequest, + LookupByLedgerRequest { command: 'nft_sell_offers' /** * The unique identifier of an NFToken. The request returns sell offers for this NFToken. diff --git a/packages/xrpl/src/models/methods/nftsByIssuer.ts b/packages/xrpl/src/models/methods/nftsByIssuer.ts index 9ef01a2cac..ac46a4b7b4 100644 --- a/packages/xrpl/src/models/methods/nftsByIssuer.ts +++ b/packages/xrpl/src/models/methods/nftsByIssuer.ts @@ -11,7 +11,8 @@ import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' * @category Requests */ export interface NFTsByIssuerRequest - extends BaseRequest, LookupByLedgerRequest { + extends BaseRequest, + LookupByLedgerRequest { command: 'nfts_by_issuer' /** * A unique identifier for the account, most commonly the account's address diff --git a/packages/xrpl/src/models/methods/ripplePathFind.ts b/packages/xrpl/src/models/methods/ripplePathFind.ts index c1ba36a1a4..4fba389488 100644 --- a/packages/xrpl/src/models/methods/ripplePathFind.ts +++ b/packages/xrpl/src/models/methods/ripplePathFind.ts @@ -15,7 +15,8 @@ export interface SourceCurrencyAmount { * @category Requests */ export interface RipplePathFindRequest - extends BaseRequest, LookupByLedgerRequest { + extends BaseRequest, + LookupByLedgerRequest { command: 'ripple_path_find' /** Unique address of the account that would send funds in a transaction. */ source_account: string diff --git a/packages/xrpl/src/models/methods/simulate.ts b/packages/xrpl/src/models/methods/simulate.ts index 4b46188e9b..ed27212eb8 100644 --- a/packages/xrpl/src/models/methods/simulate.ts +++ b/packages/xrpl/src/models/methods/simulate.ts @@ -64,9 +64,8 @@ export interface SimulateBinaryResponse extends BaseResponse { } } -export interface SimulateJsonResponse< - T extends BaseTransaction = Transaction, -> extends BaseResponse { +export interface SimulateJsonResponse + extends BaseResponse { result: { applied: false diff --git a/packages/xrpl/src/models/methods/transactionEntry.ts b/packages/xrpl/src/models/methods/transactionEntry.ts index 36a973edb8..feee70fd79 100644 --- a/packages/xrpl/src/models/methods/transactionEntry.ts +++ b/packages/xrpl/src/models/methods/transactionEntry.ts @@ -11,7 +11,8 @@ import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' * @category Requests */ export interface TransactionEntryRequest - extends BaseRequest, LookupByLedgerRequest { + extends BaseRequest, + LookupByLedgerRequest { command: 'transaction_entry' /** Unique hash of the transaction you are looking up. */ diff --git a/packages/xrpl/src/models/methods/tx.ts b/packages/xrpl/src/models/methods/tx.ts index 9de8a8afc0..c8df683fb2 100644 --- a/packages/xrpl/src/models/methods/tx.ts +++ b/packages/xrpl/src/models/methods/tx.ts @@ -93,9 +93,8 @@ interface BaseTxResult< * * @category Responses */ -export interface TxResponse< - T extends BaseTransaction = Transaction, -> extends BaseResponse { +export interface TxResponse + extends BaseResponse { result: BaseTxResult & { tx_json: T } /** * If true, the server was able to search all of the specified ledger @@ -111,9 +110,8 @@ export interface TxResponse< * * @category ResponsesV1 */ -export interface TxV1Response< - T extends BaseTransaction = Transaction, -> extends BaseResponse { +export interface TxV1Response + extends BaseResponse { result: BaseTxResult & T /** * If true, the server was able to search all of the specified ledger diff --git a/packages/xrpl/src/models/transactions/MPTokenIssuanceCreate.ts b/packages/xrpl/src/models/transactions/MPTokenIssuanceCreate.ts index 6a6b6f9e32..b2e5d869f8 100644 --- a/packages/xrpl/src/models/transactions/MPTokenIssuanceCreate.ts +++ b/packages/xrpl/src/models/transactions/MPTokenIssuanceCreate.ts @@ -63,8 +63,9 @@ export enum MPTokenIssuanceCreateFlags { * * @category Transaction Flags */ -// eslint-disable-next-line max-len -- Disable for interface declaration. -export interface MPTokenIssuanceCreateFlagsInterface extends GlobalFlagsInterface { + +export interface MPTokenIssuanceCreateFlagsInterface + extends GlobalFlagsInterface { tfMPTCanLock?: boolean tfMPTRequireAuth?: boolean tfMPTCanEscrow?: boolean diff --git a/packages/xrpl/src/models/transactions/contractCreate.ts b/packages/xrpl/src/models/transactions/contractCreate.ts index c592902438..aba9352cdf 100644 --- a/packages/xrpl/src/models/transactions/contractCreate.ts +++ b/packages/xrpl/src/models/transactions/contractCreate.ts @@ -1,4 +1,5 @@ import { Function, InstanceParameter, InstanceParameterValue } from '../common' + import { BaseTransaction, GlobalFlagsInterface, diff --git a/packages/xrpl/src/models/transactions/contractModify.ts b/packages/xrpl/src/models/transactions/contractModify.ts index 33be00491e..3a3d172a0f 100644 --- a/packages/xrpl/src/models/transactions/contractModify.ts +++ b/packages/xrpl/src/models/transactions/contractModify.ts @@ -1,4 +1,5 @@ import { Function, InstanceParameter, InstanceParameterValue } from '../common' + import { BaseTransaction, isArray, diff --git a/packages/xrpl/src/models/transactions/contractUserDelete.ts b/packages/xrpl/src/models/transactions/contractUserDelete.ts index c49b2d1e1c..8624265ccc 100644 --- a/packages/xrpl/src/models/transactions/contractUserDelete.ts +++ b/packages/xrpl/src/models/transactions/contractUserDelete.ts @@ -1,12 +1,8 @@ -import { Parameter } from '../common' - import { BaseTransaction, - isArray, isNumber, isString, validateBaseTransaction, - validateOptionalField, validateRequiredField, } from './common' diff --git a/packages/xrpl/src/models/transactions/paymentChannelClaim.ts b/packages/xrpl/src/models/transactions/paymentChannelClaim.ts index d13f694dbe..e5b3520710 100644 --- a/packages/xrpl/src/models/transactions/paymentChannelClaim.ts +++ b/packages/xrpl/src/models/transactions/paymentChannelClaim.ts @@ -73,8 +73,9 @@ export enum PaymentChannelClaimFlags { * // } * ``` */ -// eslint-disable-next-line max-len -- Disable for interface declaration. -export interface PaymentChannelClaimFlagsInterface extends GlobalFlagsInterface { + +export interface PaymentChannelClaimFlagsInterface + extends GlobalFlagsInterface { /** * Clear the channel's Expiration time. (Expiration is different from the * channel's immutable CancelAfter time.) Only the source address of the From d41e3ccdfb6fc09af562196044244e0c7b69cb15 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 23 Apr 2026 17:37:19 -0400 Subject: [PATCH 17/22] remove bad tests --- .../xrpl/test/models/contractUserDelete.test.ts | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/packages/xrpl/test/models/contractUserDelete.test.ts b/packages/xrpl/test/models/contractUserDelete.test.ts index a60691748b..4a144d88aa 100644 --- a/packages/xrpl/test/models/contractUserDelete.test.ts +++ b/packages/xrpl/test/models/contractUserDelete.test.ts @@ -46,19 +46,4 @@ describe('ContractUserDelete', function () { tx.ContractAccount = 123 assertInvalid(tx, 'ContractUserDelete: invalid field ContractAccount') }) - - it('throws w/ missing FunctionName', function () { - delete tx.FunctionName - assertInvalid(tx, 'ContractUserDelete: missing field FunctionName') - }) - - it('throws w/ invalid FunctionName', function () { - tx.FunctionName = 123 - assertInvalid(tx, 'ContractUserDelete: invalid field FunctionName') - }) - - it('throws w/ invalid Parameters', function () { - tx.Parameters = 'not_an_array' - assertInvalid(tx, 'ContractUserDelete: invalid field Parameters') - }) }) From ca766da728e47e434c6ef94c23d10701636c13b7 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 23 Apr 2026 17:46:45 -0400 Subject: [PATCH 18/22] clean up code --- .../ripple-binary-codec/src/types/data.ts | 397 ++++-------------- .../ripple-binary-codec/src/types/json.ts | 45 +- 2 files changed, 120 insertions(+), 322 deletions(-) diff --git a/packages/ripple-binary-codec/src/types/data.ts b/packages/ripple-binary-codec/src/types/data.ts index ebb851ecd3..c77ab25012 100644 --- a/packages/ripple-binary-codec/src/types/data.ts +++ b/packages/ripple-binary-codec/src/types/data.ts @@ -1,5 +1,3 @@ -/* eslint-disable max-lines */ -/* eslint-disable complexity */ import { BinaryParser } from '../serdes/binary-parser' import { JsonObject, @@ -16,11 +14,11 @@ import { Hash160 } from './hash-160' import { Hash192 } from './hash-192' import { Hash256 } from './hash-256' import { AccountID } from './account-id' -import { Amount, AmountObject } from './amount' +import { Amount } from './amount' import { Blob } from './blob' import { Currency } from './currency' import { STNumber } from './st-number' -import { Issue, IssueObject } from './issue' +import { Issue } from './issue' import { UInt8 } from './uint-8' import { UInt16 } from './uint-16' import { UInt32 } from './uint-32' @@ -36,27 +34,36 @@ interface DataJSON extends JsonObject { } /** - * Type union for all possible data values + * Map from SerializedTypeID to the corresponding type class. + * Types listed here use standard from()/fromParser()/toBytes() without + * any extra framing (unlike VL and Account which need length prefixes). */ -type DataValue = - | number - | string - | bigint - | Uint8Array - | UInt8 - | UInt16 - | UInt32 - | UInt64 - | Hash128 - | Hash160 - | Hash192 - | Hash256 - | AccountID - | Amount - | Blob - | Currency - | STNumber - | Issue +const SIMPLE_TYPE_MAP: Partial< + Record +> = { + [SerializedTypeID.STI_UINT8]: UInt8, + [SerializedTypeID.STI_UINT16]: UInt16, + [SerializedTypeID.STI_UINT32]: UInt32, + [SerializedTypeID.STI_UINT64]: UInt64, + [SerializedTypeID.STI_UINT128]: Hash128, + [SerializedTypeID.STI_UINT160]: Hash160, + [SerializedTypeID.STI_UINT192]: Hash192, + [SerializedTypeID.STI_UINT256]: Hash256, + [SerializedTypeID.STI_AMOUNT]: Amount, + [SerializedTypeID.STI_ISSUE]: Issue, + [SerializedTypeID.STI_CURRENCY]: Currency, + [SerializedTypeID.STI_NUMBER]: STNumber, +} + +/** + * Types whose from() method expects a numeric argument. + * For these, json.value is coerced to a number before calling from(). + */ +const NUMERIC_TYPES = new Set([ + SerializedTypeID.STI_UINT8, + SerializedTypeID.STI_UINT16, + SerializedTypeID.STI_UINT32, +]) /** * STData: Encodes XRPL's "Data" type. @@ -125,158 +132,40 @@ class Data extends SerializedType { throw new Error(`Data: unsupported type string: ${json.type}`) } - let dataValue: DataValue let dataBytes: Uint8Array - switch (typeId) { - case SerializedTypeID.STI_UINT8: { - const val = - typeof json.value === 'string' - ? parseInt(json.value, 10) - : typeof json.value === 'number' - ? json.value - : Number(json.value) - if ( - typeof val !== 'number' || - Number.isNaN(val) || - val < 0 || - val > 255 - ) { - throw new Error('UINT8 value out of range') - } - dataValue = UInt8.from(val) - dataBytes = (dataValue as UInt8).toBytes() - break - } - - case SerializedTypeID.STI_UINT16: { - const val = - typeof json.value === 'string' - ? parseInt(json.value, 10) - : typeof json.value === 'number' - ? json.value - : Number(json.value) - if ( - typeof val !== 'number' || - Number.isNaN(val) || - val < 0 || - val > 65535 - ) { - throw new Error('UINT16 value out of range') - } - dataValue = UInt16.from(val) - dataBytes = (dataValue as UInt16).toBytes() - break - } - - case SerializedTypeID.STI_UINT32: { - const val = - typeof json.value === 'string' - ? parseInt(json.value, 10) - : typeof json.value === 'number' - ? json.value - : Number(json.value) - dataValue = UInt32.from(val) - dataBytes = (dataValue as UInt32).toBytes() - break - } - - case SerializedTypeID.STI_UINT64: { - const val = - typeof json.value === 'string' ? json.value : json.value.toString() - dataValue = UInt64.from(val) - dataBytes = (dataValue as UInt64).toBytes() - break - } - - case SerializedTypeID.STI_UINT128: { - const val = - typeof json.value === 'string' ? json.value : json.value.toString() - dataValue = Hash128.from(val) - dataBytes = (dataValue as Hash128).toBytes() - break - } - - case SerializedTypeID.STI_UINT160: { - const val = - typeof json.value === 'string' ? json.value : json.value.toString() - dataValue = Hash160.from(val) - dataBytes = (dataValue as Hash160).toBytes() - break - } - - case SerializedTypeID.STI_UINT192: { - const val = - typeof json.value === 'string' ? json.value : json.value.toString() - dataValue = Hash192.from(val) - dataBytes = (dataValue as Hash192).toBytes() - break - } - - case SerializedTypeID.STI_UINT256: { - const val = - typeof json.value === 'string' ? json.value : json.value.toString() - dataValue = Hash256.from(val) - dataBytes = (dataValue as Hash256).toBytes() - break - } - - case SerializedTypeID.STI_VL: { - const val = - typeof json.value === 'string' ? json.value : json.value.toString() - dataValue = Blob.from(val) - dataBytes = dataValue.toBytes() - const lengthBytes = BinarySerializer.encodeVariableLength( - dataBytes.length, - ) - dataBytes = concat([lengthBytes, dataBytes]) - break - } - - case SerializedTypeID.STI_ACCOUNT: { - dataValue = AccountID.from( - typeof json.value === 'string' ? json.value : json.value.toString(), - ) - dataBytes = (dataValue as AccountID).toBytes() - dataBytes = concat([new Uint8Array([0x14]), dataBytes]) - break - } - - case SerializedTypeID.STI_AMOUNT: { - dataValue = Amount.from(json.value as AmountObject) - dataBytes = (dataValue as Amount).toBytes() - break - } - - case SerializedTypeID.STI_ISSUE: { - dataValue = Issue.from(json.value as IssueObject) - dataBytes = (dataValue as Issue).toBytes() - break - } - - case SerializedTypeID.STI_CURRENCY: { - const val = - typeof json.value === 'string' ? json.value : json.value.toString() - dataValue = Currency.from(val) - dataBytes = (dataValue as Currency).toBytes() - break - } - - case SerializedTypeID.STI_NUMBER: { - dataValue = STNumber.from(json.value) - dataBytes = (dataValue as STNumber).toBytes() - break - } - - default: - throw new Error(`Data.fromJSON(): unsupported type ID: ${typeId}`) + const TypeClass = SIMPLE_TYPE_MAP[typeId] + if (TypeClass) { + // For UInt8/16/32, coerce value to number; all others pass through + const coercedValue = NUMERIC_TYPES.has(typeId) + ? typeof json.value === 'string' + ? parseInt(json.value, 10) + : Number(json.value) + : json.value + dataBytes = TypeClass.from(coercedValue).toBytes() + } else if (typeId === SerializedTypeID.STI_VL) { + const val = + typeof json.value === 'string' ? json.value : json.value.toString() + dataBytes = Blob.from(val).toBytes() + dataBytes = concat([ + BinarySerializer.encodeVariableLength(dataBytes.length), + dataBytes, + ]) + } else if (typeId === SerializedTypeID.STI_ACCOUNT) { + const val = + typeof json.value === 'string' ? json.value : json.value.toString() + dataBytes = concat([ + new Uint8Array([0x14]), + AccountID.from(val).toBytes(), + ]) + } else { + throw new Error(`Data.fromJSON(): unsupported type ID: ${typeId}`) } // Combine type header with data bytes const typeBytes = new Uint8Array(2) writeUInt16BE(typeBytes, typeId, 0) - const fullBytes = concat([typeBytes, dataBytes]) - return new Data(fullBytes) + return new Data(concat([typeBytes, dataBytes])) } /** @@ -290,94 +179,28 @@ class Data extends SerializedType { const typeBytes = parser.read(2) const typeId = TYPE_NUMBER_TO_ID[readUInt16BE(typeBytes, 0)] - let dataValue: DataValue let dataBytes: Uint8Array - switch (typeId) { - case SerializedTypeID.STI_UINT8: - dataValue = UInt8.fromParser(parser) - dataBytes = (dataValue as UInt8).toBytes() - break - - case SerializedTypeID.STI_UINT16: - dataValue = UInt16.fromParser(parser) - dataBytes = (dataValue as UInt16).toBytes() - break - - case SerializedTypeID.STI_UINT32: - dataValue = UInt32.fromParser(parser) - dataBytes = (dataValue as UInt32).toBytes() - break - - case SerializedTypeID.STI_UINT64: - dataValue = UInt64.fromParser(parser) - dataBytes = (dataValue as UInt64).toBytes() - break - - case SerializedTypeID.STI_UINT128: - dataValue = Hash128.fromParser(parser) - dataBytes = (dataValue as Hash128).toBytes() - break - - case SerializedTypeID.STI_UINT160: - dataValue = Hash160.fromParser(parser) - dataBytes = (dataValue as Hash160).toBytes() - break - - case SerializedTypeID.STI_UINT192: - dataValue = Hash192.fromParser(parser) - dataBytes = (dataValue as Hash192).toBytes() - break - - case SerializedTypeID.STI_UINT256: - dataValue = Hash256.fromParser(parser) - dataBytes = (dataValue as Hash256).toBytes() - break - - case SerializedTypeID.STI_VL: - const valueVL = parser.readVariableLength() - dataValue = Blob.from(bytesToHex(valueVL)) - dataBytes = concat([ - BinarySerializer.encodeVariableLength(valueVL.length), - valueVL, - ]) - break - - case SerializedTypeID.STI_ACCOUNT: - parser.skip(1) - dataValue = AccountID.fromParser(parser) - dataBytes = concat([ - new Uint8Array([0x14]), - (dataValue as AccountID).toBytes(), - ]) - break - - case SerializedTypeID.STI_AMOUNT: - dataValue = Amount.fromParser(parser) - dataBytes = (dataValue as Amount).toBytes() - break - - case SerializedTypeID.STI_ISSUE: - dataValue = Issue.fromParser(parser) - dataBytes = (dataValue as Issue).toBytes() - break - - case SerializedTypeID.STI_CURRENCY: - dataValue = Currency.fromParser(parser) - dataBytes = (dataValue as Currency).toBytes() - break - - case SerializedTypeID.STI_NUMBER: - dataValue = STNumber.fromParser(parser) - dataBytes = (dataValue as STNumber).toBytes() - break - - default: - throw new Error(`Data: unsupported type ID when parsing: ${typeId}`) + const TypeClass = SIMPLE_TYPE_MAP[typeId] + if (TypeClass) { + dataBytes = TypeClass.fromParser(parser).toBytes() + } else if (typeId === SerializedTypeID.STI_VL) { + const valueVL = parser.readVariableLength() + dataBytes = concat([ + BinarySerializer.encodeVariableLength(valueVL.length), + valueVL, + ]) + } else if (typeId === SerializedTypeID.STI_ACCOUNT) { + parser.skip(1) + dataBytes = concat([ + new Uint8Array([0x14]), + AccountID.fromParser(parser).toBytes(), + ]) + } else { + throw new Error(`Data: unsupported type ID when parsing: ${typeId}`) } - const fullBytes = concat([typeBytes, dataBytes]) - return new Data(fullBytes) + return new Data(concat([typeBytes, dataBytes])) } /** @@ -404,46 +227,26 @@ class Data extends SerializedType { * * @returns The stored data value */ - getValue(): DataValue { + getValue(): SerializedType { const innerType = this.getInnerType() const parser = new BinaryParser(bytesToHex(this.bytes.slice(2))) - switch (innerType) { - case SerializedTypeID.STI_UINT8: - return UInt8.fromParser(parser) - case SerializedTypeID.STI_UINT16: - return UInt16.fromParser(parser) - case SerializedTypeID.STI_UINT32: - return UInt32.fromParser(parser) - case SerializedTypeID.STI_UINT64: - return UInt64.fromParser(parser) - case SerializedTypeID.STI_UINT128: - return Hash128.fromParser(parser) - case SerializedTypeID.STI_UINT160: - return Hash160.fromParser(parser) - case SerializedTypeID.STI_UINT192: - return Hash192.fromParser(parser) - case SerializedTypeID.STI_UINT256: - return Hash256.fromParser(parser) - case SerializedTypeID.STI_VL: - const vlLength = parser.readVariableLengthLength() - return Blob.fromParser(parser, vlLength) - case SerializedTypeID.STI_ACCOUNT: - parser.skip(1) - return AccountID.fromParser(parser) - case SerializedTypeID.STI_AMOUNT: - return Amount.fromParser(parser) - case SerializedTypeID.STI_ISSUE: - return Issue.fromParser(parser) - case SerializedTypeID.STI_CURRENCY: - return Currency.fromParser(parser) - case SerializedTypeID.STI_NUMBER: - return STNumber.fromParser(parser) - default: - throw new Error( - `Data.getValue(): unsupported type ID: ${typeof innerType}`, - ) + const TypeClass = SIMPLE_TYPE_MAP[innerType] + if (TypeClass) { + return TypeClass.fromParser(parser) + } + + if (innerType === SerializedTypeID.STI_VL) { + const vlLength = parser.readVariableLengthLength() + return Blob.fromParser(parser, vlLength) } + + if (innerType === SerializedTypeID.STI_ACCOUNT) { + parser.skip(1) + return AccountID.fromParser(parser) + } + + throw new Error(`Data.getValue(): unsupported type ID: ${typeof innerType}`) } /** @@ -452,23 +255,9 @@ class Data extends SerializedType { * @returns JSON object with 'type' and 'value' fields */ toJSON(): DataJSON { - const data = this.getValue() - let jsonValue: string | number | JsonObject - - // Convert the data value to its JSON representation - if (data instanceof SerializedType) { - jsonValue = data.toJSON() as JsonObject - } else if (data instanceof Uint8Array) { - jsonValue = bytesToHex(data) - } else if (typeof data === 'bigint') { - jsonValue = data.toString() - } else { - jsonValue = data - } - return { type: this.getInnerTypeString(), - value: jsonValue, + value: this.getValue().toJSON() as string | number | JsonObject, } } diff --git a/packages/ripple-binary-codec/src/types/json.ts b/packages/ripple-binary-codec/src/types/json.ts index 8feffcbba2..448f643634 100644 --- a/packages/ripple-binary-codec/src/types/json.ts +++ b/packages/ripple-binary-codec/src/types/json.ts @@ -1,5 +1,4 @@ /* eslint-disable max-lines */ -/* eslint-disable complexity */ import { BinaryParser } from '../serdes/binary-parser' import { JsonObject, SerializedType, SerializedTypeID } from './serialized-type' import { bytesToHex } from '@xrplf/isomorphic/utils' @@ -28,7 +27,7 @@ class STJson extends SerializedType { private data: Map | (SerializedType | null)[] private jsonType: number - private default_: boolean = false + private default_ = false /** * Construct STJson from bytes @@ -40,6 +39,21 @@ class STJson extends SerializedType { this.jsonType = STJson.JsonType.Object } + /** + * Create an empty STJson with the given type + */ + private static createEmpty( + type: number, + initialData?: + | Map + | (SerializedType | null)[], + ): STJson { + const json = new STJson(new Uint8Array()) + json.data = initialData ?? (type === STJson.JsonType.Array ? [] : new Map()) + json.jsonType = type + return json + } + /** * Parse STJson from BinaryParser * @@ -245,9 +259,7 @@ class STJson extends SerializedType { let nestedObj = map.get(key) if (!nestedObj || !(nestedObj instanceof STJson) || !nestedObj.isObject()) { - const newNested = new STJson(new Uint8Array()) - ;(newNested as any).data = new Map() - ;(newNested as any).jsonType = STJson.JsonType.Object + const newNested = STJson.createEmpty(STJson.JsonType.Object) map.set(key, newNested as SerializedType) nestedObj = newNested } @@ -358,9 +370,7 @@ class STJson extends SerializedType { let element = array[index] if (!element || !(element instanceof STJson) || !element.isObject()) { - const newElement = new STJson(new Uint8Array()) - ;(newElement as any).data = new Map() - ;(newElement as any).jsonType = STJson.JsonType.Object + const newElement = STJson.createEmpty(STJson.JsonType.Object) array[index] = newElement as SerializedType element = newElement } @@ -421,9 +431,7 @@ class STJson extends SerializedType { let arrayJson = map.get(key) if (!arrayJson || !(arrayJson instanceof STJson) || !arrayJson.isArray()) { - const newArray = new STJson(new Uint8Array()) - ;(newArray as any).data = [] - ;(newArray as any).jsonType = STJson.JsonType.Array + const newArray = STJson.createEmpty(STJson.JsonType.Array) map.set(key, newArray as SerializedType) arrayJson = newArray } @@ -436,6 +444,7 @@ class STJson extends SerializedType { /** * Set a field within a nested array element */ + // eslint-disable-next-line max-params -- all 4 params are needed to address a nested array element field setNestedArrayElementField( key: string, index: number, @@ -452,9 +461,7 @@ class STJson extends SerializedType { let arrayJson = map.get(key) if (!arrayJson || !(arrayJson instanceof STJson) || !arrayJson.isArray()) { - const newArray = new STJson(new Uint8Array()) - ;(newArray as any).data = [] - ;(newArray as any).jsonType = STJson.JsonType.Array + const newArray = STJson.createEmpty(STJson.JsonType.Array) map.set(key, newArray as SerializedType) arrayJson = newArray } @@ -570,7 +577,9 @@ class STJson extends SerializedType { toJSON(): JsonObject | JsonObject[] { if (this.isArray()) { const array = this.data as (SerializedType | null)[] - return array.map((item) => (item ? item.toJSON() : null)) as JsonObject[] + return array.map((item) => { + return item ? item.toJSON() : null + }) as JsonObject[] } else { // isObject() const map = this.data as Map @@ -578,7 +587,7 @@ class STJson extends SerializedType { for (const [key, value] of map.entries()) { result[key] = value ? value.toJSON() : null } - return result as JsonObject + return result } } @@ -626,8 +635,8 @@ class STJson extends SerializedType { if (!(v instanceof STJson)) { throw new Error('setValue: value must be STJson') } - ;(this as any).data = (v as any).data - ;(this as any).jsonType = (v as any).jsonType + this.data = v.data + this.jsonType = v.jsonType } /** From 7d5b96d0e9f78d9bcb042cedbf02f7145c257726 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 23 Apr 2026 17:59:27 -0400 Subject: [PATCH 19/22] fix more linting issues --- packages/xrpl/src/models/ledger/Amendments.ts | 3 +-- packages/xrpl/src/models/ledger/ContractData.ts | 3 +-- packages/xrpl/src/models/ledger/ContractSource.ts | 3 +-- packages/xrpl/src/models/ledger/DepositPreauth.ts | 3 +-- packages/xrpl/src/models/ledger/DirectoryNode.ts | 3 +-- packages/xrpl/src/models/ledger/FeeSettings.ts | 3 +-- packages/xrpl/src/models/ledger/NegativeUNL.ts | 3 +-- packages/xrpl/src/models/ledger/PermissionedDomain.ts | 3 +-- packages/xrpl/src/models/ledger/XChainOwnedClaimID.ts | 3 +-- .../models/ledger/XChainOwnedCreateAccountClaimID.ts | 3 +-- packages/xrpl/src/models/methods/accountChannels.ts | 3 +-- packages/xrpl/src/models/methods/accountCurrencies.ts | 3 +-- packages/xrpl/src/models/methods/accountLines.ts | 3 +-- packages/xrpl/src/models/methods/accountObjects.ts | 3 +-- packages/xrpl/src/models/methods/accountOffers.ts | 3 +-- packages/xrpl/src/models/methods/contractInfo.ts | 3 +-- packages/xrpl/src/models/methods/depositAuthorized.ts | 3 +-- packages/xrpl/src/models/methods/gatewayBalances.ts | 3 +-- packages/xrpl/src/models/methods/nftBuyOffers.ts | 3 +-- packages/xrpl/src/models/methods/nftSellOffers.ts | 3 +-- packages/xrpl/src/models/methods/nftsByIssuer.ts | 3 +-- packages/xrpl/src/models/methods/ripplePathFind.ts | 3 +-- packages/xrpl/src/models/methods/simulate.ts | 5 +++-- packages/xrpl/src/models/methods/transactionEntry.ts | 3 +-- packages/xrpl/src/models/methods/tx.ts | 10 ++++++---- 25 files changed, 32 insertions(+), 52 deletions(-) diff --git a/packages/xrpl/src/models/ledger/Amendments.ts b/packages/xrpl/src/models/ledger/Amendments.ts index f80e207964..b3971e869f 100644 --- a/packages/xrpl/src/models/ledger/Amendments.ts +++ b/packages/xrpl/src/models/ledger/Amendments.ts @@ -25,8 +25,7 @@ export interface Majority { * @category Ledger Entries */ export default interface Amendments - extends BaseLedgerEntry, - HasOptionalPreviousTxnID { + extends BaseLedgerEntry, HasOptionalPreviousTxnID { LedgerEntryType: 'Amendments' /** * Array of 256-bit amendment IDs for all currently-enabled amendments. If diff --git a/packages/xrpl/src/models/ledger/ContractData.ts b/packages/xrpl/src/models/ledger/ContractData.ts index 60234dc6bb..148043d3d1 100644 --- a/packages/xrpl/src/models/ledger/ContractData.ts +++ b/packages/xrpl/src/models/ledger/ContractData.ts @@ -6,8 +6,7 @@ import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' * @category Ledger Entries */ export default interface ContractData - extends BaseLedgerEntry, - HasPreviousTxnID { + extends BaseLedgerEntry, HasPreviousTxnID { LedgerEntryType: 'ContractData' /** The owner node for this contract data. */ OwnerNode: string diff --git a/packages/xrpl/src/models/ledger/ContractSource.ts b/packages/xrpl/src/models/ledger/ContractSource.ts index 5835e0a528..f22338f742 100644 --- a/packages/xrpl/src/models/ledger/ContractSource.ts +++ b/packages/xrpl/src/models/ledger/ContractSource.ts @@ -8,8 +8,7 @@ import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' * @category Ledger Entries */ export default interface ContractSource - extends BaseLedgerEntry, - HasPreviousTxnID { + extends BaseLedgerEntry, HasPreviousTxnID { LedgerEntryType: 'ContractSource' /** The hash of the contract. */ ContractHash: string diff --git a/packages/xrpl/src/models/ledger/DepositPreauth.ts b/packages/xrpl/src/models/ledger/DepositPreauth.ts index 7d5d0804ae..f93db62076 100644 --- a/packages/xrpl/src/models/ledger/DepositPreauth.ts +++ b/packages/xrpl/src/models/ledger/DepositPreauth.ts @@ -9,8 +9,7 @@ import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' * @category Ledger Entries */ export default interface DepositPreauth - extends BaseLedgerEntry, - HasPreviousTxnID { + extends BaseLedgerEntry, HasPreviousTxnID { LedgerEntryType: 'DepositPreauth' /** The account that granted the preauthorization. */ Account: string diff --git a/packages/xrpl/src/models/ledger/DirectoryNode.ts b/packages/xrpl/src/models/ledger/DirectoryNode.ts index 2404098899..4cabf1627b 100644 --- a/packages/xrpl/src/models/ledger/DirectoryNode.ts +++ b/packages/xrpl/src/models/ledger/DirectoryNode.ts @@ -7,8 +7,7 @@ import { BaseLedgerEntry, HasOptionalPreviousTxnID } from './BaseLedgerEntry' * @category Ledger Entries */ export default interface DirectoryNode - extends BaseLedgerEntry, - HasOptionalPreviousTxnID { + extends BaseLedgerEntry, HasOptionalPreviousTxnID { LedgerEntryType: 'DirectoryNode' /** * A bit-map of boolean flags enabled for this directory. Currently, the diff --git a/packages/xrpl/src/models/ledger/FeeSettings.ts b/packages/xrpl/src/models/ledger/FeeSettings.ts index 25de4b8820..de44528c17 100644 --- a/packages/xrpl/src/models/ledger/FeeSettings.ts +++ b/packages/xrpl/src/models/ledger/FeeSettings.ts @@ -27,8 +27,7 @@ export interface FeeSettingsPostAmendmentFields { } export interface FeeSettingsBase - extends BaseLedgerEntry, - HasOptionalPreviousTxnID { + extends BaseLedgerEntry, HasOptionalPreviousTxnID { LedgerEntryType: 'FeeSettings' /** * A bit-map of boolean flags for this object. No flags are defined for this type. diff --git a/packages/xrpl/src/models/ledger/NegativeUNL.ts b/packages/xrpl/src/models/ledger/NegativeUNL.ts index b9c0d51f3a..090b4232db 100644 --- a/packages/xrpl/src/models/ledger/NegativeUNL.ts +++ b/packages/xrpl/src/models/ledger/NegativeUNL.ts @@ -13,8 +13,7 @@ export const NEGATIVE_UNL_ID = * @category Ledger Entries */ export default interface NegativeUNL - extends BaseLedgerEntry, - HasOptionalPreviousTxnID { + extends BaseLedgerEntry, HasOptionalPreviousTxnID { LedgerEntryType: 'NegativeUNL' /** * A list of trusted validators that are currently disabled. diff --git a/packages/xrpl/src/models/ledger/PermissionedDomain.ts b/packages/xrpl/src/models/ledger/PermissionedDomain.ts index 2582ce006c..52e42f05ed 100644 --- a/packages/xrpl/src/models/ledger/PermissionedDomain.ts +++ b/packages/xrpl/src/models/ledger/PermissionedDomain.ts @@ -3,8 +3,7 @@ import { AuthorizeCredential } from '../common' import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' export default interface PermissionedDomain - extends BaseLedgerEntry, - HasPreviousTxnID { + extends BaseLedgerEntry, HasPreviousTxnID { /* The ledger object's type (PermissionedDomain). */ LedgerEntryType: 'PermissionedDomain' diff --git a/packages/xrpl/src/models/ledger/XChainOwnedClaimID.ts b/packages/xrpl/src/models/ledger/XChainOwnedClaimID.ts index d0fb0ce76e..8ff2519983 100644 --- a/packages/xrpl/src/models/ledger/XChainOwnedClaimID.ts +++ b/packages/xrpl/src/models/ledger/XChainOwnedClaimID.ts @@ -10,8 +10,7 @@ import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' * @category Ledger Entries */ export default interface XChainOwnedClaimID - extends BaseLedgerEntry, - HasPreviousTxnID { + extends BaseLedgerEntry, HasPreviousTxnID { LedgerEntryType: 'XChainOwnedClaimID' /** The account that checked out this unique claim ID value. */ diff --git a/packages/xrpl/src/models/ledger/XChainOwnedCreateAccountClaimID.ts b/packages/xrpl/src/models/ledger/XChainOwnedCreateAccountClaimID.ts index 02b873f419..7bae165f78 100644 --- a/packages/xrpl/src/models/ledger/XChainOwnedCreateAccountClaimID.ts +++ b/packages/xrpl/src/models/ledger/XChainOwnedCreateAccountClaimID.ts @@ -9,8 +9,7 @@ import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' * @category Ledger Entries */ export default interface XChainOwnedCreateAccountClaimID - extends BaseLedgerEntry, - HasPreviousTxnID { + extends BaseLedgerEntry, HasPreviousTxnID { LedgerEntryType: 'XChainOwnedCreateAccountClaimID' /** The account that owns this object. */ diff --git a/packages/xrpl/src/models/methods/accountChannels.ts b/packages/xrpl/src/models/methods/accountChannels.ts index 30b6dcf278..ee8e7d0fd8 100644 --- a/packages/xrpl/src/models/methods/accountChannels.ts +++ b/packages/xrpl/src/models/methods/accountChannels.ts @@ -88,8 +88,7 @@ export interface Channel { * @category Requests */ export interface AccountChannelsRequest - extends BaseRequest, - LookupByLedgerRequest { + extends BaseRequest, LookupByLedgerRequest { command: 'account_channels' /** * The unique identifier of an account, typically the account's address. The diff --git a/packages/xrpl/src/models/methods/accountCurrencies.ts b/packages/xrpl/src/models/methods/accountCurrencies.ts index 2e0df1a754..56fc26ed57 100644 --- a/packages/xrpl/src/models/methods/accountCurrencies.ts +++ b/packages/xrpl/src/models/methods/accountCurrencies.ts @@ -8,8 +8,7 @@ import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' * @category Requests */ export interface AccountCurrenciesRequest - extends BaseRequest, - LookupByLedgerRequest { + extends BaseRequest, LookupByLedgerRequest { command: 'account_currencies' /** A unique identifier for the account, most commonly the account's address. */ account: string diff --git a/packages/xrpl/src/models/methods/accountLines.ts b/packages/xrpl/src/models/methods/accountLines.ts index a588ed38b9..1bb26b1e0a 100644 --- a/packages/xrpl/src/models/methods/accountLines.ts +++ b/packages/xrpl/src/models/methods/accountLines.ts @@ -73,8 +73,7 @@ export interface AccountLinesTrustline { * @category Requests */ export interface AccountLinesRequest - extends BaseRequest, - LookupByLedgerRequest { + extends BaseRequest, LookupByLedgerRequest { command: 'account_lines' /** A unique identifier for the account, most commonly the account's Address. */ account: string diff --git a/packages/xrpl/src/models/methods/accountObjects.ts b/packages/xrpl/src/models/methods/accountObjects.ts index 90092847ce..a339793db5 100644 --- a/packages/xrpl/src/models/methods/accountObjects.ts +++ b/packages/xrpl/src/models/methods/accountObjects.ts @@ -16,8 +16,7 @@ export type AccountObjectType = Exclude< * @category Requests */ export interface AccountObjectsRequest - extends BaseRequest, - LookupByLedgerRequest { + extends BaseRequest, LookupByLedgerRequest { command: 'account_objects' /** A unique identifier for the account, most commonly the account's address. */ account: string diff --git a/packages/xrpl/src/models/methods/accountOffers.ts b/packages/xrpl/src/models/methods/accountOffers.ts index 7b061506ac..5009fd7f63 100644 --- a/packages/xrpl/src/models/methods/accountOffers.ts +++ b/packages/xrpl/src/models/methods/accountOffers.ts @@ -10,8 +10,7 @@ import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' * @category Requests */ export interface AccountOffersRequest - extends BaseRequest, - LookupByLedgerRequest { + extends BaseRequest, LookupByLedgerRequest { command: 'account_offers' /** A unique identifier for the account, most commonly the account's Address. */ account: string diff --git a/packages/xrpl/src/models/methods/contractInfo.ts b/packages/xrpl/src/models/methods/contractInfo.ts index ff73cf56f4..bb6f60ee47 100644 --- a/packages/xrpl/src/models/methods/contractInfo.ts +++ b/packages/xrpl/src/models/methods/contractInfo.ts @@ -10,8 +10,7 @@ import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' * @category Requests */ export interface ContractInfoRequest - extends BaseRequest, - LookupByLedgerRequest { + extends BaseRequest, LookupByLedgerRequest { command: 'contract_info' /** A unique identifier for the contract, most commonly the contract's address. */ contract_account: string diff --git a/packages/xrpl/src/models/methods/depositAuthorized.ts b/packages/xrpl/src/models/methods/depositAuthorized.ts index c64b964e7f..f0cf75ff2a 100644 --- a/packages/xrpl/src/models/methods/depositAuthorized.ts +++ b/packages/xrpl/src/models/methods/depositAuthorized.ts @@ -8,8 +8,7 @@ import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' * @category Requests */ export interface DepositAuthorizedRequest - extends BaseRequest, - LookupByLedgerRequest { + extends BaseRequest, LookupByLedgerRequest { command: 'deposit_authorized' /** The sender of a possible payment. */ source_account: string diff --git a/packages/xrpl/src/models/methods/gatewayBalances.ts b/packages/xrpl/src/models/methods/gatewayBalances.ts index 569908a722..4f2a5997fa 100644 --- a/packages/xrpl/src/models/methods/gatewayBalances.ts +++ b/packages/xrpl/src/models/methods/gatewayBalances.ts @@ -20,8 +20,7 @@ import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' * @category Requests */ export interface GatewayBalancesRequest - extends BaseRequest, - LookupByLedgerRequest { + extends BaseRequest, LookupByLedgerRequest { command: 'gateway_balances' /** The Address to check. This should be the issuing address. */ account: string diff --git a/packages/xrpl/src/models/methods/nftBuyOffers.ts b/packages/xrpl/src/models/methods/nftBuyOffers.ts index f9d2975200..7b03be2c3b 100644 --- a/packages/xrpl/src/models/methods/nftBuyOffers.ts +++ b/packages/xrpl/src/models/methods/nftBuyOffers.ts @@ -9,8 +9,7 @@ import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' * @category Requests */ export interface NFTBuyOffersRequest - extends BaseRequest, - LookupByLedgerRequest { + extends BaseRequest, LookupByLedgerRequest { command: 'nft_buy_offers' /** * The unique identifier of an NFToken. The request returns buy offers for this NFToken. diff --git a/packages/xrpl/src/models/methods/nftSellOffers.ts b/packages/xrpl/src/models/methods/nftSellOffers.ts index b56df10914..c52e57d96f 100644 --- a/packages/xrpl/src/models/methods/nftSellOffers.ts +++ b/packages/xrpl/src/models/methods/nftSellOffers.ts @@ -9,8 +9,7 @@ import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' * @category Requests */ export interface NFTSellOffersRequest - extends BaseRequest, - LookupByLedgerRequest { + extends BaseRequest, LookupByLedgerRequest { command: 'nft_sell_offers' /** * The unique identifier of an NFToken. The request returns sell offers for this NFToken. diff --git a/packages/xrpl/src/models/methods/nftsByIssuer.ts b/packages/xrpl/src/models/methods/nftsByIssuer.ts index ac46a4b7b4..9ef01a2cac 100644 --- a/packages/xrpl/src/models/methods/nftsByIssuer.ts +++ b/packages/xrpl/src/models/methods/nftsByIssuer.ts @@ -11,8 +11,7 @@ import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' * @category Requests */ export interface NFTsByIssuerRequest - extends BaseRequest, - LookupByLedgerRequest { + extends BaseRequest, LookupByLedgerRequest { command: 'nfts_by_issuer' /** * A unique identifier for the account, most commonly the account's address diff --git a/packages/xrpl/src/models/methods/ripplePathFind.ts b/packages/xrpl/src/models/methods/ripplePathFind.ts index 4fba389488..c1ba36a1a4 100644 --- a/packages/xrpl/src/models/methods/ripplePathFind.ts +++ b/packages/xrpl/src/models/methods/ripplePathFind.ts @@ -15,8 +15,7 @@ export interface SourceCurrencyAmount { * @category Requests */ export interface RipplePathFindRequest - extends BaseRequest, - LookupByLedgerRequest { + extends BaseRequest, LookupByLedgerRequest { command: 'ripple_path_find' /** Unique address of the account that would send funds in a transaction. */ source_account: string diff --git a/packages/xrpl/src/models/methods/simulate.ts b/packages/xrpl/src/models/methods/simulate.ts index ed27212eb8..4b46188e9b 100644 --- a/packages/xrpl/src/models/methods/simulate.ts +++ b/packages/xrpl/src/models/methods/simulate.ts @@ -64,8 +64,9 @@ export interface SimulateBinaryResponse extends BaseResponse { } } -export interface SimulateJsonResponse - extends BaseResponse { +export interface SimulateJsonResponse< + T extends BaseTransaction = Transaction, +> extends BaseResponse { result: { applied: false diff --git a/packages/xrpl/src/models/methods/transactionEntry.ts b/packages/xrpl/src/models/methods/transactionEntry.ts index feee70fd79..36a973edb8 100644 --- a/packages/xrpl/src/models/methods/transactionEntry.ts +++ b/packages/xrpl/src/models/methods/transactionEntry.ts @@ -11,8 +11,7 @@ import { BaseRequest, BaseResponse, LookupByLedgerRequest } from './baseMethod' * @category Requests */ export interface TransactionEntryRequest - extends BaseRequest, - LookupByLedgerRequest { + extends BaseRequest, LookupByLedgerRequest { command: 'transaction_entry' /** Unique hash of the transaction you are looking up. */ diff --git a/packages/xrpl/src/models/methods/tx.ts b/packages/xrpl/src/models/methods/tx.ts index c8df683fb2..9de8a8afc0 100644 --- a/packages/xrpl/src/models/methods/tx.ts +++ b/packages/xrpl/src/models/methods/tx.ts @@ -93,8 +93,9 @@ interface BaseTxResult< * * @category Responses */ -export interface TxResponse - extends BaseResponse { +export interface TxResponse< + T extends BaseTransaction = Transaction, +> extends BaseResponse { result: BaseTxResult & { tx_json: T } /** * If true, the server was able to search all of the specified ledger @@ -110,8 +111,9 @@ export interface TxResponse * * @category ResponsesV1 */ -export interface TxV1Response - extends BaseResponse { +export interface TxV1Response< + T extends BaseTransaction = Transaction, +> extends BaseResponse { result: BaseTxResult & T /** * If true, the server was able to search all of the specified ledger From 32da34be88d1b5659b9f8ff6ae505a884a78123c Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 23 Apr 2026 18:07:54 -0400 Subject: [PATCH 20/22] more linter fixes --- packages/xrpl/src/models/methods/index.ts | 340 +++++++++--------- packages/xrpl/src/models/methods/ledger.ts | 15 +- .../transactions/MPTokenIssuanceCreate.ts | 3 +- .../transactions/paymentChannelClaim.ts | 3 +- 4 files changed, 181 insertions(+), 180 deletions(-) diff --git a/packages/xrpl/src/models/methods/index.ts b/packages/xrpl/src/models/methods/index.ts index 96e01dc992..d467300785 100644 --- a/packages/xrpl/src/models/methods/index.ts +++ b/packages/xrpl/src/models/methods/index.ts @@ -326,164 +326,164 @@ export type RequestResponseMap< > = T extends AccountChannelsRequest ? AccountChannelsResponse : T extends AccountCurrenciesRequest - ? AccountCurrenciesResponse - : T extends AccountInfoRequest - ? AccountInfoVersionResponseMap - : T extends AccountLinesRequest - ? AccountLinesResponse - : T extends AccountNFTsRequest - ? AccountNFTsResponse - : T extends AccountObjectsRequest - ? AccountObjectsResponse - : T extends AccountOffersRequest - ? AccountOffersResponse - : T extends AccountTxRequest - ? AccountTxVersionResponseMap - : T extends AMMInfoRequest - ? AMMInfoResponse - : T extends GatewayBalancesRequest - ? GatewayBalancesResponse - : T extends GetAggregatePriceRequest - ? GetAggregatePriceResponse - : T extends NoRippleCheckRequest - ? NoRippleCheckResponse - : // NOTE: The order of these LedgerRequest types is important - // to get the proper type matching overrides based on parameters set - // in the request. For example LedgerRequestExpandedTransactionsBinary - // should match LedgerRequestExpandedTransactionsOnly, but not - // LedgerRequestExpandedAccountsOnly. This is because the - // LedgerRequestExpandedTransactionsBinary type is a superset of - // LedgerRequestExpandedTransactionsOnly, but not of the other. - // This is why LedgerRequestExpandedTransactionsBinary is listed - // first in the type list. - // - // Here is an example using real data: - // LedgerRequestExpandedTransactionsBinary = { - // command: 'ledger', - // ledger_index: 'validated', - // expand: true, - // transactions: true, - // binary: true, - // } - // LedgerRequestExpandedTransactionsOnly = { - // command: 'ledger', - // ledger_index: 'validated', - // expand: true, - // transactions: true, - // } - // LedgerRequestExpandedAccountsOnly = { - // command: 'ledger', - // ledger_index: 'validated', - // accounts: true, - // expand: true, - // } - // LedgerRequest = { - // command: 'ledger', - // ledger_index: 'validated', - // } - // - // The type with the most parameters set should be listed first. In this - // case LedgerRequestExpandedTransactionsBinary has the most parameters (`expand`, `transactions`, and `binary`) - // set, so it is listed first. When TypeScript tries to match the type of - // a request to a response, it will try to match the request type to the - // response type in the order they are listed. So, if we have a request - // with the following parameters: - // { - // command: 'ledger', - // ledger_index: 'validated', - // expand: true, - // transactions: true, - // binary: true, - // } - // TypeScript will first try to match the request type to - // LedgerRequestExpandedTransactionsBinary, which will succeed. It will - // then try to match the response type to LedgerResponseExpanded, which - // will also succeed. If we had listed LedgerRequestExpandedTransactionsOnly - // first, TypeScript would have tried to match the request type to - // LedgerRequestExpandedTransactionsOnly, which would have succeeded, but - // then we'd get the wrong response type, LedgerResponse, instead of - // LedgerResponseExpanded. - T extends LedgerRequestExpandedTransactionsBinary - ? LedgerVersionResponseMap - : T extends LedgerRequestExpandedAccountsAndTransactions - ? LedgerResponseExpanded - : T extends LedgerRequestExpandedTransactionsOnly - ? LedgerResponseExpanded - : T extends LedgerRequestExpandedAccountsOnly - ? LedgerResponseExpanded - : T extends LedgerRequest - ? LedgerVersionResponseMap - : T extends LedgerClosedRequest - ? LedgerClosedResponse - : T extends LedgerCurrentRequest - ? LedgerCurrentResponse - : T extends LedgerDataRequest - ? LedgerDataResponse - : T extends LedgerEntryBinaryRequest - ? LedgerEntryBinaryResponse - : T extends LedgerEntryJsonRequest - ? LedgerEntryJsonResponse - : T extends LedgerEntryRequest - ? LedgerEntryJsonResponse - : T extends SimulateBinaryRequest - ? SimulateBinaryResponse - : T extends SimulateJsonRequest - ? SimulateJsonResponse - : T extends SimulateRequest - ? SimulateJsonResponse - : T extends SubmitRequest - ? SubmitResponse - : T extends SubmitMultisignedRequest - ? SubmitMultisignedVersionResponseMap - : T extends TransactionEntryRequest - ? TransactionEntryResponse - : T extends TxRequest - ? TxVersionResponseMap - : T extends BookOffersRequest - ? BookOffersResponse - : T extends DepositAuthorizedRequest - ? DepositAuthorizedResponse - : T extends PathFindRequest - ? PathFindResponse - : T extends RipplePathFindRequest - ? RipplePathFindResponse - : T extends ChannelVerifyRequest - ? ChannelVerifyResponse - : T extends SubscribeRequest - ? SubscribeResponse - : T extends UnsubscribeRequest - ? UnsubscribeResponse - : T extends FeeRequest - ? FeeResponse - : T extends ManifestRequest - ? ManifestResponse - : T extends ServerInfoRequest - ? ServerInfoResponse - : T extends ServerStateRequest - ? ServerStateResponse - : T extends ServerDefinitionsRequest - ? ServerDefinitionsResponse - : T extends FeatureAllRequest - ? FeatureAllResponse - : T extends FeatureOneRequest - ? FeatureOneResponse - : T extends PingRequest - ? PingResponse - : T extends RandomRequest - ? RandomResponse - : T extends NFTBuyOffersRequest - ? NFTBuyOffersResponse - : T extends NFTSellOffersRequest - ? NFTSellOffersResponse - : T extends NFTInfoRequest - ? NFTInfoResponse - : T extends NFTsByIssuerRequest - ? NFTsByIssuerResponse - : T extends NFTHistoryRequest - ? NFTHistoryResponse - : T extends VaultInfoRequest - ? VaultInfoResponse - : Response + ? AccountCurrenciesResponse + : T extends AccountInfoRequest + ? AccountInfoVersionResponseMap + : T extends AccountLinesRequest + ? AccountLinesResponse + : T extends AccountNFTsRequest + ? AccountNFTsResponse + : T extends AccountObjectsRequest + ? AccountObjectsResponse + : T extends AccountOffersRequest + ? AccountOffersResponse + : T extends AccountTxRequest + ? AccountTxVersionResponseMap + : T extends AMMInfoRequest + ? AMMInfoResponse + : T extends GatewayBalancesRequest + ? GatewayBalancesResponse + : T extends GetAggregatePriceRequest + ? GetAggregatePriceResponse + : T extends NoRippleCheckRequest + ? NoRippleCheckResponse + : // NOTE: The order of these LedgerRequest types is important + // to get the proper type matching overrides based on parameters set + // in the request. For example LedgerRequestExpandedTransactionsBinary + // should match LedgerRequestExpandedTransactionsOnly, but not + // LedgerRequestExpandedAccountsOnly. This is because the + // LedgerRequestExpandedTransactionsBinary type is a superset of + // LedgerRequestExpandedTransactionsOnly, but not of the other. + // This is why LedgerRequestExpandedTransactionsBinary is listed + // first in the type list. + // + // Here is an example using real data: + // LedgerRequestExpandedTransactionsBinary = { + // command: 'ledger', + // ledger_index: 'validated', + // expand: true, + // transactions: true, + // binary: true, + // } + // LedgerRequestExpandedTransactionsOnly = { + // command: 'ledger', + // ledger_index: 'validated', + // expand: true, + // transactions: true, + // } + // LedgerRequestExpandedAccountsOnly = { + // command: 'ledger', + // ledger_index: 'validated', + // accounts: true, + // expand: true, + // } + // LedgerRequest = { + // command: 'ledger', + // ledger_index: 'validated', + // } + // + // The type with the most parameters set should be listed first. In this + // case LedgerRequestExpandedTransactionsBinary has the most parameters (`expand`, `transactions`, and `binary`) + // set, so it is listed first. When TypeScript tries to match the type of + // a request to a response, it will try to match the request type to the + // response type in the order they are listed. So, if we have a request + // with the following parameters: + // { + // command: 'ledger', + // ledger_index: 'validated', + // expand: true, + // transactions: true, + // binary: true, + // } + // TypeScript will first try to match the request type to + // LedgerRequestExpandedTransactionsBinary, which will succeed. It will + // then try to match the response type to LedgerResponseExpanded, which + // will also succeed. If we had listed LedgerRequestExpandedTransactionsOnly + // first, TypeScript would have tried to match the request type to + // LedgerRequestExpandedTransactionsOnly, which would have succeeded, but + // then we'd get the wrong response type, LedgerResponse, instead of + // LedgerResponseExpanded. + T extends LedgerRequestExpandedTransactionsBinary + ? LedgerVersionResponseMap + : T extends LedgerRequestExpandedAccountsAndTransactions + ? LedgerResponseExpanded + : T extends LedgerRequestExpandedTransactionsOnly + ? LedgerResponseExpanded + : T extends LedgerRequestExpandedAccountsOnly + ? LedgerResponseExpanded + : T extends LedgerRequest + ? LedgerVersionResponseMap + : T extends LedgerClosedRequest + ? LedgerClosedResponse + : T extends LedgerCurrentRequest + ? LedgerCurrentResponse + : T extends LedgerDataRequest + ? LedgerDataResponse + : T extends LedgerEntryBinaryRequest + ? LedgerEntryBinaryResponse + : T extends LedgerEntryJsonRequest + ? LedgerEntryJsonResponse + : T extends LedgerEntryRequest + ? LedgerEntryJsonResponse + : T extends SimulateBinaryRequest + ? SimulateBinaryResponse + : T extends SimulateJsonRequest + ? SimulateJsonResponse + : T extends SimulateRequest + ? SimulateJsonResponse + : T extends SubmitRequest + ? SubmitResponse + : T extends SubmitMultisignedRequest + ? SubmitMultisignedVersionResponseMap + : T extends TransactionEntryRequest + ? TransactionEntryResponse + : T extends TxRequest + ? TxVersionResponseMap + : T extends BookOffersRequest + ? BookOffersResponse + : T extends DepositAuthorizedRequest + ? DepositAuthorizedResponse + : T extends PathFindRequest + ? PathFindResponse + : T extends RipplePathFindRequest + ? RipplePathFindResponse + : T extends ChannelVerifyRequest + ? ChannelVerifyResponse + : T extends SubscribeRequest + ? SubscribeResponse + : T extends UnsubscribeRequest + ? UnsubscribeResponse + : T extends FeeRequest + ? FeeResponse + : T extends ManifestRequest + ? ManifestResponse + : T extends ServerInfoRequest + ? ServerInfoResponse + : T extends ServerStateRequest + ? ServerStateResponse + : T extends ServerDefinitionsRequest + ? ServerDefinitionsResponse + : T extends FeatureAllRequest + ? FeatureAllResponse + : T extends FeatureOneRequest + ? FeatureOneResponse + : T extends PingRequest + ? PingResponse + : T extends RandomRequest + ? RandomResponse + : T extends NFTBuyOffersRequest + ? NFTBuyOffersResponse + : T extends NFTSellOffersRequest + ? NFTSellOffersResponse + : T extends NFTInfoRequest + ? NFTInfoResponse + : T extends NFTsByIssuerRequest + ? NFTsByIssuerResponse + : T extends NFTHistoryRequest + ? NFTHistoryResponse + : T extends VaultInfoRequest + ? VaultInfoResponse + : Response export type MarkerRequest = Request & { limit?: number @@ -504,18 +504,18 @@ export type RequestAllResponseMap< > = T extends AccountChannelsRequest ? AccountChannelsResponse : T extends AccountLinesRequest - ? AccountLinesResponse - : T extends AccountObjectsRequest - ? AccountObjectsResponse - : T extends AccountOffersRequest - ? AccountOffersResponse - : T extends AccountTxRequest - ? AccountTxVersionResponseMap - : T extends LedgerDataRequest - ? LedgerDataResponse - : T extends BookOffersRequest - ? BookOffersResponse - : MarkerResponse + ? AccountLinesResponse + : T extends AccountObjectsRequest + ? AccountObjectsResponse + : T extends AccountOffersRequest + ? AccountOffersResponse + : T extends AccountTxRequest + ? AccountTxVersionResponseMap + : T extends LedgerDataRequest + ? LedgerDataResponse + : T extends BookOffersRequest + ? BookOffersResponse + : MarkerResponse export { // Allow users to define their own requests and responses. This is useful for releasing experimental versions diff --git a/packages/xrpl/src/models/methods/ledger.ts b/packages/xrpl/src/models/methods/ledger.ts index bc04e5f38e..150ed92330 100644 --- a/packages/xrpl/src/models/methods/ledger.ts +++ b/packages/xrpl/src/models/methods/ledger.ts @@ -145,8 +145,7 @@ export interface LedgerRequestExpandedAccountsOnly extends LedgerRequest { * @category Requests */ -export interface LedgerRequestExpandedAccountsAndTransactions - extends LedgerRequest { +export interface LedgerRequestExpandedAccountsAndTransactions extends LedgerRequest { expand: true accounts: true transactions: true @@ -203,14 +202,18 @@ export interface LedgerQueueData { max_spend_drops?: string } -export interface LedgerBinary - extends Omit { +export interface LedgerBinary extends Omit< + Ledger, + 'transactions' | 'accountState' +> { accountState?: string[] transactions?: string[] } -export interface LedgerBinaryV1 - extends Omit { +export interface LedgerBinaryV1 extends Omit< + LedgerV1, + 'transactions' | 'accountState' +> { accountState?: string[] transactions?: string[] } diff --git a/packages/xrpl/src/models/transactions/MPTokenIssuanceCreate.ts b/packages/xrpl/src/models/transactions/MPTokenIssuanceCreate.ts index b2e5d869f8..6a999973e8 100644 --- a/packages/xrpl/src/models/transactions/MPTokenIssuanceCreate.ts +++ b/packages/xrpl/src/models/transactions/MPTokenIssuanceCreate.ts @@ -64,8 +64,7 @@ export enum MPTokenIssuanceCreateFlags { * @category Transaction Flags */ -export interface MPTokenIssuanceCreateFlagsInterface - extends GlobalFlagsInterface { +export interface MPTokenIssuanceCreateFlagsInterface extends GlobalFlagsInterface { tfMPTCanLock?: boolean tfMPTRequireAuth?: boolean tfMPTCanEscrow?: boolean diff --git a/packages/xrpl/src/models/transactions/paymentChannelClaim.ts b/packages/xrpl/src/models/transactions/paymentChannelClaim.ts index e5b3520710..d4a32316d3 100644 --- a/packages/xrpl/src/models/transactions/paymentChannelClaim.ts +++ b/packages/xrpl/src/models/transactions/paymentChannelClaim.ts @@ -74,8 +74,7 @@ export enum PaymentChannelClaimFlags { * ``` */ -export interface PaymentChannelClaimFlagsInterface - extends GlobalFlagsInterface { +export interface PaymentChannelClaimFlagsInterface extends GlobalFlagsInterface { /** * Clear the channel's Expiration time. (Expiration is different from the * channel's immutable CancelAfter time.) Only the source address of the From cda152cb5ae9bc8254eba9076f2f2fd697137ae7 Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 7 May 2026 16:28:21 -0400 Subject: [PATCH 21/22] fix linting issues --- packages/xrpl/src/models/methods/index.ts | 2 +- packages/xrpl/src/models/methods/ledger.ts | 1 + .../xrpl/src/models/transactions/MPTokenIssuanceCreate.ts | 5 +++-- packages/xrpl/src/models/transactions/paymentChannelClaim.ts | 1 + 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/xrpl/src/models/methods/index.ts b/packages/xrpl/src/models/methods/index.ts index d467300785..127b67dc75 100644 --- a/packages/xrpl/src/models/methods/index.ts +++ b/packages/xrpl/src/models/methods/index.ts @@ -1,6 +1,6 @@ /* eslint-disable no-inline-comments -- Necessary for important note */ +/* eslint-disable max-len -- Conditional type indentation is deeply nested */ /* eslint-disable max-lines -- There is a lot to export */ -/* eslint-disable prettier/prettier -- Required here to keep formatting in line */ import type { APIVersion, DEFAULT_API_VERSION } from '../common' import { diff --git a/packages/xrpl/src/models/methods/ledger.ts b/packages/xrpl/src/models/methods/ledger.ts index 150ed92330..90f65b90e0 100644 --- a/packages/xrpl/src/models/methods/ledger.ts +++ b/packages/xrpl/src/models/methods/ledger.ts @@ -145,6 +145,7 @@ export interface LedgerRequestExpandedAccountsOnly extends LedgerRequest { * @category Requests */ +// eslint-disable-next-line max-len -- Interface name is descriptive and intentionally long export interface LedgerRequestExpandedAccountsAndTransactions extends LedgerRequest { expand: true accounts: true diff --git a/packages/xrpl/src/models/transactions/MPTokenIssuanceCreate.ts b/packages/xrpl/src/models/transactions/MPTokenIssuanceCreate.ts index 6a999973e8..d6d2e3762c 100644 --- a/packages/xrpl/src/models/transactions/MPTokenIssuanceCreate.ts +++ b/packages/xrpl/src/models/transactions/MPTokenIssuanceCreate.ts @@ -58,12 +58,13 @@ export enum MPTokenIssuanceCreateFlags { } /** - * Map of flags to boolean values representing {@link MPTokenIssuanceCreate} transaction - * flags. + * Map of flags to boolean values representing {@link MPTokenIssuanceCreate} + * transaction flags. * * @category Transaction Flags */ +// eslint-disable-next-line max-len -- Interface name is descriptive and intentionally long export interface MPTokenIssuanceCreateFlagsInterface extends GlobalFlagsInterface { tfMPTCanLock?: boolean tfMPTRequireAuth?: boolean diff --git a/packages/xrpl/src/models/transactions/paymentChannelClaim.ts b/packages/xrpl/src/models/transactions/paymentChannelClaim.ts index d4a32316d3..e77280385e 100644 --- a/packages/xrpl/src/models/transactions/paymentChannelClaim.ts +++ b/packages/xrpl/src/models/transactions/paymentChannelClaim.ts @@ -74,6 +74,7 @@ export enum PaymentChannelClaimFlags { * ``` */ +// eslint-disable-next-line max-len -- Interface name is descriptive and intentionally long export interface PaymentChannelClaimFlagsInterface extends GlobalFlagsInterface { /** * Clear the channel's Expiration time. (Expiration is different from the From b3bbe57b7c08971e8b5b9216370687437aebd65e Mon Sep 17 00:00:00 2001 From: Mayukha Vadari Date: Thu, 7 May 2026 17:10:27 -0400 Subject: [PATCH 22/22] prep for release --- package-lock.json | 6 +++--- packages/ripple-binary-codec/package.json | 2 +- packages/xrpl/package.json | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 00fca07b24..6e0345b1c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19120,7 +19120,7 @@ } }, "packages/ripple-binary-codec": { - "version": "2.7.0", + "version": "2.8.0-smartcontract.0", "license": "ISC", "dependencies": { "@xrplf/isomorphic": "^1.0.1", @@ -19153,7 +19153,7 @@ } }, "packages/xrpl": { - "version": "4.6.0", + "version": "4.7.0-smartcontract.0", "license": "ISC", "dependencies": { "@scure/bip32": "^2.0.1", @@ -19164,7 +19164,7 @@ "eventemitter3": "^5.0.1", "fast-json-stable-stringify": "^2.1.0", "ripple-address-codec": "^5.0.0", - "ripple-binary-codec": "^2.7.0", + "ripple-binary-codec": "^2.8.0-smartcontract.0", "ripple-keypairs": "^2.0.0" }, "devDependencies": { diff --git a/packages/ripple-binary-codec/package.json b/packages/ripple-binary-codec/package.json index 75ceedd86f..125f9c13e7 100644 --- a/packages/ripple-binary-codec/package.json +++ b/packages/ripple-binary-codec/package.json @@ -1,6 +1,6 @@ { "name": "ripple-binary-codec", - "version": "2.7.0", + "version": "2.8.0-smartcontract.0", "description": "XRP Ledger binary codec", "files": [ "dist/*", diff --git a/packages/xrpl/package.json b/packages/xrpl/package.json index ee49748175..477f7d8adb 100644 --- a/packages/xrpl/package.json +++ b/packages/xrpl/package.json @@ -1,6 +1,6 @@ { "name": "xrpl", - "version": "4.6.0", + "version": "4.7.0-smartcontract.0", "license": "ISC", "description": "A TypeScript/JavaScript API for interacting with the XRP Ledger in Node.js and the browser", "files": [ @@ -30,7 +30,7 @@ "eventemitter3": "^5.0.1", "fast-json-stable-stringify": "^2.1.0", "ripple-address-codec": "^5.0.0", - "ripple-binary-codec": "^2.7.0", + "ripple-binary-codec": "^2.8.0-smartcontract.0", "ripple-keypairs": "^2.0.0" }, "devDependencies": {