diff --git a/.changeset/dull-walls-notice.md b/.changeset/dull-walls-notice.md new file mode 100644 index 000000000..74effd3c4 --- /dev/null +++ b/.changeset/dull-walls-notice.md @@ -0,0 +1,8 @@ +--- +'@lit-protocol/contracts': minor +'@lit-protocol/networks': minor +'@lit-protocol/wasm': minor +'@lit-protocol/e2e': minor +--- + +Naga-local consumers can now point at a local networkContext.json with a lightweight withLocalContext call (or by setting NAGA_LOCAL_CONTEXT_PATH) while the default bundled signatures keep working as before. diff --git a/docs/sdk/getting-started/payment-manager-setup.mdx b/docs/sdk/getting-started/payment-manager-setup.mdx index 45af5959e..75478e7e6 100644 --- a/docs/sdk/getting-started/payment-manager-setup.mdx +++ b/docs/sdk/getting-started/payment-manager-setup.mdx @@ -102,7 +102,7 @@ console.log(`Deposit successful: ${result.hash}`); -## Sponsoring Your Users +## Payment Delegation / Sponsoring Your Users @@ -136,7 +136,19 @@ await paymentManager.delegatePaymentsBatch({ ``` + + + + + Optionally inspect Payer/Sponsor Ledger balance + + ```ts + const balance = await paymentManager.getBalance({ + userAddress: viemAccount.address, + }); + ``` + diff --git a/jest.e2e.config.ts b/jest.e2e.config.ts index 350152ce8..bf7740f02 100644 --- a/jest.e2e.config.ts +++ b/jest.e2e.config.ts @@ -15,6 +15,7 @@ const localPackages = [ 'schemas', 'types', 'wasm', + 'e2e', 'wrapped-keys', 'wrapped-keys-lit-actions', ]; diff --git a/packages/contracts/dist/custom-network-signatures.cjs b/packages/contracts/dist/custom-network-signatures.cjs new file mode 100644 index 000000000..b89fd3599 --- /dev/null +++ b/packages/contracts/dist/custom-network-signatures.cjs @@ -0,0 +1,5266 @@ +const __import_meta__ = { url: require('url').pathToFileURL(__filename).href }; +"use strict"; +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key) && key !== except) + __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); + +// packages/contracts/src/custom-network-signatures.ts +var custom_network_signatures_exports = {}; +__export(custom_network_signatures_exports, { + buildSignaturesFromContext: () => buildSignaturesFromContext, + generateSignaturesFromContext: () => generateSignaturesFromContext +}); +module.exports = __toCommonJS(custom_network_signatures_exports); +var fs = __toESM(require("fs"), 1); +var import_path = __toESM(require("path"), 1); +var import_url = require("url"); + +// packages/contracts/src/config/methods.ts +var METHODS_TO_EXTRACT = [ + // Permissions Read: + "PKPPermissions.getPermittedActions", + "PKPPermissions.getPermittedAddresses", + "PKPPermissions.isPermittedAction", + "PKPPermissions.isPermittedAddress", + "PKPPermissions.getPermittedAuthMethods", + "PKPPermissions.getPermittedAuthMethodScopes", + // Permissions Write: + "PKPPermissions.addPermittedAction", + "PKPPermissions.addPermittedAddress", + "PKPPermissions.addPermittedAuthMethodScope", + "PKPPermissions.addPermittedAuthMethod", + "PKPPermissions.removePermittedAction", + "PKPPermissions.removePermittedAddress", + "PKPPermissions.removePermittedAuthMethod", + "PKPPermissions.removePermittedAuthMethodScope", + "PKPPermissions.getTokenIdsForAuthMethod", + // PKP Read: + "PKPNFT.tokenOfOwnerByIndex", + "PKPNFT.mintCost", + // PKP Write: + "PKPNFT.safeTransferFrom", + "PKPNFT.mintNext", + "PKPNFT.claimAndMint", + "PKPHelper.claimAndMintNextAndAddAuthMethodsWithTypes", + "PKPHelper.mintNextAndAddAuthMethods", + // Staking: + "Staking.getActiveUnkickedValidatorStructsAndCounts", + // PriceFeed: + "PriceFeed.getNodesForRequest", + "PubkeyRouter.deriveEthAddressFromPubkey", + "PubkeyRouter.ethAddressToPkpId", + "PubkeyRouter.getPubkey", + "PubkeyRouter.getEthAddress", + // Ledger: + "Ledger.deposit", + "Ledger.depositForUser", + "Ledger.balance", + "Ledger.stableBalance", + "Ledger.requestWithdraw", + "Ledger.latestWithdrawRequest", + "Ledger.userWithdrawDelay", + "Ledger.withdraw", + // Payment Delegation: + "PaymentDelegation.getPayersAndRestrictions", + "PaymentDelegation.getUsers", + "PaymentDelegation.getRestriction", + "PaymentDelegation.getPayers", + "PaymentDelegation.delegatePayments", + "PaymentDelegation.undelegatePayments", + "PaymentDelegation.delegatePaymentsBatch", + "PaymentDelegation.undelegatePaymentsBatch", + "PaymentDelegation.setRestriction" +]; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/_version.js +var version = "6.15.0"; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/utils/properties.js +function checkType(value, type, name) { + const types = type.split("|").map((t) => t.trim()); + for (let i = 0; i < types.length; i++) { + switch (type) { + case "any": + return; + case "bigint": + case "boolean": + case "number": + case "string": + if (typeof value === type) { + return; + } + } + } + const error = new Error(`invalid value for type ${type}`); + error.code = "INVALID_ARGUMENT"; + error.argument = `value.${name}`; + error.value = value; + throw error; +} +function defineProperties(target, values, types) { + for (let key in values) { + let value = values[key]; + const type = types ? types[key] : null; + if (type) { + checkType(value, type, key); + } + Object.defineProperty(target, key, { enumerable: true, value, writable: false }); + } +} + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/utils/errors.js +function stringify(value, seen) { + if (value == null) { + return "null"; + } + if (seen == null) { + seen = /* @__PURE__ */ new Set(); + } + if (typeof value === "object") { + if (seen.has(value)) { + return "[Circular]"; + } + seen.add(value); + } + if (Array.isArray(value)) { + return "[ " + value.map((v) => stringify(v, seen)).join(", ") + " ]"; + } + if (value instanceof Uint8Array) { + const HEX = "0123456789abcdef"; + let result = "0x"; + for (let i = 0; i < value.length; i++) { + result += HEX[value[i] >> 4]; + result += HEX[value[i] & 15]; + } + return result; + } + if (typeof value === "object" && typeof value.toJSON === "function") { + return stringify(value.toJSON(), seen); + } + switch (typeof value) { + case "boolean": + case "number": + case "symbol": + return value.toString(); + case "bigint": + return BigInt(value).toString(); + case "string": + return JSON.stringify(value); + case "object": { + const keys = Object.keys(value); + keys.sort(); + return "{ " + keys.map((k) => `${stringify(k, seen)}: ${stringify(value[k], seen)}`).join(", ") + " }"; + } + } + return `[ COULD NOT SERIALIZE ]`; +} +function isError(error, code) { + return error && error.code === code; +} +function makeError(message, code, info) { + let shortMessage = message; + { + const details = []; + if (info) { + if ("message" in info || "code" in info || "name" in info) { + throw new Error(`value will overwrite populated values: ${stringify(info)}`); + } + for (const key in info) { + if (key === "shortMessage") { + continue; + } + const value = info[key]; + details.push(key + "=" + stringify(value)); + } + } + details.push(`code=${code}`); + details.push(`version=${version}`); + if (details.length) { + message += " (" + details.join(", ") + ")"; + } + } + let error; + switch (code) { + case "INVALID_ARGUMENT": + error = new TypeError(message); + break; + case "NUMERIC_FAULT": + case "BUFFER_OVERRUN": + error = new RangeError(message); + break; + default: + error = new Error(message); + } + defineProperties(error, { code }); + if (info) { + Object.assign(error, info); + } + if (error.shortMessage == null) { + defineProperties(error, { shortMessage }); + } + return error; +} +function assert(check, message, code, info) { + if (!check) { + throw makeError(message, code, info); + } +} +function assertArgument(check, message, name, value) { + assert(check, message, "INVALID_ARGUMENT", { argument: name, value }); +} +function assertArgumentCount(count, expectedCount, message) { + if (message == null) { + message = ""; + } + if (message) { + message = ": " + message; + } + assert(count >= expectedCount, "missing argument" + message, "MISSING_ARGUMENT", { + count, + expectedCount + }); + assert(count <= expectedCount, "too many arguments" + message, "UNEXPECTED_ARGUMENT", { + count, + expectedCount + }); +} +var _normalizeForms = ["NFD", "NFC", "NFKD", "NFKC"].reduce((accum, form) => { + try { + if ("test".normalize(form) !== "test") { + throw new Error("bad"); + } + ; + if (form === "NFD") { + const check = String.fromCharCode(233).normalize("NFD"); + const expected = String.fromCharCode(101, 769); + if (check !== expected) { + throw new Error("broken"); + } + } + accum.push(form); + } catch (error) { + } + return accum; +}, []); +function assertNormalize(form) { + assert(_normalizeForms.indexOf(form) >= 0, "platform missing String.prototype.normalize", "UNSUPPORTED_OPERATION", { + operation: "String.prototype.normalize", + info: { form } + }); +} +function assertPrivate(givenGuard, guard, className) { + if (className == null) { + className = ""; + } + if (givenGuard !== guard) { + let method = className, operation = "new"; + if (className) { + method += "."; + operation += " " + className; + } + assert(false, `private constructor; use ${method}from* methods`, "UNSUPPORTED_OPERATION", { + operation + }); + } +} + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/utils/data.js +function _getBytes(value, name, copy) { + if (value instanceof Uint8Array) { + if (copy) { + return new Uint8Array(value); + } + return value; + } + if (typeof value === "string" && value.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)) { + const result = new Uint8Array((value.length - 2) / 2); + let offset = 2; + for (let i = 0; i < result.length; i++) { + result[i] = parseInt(value.substring(offset, offset + 2), 16); + offset += 2; + } + return result; + } + assertArgument(false, "invalid BytesLike value", name || "value", value); +} +function getBytes(value, name) { + return _getBytes(value, name, false); +} +function getBytesCopy(value, name) { + return _getBytes(value, name, true); +} +function isHexString(value, length) { + if (typeof value !== "string" || !value.match(/^0x[0-9A-Fa-f]*$/)) { + return false; + } + if (typeof length === "number" && value.length !== 2 + 2 * length) { + return false; + } + if (length === true && value.length % 2 !== 0) { + return false; + } + return true; +} +var HexCharacters = "0123456789abcdef"; +function hexlify(data) { + const bytes2 = getBytes(data); + let result = "0x"; + for (let i = 0; i < bytes2.length; i++) { + const v = bytes2[i]; + result += HexCharacters[(v & 240) >> 4] + HexCharacters[v & 15]; + } + return result; +} +function concat(datas) { + return "0x" + datas.map((d) => hexlify(d).substring(2)).join(""); +} +function dataSlice(data, start, end) { + const bytes2 = getBytes(data); + if (end != null && end > bytes2.length) { + assert(false, "cannot slice beyond data bounds", "BUFFER_OVERRUN", { + buffer: bytes2, + length: bytes2.length, + offset: end + }); + } + return hexlify(bytes2.slice(start == null ? 0 : start, end == null ? bytes2.length : end)); +} +function zeroPad(data, length, left) { + const bytes2 = getBytes(data); + assert(length >= bytes2.length, "padding exceeds data length", "BUFFER_OVERRUN", { + buffer: new Uint8Array(bytes2), + length, + offset: length + 1 + }); + const result = new Uint8Array(length); + result.fill(0); + if (left) { + result.set(bytes2, length - bytes2.length); + } else { + result.set(bytes2, 0); + } + return hexlify(result); +} +function zeroPadValue(data, length) { + return zeroPad(data, length, true); +} +function zeroPadBytes(data, length) { + return zeroPad(data, length, false); +} + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/utils/maths.js +var BN_0 = BigInt(0); +var BN_1 = BigInt(1); +var maxValue = 9007199254740991; +function fromTwos(_value, _width) { + const value = getUint(_value, "value"); + const width = BigInt(getNumber(_width, "width")); + assert(value >> width === BN_0, "overflow", "NUMERIC_FAULT", { + operation: "fromTwos", + fault: "overflow", + value: _value + }); + if (value >> width - BN_1) { + const mask2 = (BN_1 << width) - BN_1; + return -((~value & mask2) + BN_1); + } + return value; +} +function toTwos(_value, _width) { + let value = getBigInt(_value, "value"); + const width = BigInt(getNumber(_width, "width")); + const limit = BN_1 << width - BN_1; + if (value < BN_0) { + value = -value; + assert(value <= limit, "too low", "NUMERIC_FAULT", { + operation: "toTwos", + fault: "overflow", + value: _value + }); + const mask2 = (BN_1 << width) - BN_1; + return (~value & mask2) + BN_1; + } else { + assert(value < limit, "too high", "NUMERIC_FAULT", { + operation: "toTwos", + fault: "overflow", + value: _value + }); + } + return value; +} +function mask(_value, _bits) { + const value = getUint(_value, "value"); + const bits = BigInt(getNumber(_bits, "bits")); + return value & (BN_1 << bits) - BN_1; +} +function getBigInt(value, name) { + switch (typeof value) { + case "bigint": + return value; + case "number": + assertArgument(Number.isInteger(value), "underflow", name || "value", value); + assertArgument(value >= -maxValue && value <= maxValue, "overflow", name || "value", value); + return BigInt(value); + case "string": + try { + if (value === "") { + throw new Error("empty string"); + } + if (value[0] === "-" && value[1] !== "-") { + return -BigInt(value.substring(1)); + } + return BigInt(value); + } catch (e) { + assertArgument(false, `invalid BigNumberish string: ${e.message}`, name || "value", value); + } + } + assertArgument(false, "invalid BigNumberish value", name || "value", value); +} +function getUint(value, name) { + const result = getBigInt(value, name); + assert(result >= BN_0, "unsigned value cannot be negative", "NUMERIC_FAULT", { + fault: "overflow", + operation: "getUint", + value + }); + return result; +} +var Nibbles = "0123456789abcdef"; +function toBigInt(value) { + if (value instanceof Uint8Array) { + let result = "0x0"; + for (const v of value) { + result += Nibbles[v >> 4]; + result += Nibbles[v & 15]; + } + return BigInt(result); + } + return getBigInt(value); +} +function getNumber(value, name) { + switch (typeof value) { + case "bigint": + assertArgument(value >= -maxValue && value <= maxValue, "overflow", name || "value", value); + return Number(value); + case "number": + assertArgument(Number.isInteger(value), "underflow", name || "value", value); + assertArgument(value >= -maxValue && value <= maxValue, "overflow", name || "value", value); + return value; + case "string": + try { + if (value === "") { + throw new Error("empty string"); + } + return getNumber(BigInt(value), name); + } catch (e) { + assertArgument(false, `invalid numeric string: ${e.message}`, name || "value", value); + } + } + assertArgument(false, "invalid numeric value", name || "value", value); +} +function toNumber(value) { + return getNumber(toBigInt(value)); +} +function toBeHex(_value, _width) { + const value = getUint(_value, "value"); + let result = value.toString(16); + if (_width == null) { + if (result.length % 2) { + result = "0" + result; + } + } else { + const width = getNumber(_width, "width"); + assert(width * 2 >= result.length, `value exceeds width (${width} bytes)`, "NUMERIC_FAULT", { + operation: "toBeHex", + fault: "overflow", + value: _value + }); + while (result.length < width * 2) { + result = "0" + result; + } + } + return "0x" + result; +} +function toBeArray(_value) { + const value = getUint(_value, "value"); + if (value === BN_0) { + return new Uint8Array([]); + } + let hex = value.toString(16); + if (hex.length % 2) { + hex = "0" + hex; + } + const result = new Uint8Array(hex.length / 2); + for (let i = 0; i < result.length; i++) { + const offset = i * 2; + result[i] = parseInt(hex.substring(offset, offset + 2), 16); + } + return result; +} + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/utils/utf8.js +function errorFunc(reason, offset, bytes2, output2, badCodepoint) { + assertArgument(false, `invalid codepoint at offset ${offset}; ${reason}`, "bytes", bytes2); +} +function ignoreFunc(reason, offset, bytes2, output2, badCodepoint) { + if (reason === "BAD_PREFIX" || reason === "UNEXPECTED_CONTINUE") { + let i = 0; + for (let o = offset + 1; o < bytes2.length; o++) { + if (bytes2[o] >> 6 !== 2) { + break; + } + i++; + } + return i; + } + if (reason === "OVERRUN") { + return bytes2.length - offset - 1; + } + return 0; +} +function replaceFunc(reason, offset, bytes2, output2, badCodepoint) { + if (reason === "OVERLONG") { + assertArgument(typeof badCodepoint === "number", "invalid bad code point for replacement", "badCodepoint", badCodepoint); + output2.push(badCodepoint); + return 0; + } + output2.push(65533); + return ignoreFunc(reason, offset, bytes2, output2, badCodepoint); +} +var Utf8ErrorFuncs = Object.freeze({ + error: errorFunc, + ignore: ignoreFunc, + replace: replaceFunc +}); +function getUtf8CodePoints(_bytes, onError) { + if (onError == null) { + onError = Utf8ErrorFuncs.error; + } + const bytes2 = getBytes(_bytes, "bytes"); + const result = []; + let i = 0; + while (i < bytes2.length) { + const c = bytes2[i++]; + if (c >> 7 === 0) { + result.push(c); + continue; + } + let extraLength = null; + let overlongMask = null; + if ((c & 224) === 192) { + extraLength = 1; + overlongMask = 127; + } else if ((c & 240) === 224) { + extraLength = 2; + overlongMask = 2047; + } else if ((c & 248) === 240) { + extraLength = 3; + overlongMask = 65535; + } else { + if ((c & 192) === 128) { + i += onError("UNEXPECTED_CONTINUE", i - 1, bytes2, result); + } else { + i += onError("BAD_PREFIX", i - 1, bytes2, result); + } + continue; + } + if (i - 1 + extraLength >= bytes2.length) { + i += onError("OVERRUN", i - 1, bytes2, result); + continue; + } + let res = c & (1 << 8 - extraLength - 1) - 1; + for (let j = 0; j < extraLength; j++) { + let nextChar = bytes2[i]; + if ((nextChar & 192) != 128) { + i += onError("MISSING_CONTINUE", i, bytes2, result); + res = null; + break; + } + ; + res = res << 6 | nextChar & 63; + i++; + } + if (res === null) { + continue; + } + if (res > 1114111) { + i += onError("OUT_OF_RANGE", i - 1 - extraLength, bytes2, result, res); + continue; + } + if (res >= 55296 && res <= 57343) { + i += onError("UTF16_SURROGATE", i - 1 - extraLength, bytes2, result, res); + continue; + } + if (res <= overlongMask) { + i += onError("OVERLONG", i - 1 - extraLength, bytes2, result, res); + continue; + } + result.push(res); + } + return result; +} +function toUtf8Bytes(str, form) { + assertArgument(typeof str === "string", "invalid string value", "str", str); + if (form != null) { + assertNormalize(form); + str = str.normalize(form); + } + let result = []; + for (let i = 0; i < str.length; i++) { + const c = str.charCodeAt(i); + if (c < 128) { + result.push(c); + } else if (c < 2048) { + result.push(c >> 6 | 192); + result.push(c & 63 | 128); + } else if ((c & 64512) == 55296) { + i++; + const c2 = str.charCodeAt(i); + assertArgument(i < str.length && (c2 & 64512) === 56320, "invalid surrogate pair", "str", str); + const pair = 65536 + ((c & 1023) << 10) + (c2 & 1023); + result.push(pair >> 18 | 240); + result.push(pair >> 12 & 63 | 128); + result.push(pair >> 6 & 63 | 128); + result.push(pair & 63 | 128); + } else { + result.push(c >> 12 | 224); + result.push(c >> 6 & 63 | 128); + result.push(c & 63 | 128); + } + } + return new Uint8Array(result); +} +function _toUtf8String(codePoints) { + return codePoints.map((codePoint) => { + if (codePoint <= 65535) { + return String.fromCharCode(codePoint); + } + codePoint -= 65536; + return String.fromCharCode((codePoint >> 10 & 1023) + 55296, (codePoint & 1023) + 56320); + }).join(""); +} +function toUtf8String(bytes2, onError) { + return _toUtf8String(getUtf8CodePoints(bytes2, onError)); +} + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/abstract-coder.js +var WordSize = 32; +var Padding = new Uint8Array(WordSize); +var passProperties = ["then"]; +var _guard = {}; +var resultNames = /* @__PURE__ */ new WeakMap(); +function getNames(result) { + return resultNames.get(result); +} +function setNames(result, names) { + resultNames.set(result, names); +} +function throwError(name, error) { + const wrapped = new Error(`deferred error during ABI decoding triggered accessing ${name}`); + wrapped.error = error; + throw wrapped; +} +function toObject(names, items, deep) { + if (names.indexOf(null) >= 0) { + return items.map((item, index) => { + if (item instanceof Result) { + return toObject(getNames(item), item, deep); + } + return item; + }); + } + return names.reduce((accum, name, index) => { + let item = items.getValue(name); + if (!(name in accum)) { + if (deep && item instanceof Result) { + item = toObject(getNames(item), item, deep); + } + accum[name] = item; + } + return accum; + }, {}); +} +var Result = class _Result extends Array { + // No longer used; but cannot be removed as it will remove the + // #private field from the .d.ts which may break backwards + // compatibility + #names; + /** + * @private + */ + constructor(...args) { + const guard = args[0]; + let items = args[1]; + let names = (args[2] || []).slice(); + let wrap = true; + if (guard !== _guard) { + items = args; + names = []; + wrap = false; + } + super(items.length); + items.forEach((item, index) => { + this[index] = item; + }); + const nameCounts = names.reduce((accum, name) => { + if (typeof name === "string") { + accum.set(name, (accum.get(name) || 0) + 1); + } + return accum; + }, /* @__PURE__ */ new Map()); + setNames(this, Object.freeze(items.map((item, index) => { + const name = names[index]; + if (name != null && nameCounts.get(name) === 1) { + return name; + } + return null; + }))); + this.#names = []; + if (this.#names == null) { + void this.#names; + } + if (!wrap) { + return; + } + Object.freeze(this); + const proxy = new Proxy(this, { + get: (target, prop, receiver) => { + if (typeof prop === "string") { + if (prop.match(/^[0-9]+$/)) { + const index = getNumber(prop, "%index"); + if (index < 0 || index >= this.length) { + throw new RangeError("out of result range"); + } + const item = target[index]; + if (item instanceof Error) { + throwError(`index ${index}`, item); + } + return item; + } + if (passProperties.indexOf(prop) >= 0) { + return Reflect.get(target, prop, receiver); + } + const value = target[prop]; + if (value instanceof Function) { + return function(...args2) { + return value.apply(this === receiver ? target : this, args2); + }; + } else if (!(prop in target)) { + return target.getValue.apply(this === receiver ? target : this, [prop]); + } + } + return Reflect.get(target, prop, receiver); + } + }); + setNames(proxy, getNames(this)); + return proxy; + } + /** + * Returns the Result as a normal Array. If %%deep%%, any children + * which are Result objects are also converted to a normal Array. + * + * This will throw if there are any outstanding deferred + * errors. + */ + toArray(deep) { + const result = []; + this.forEach((item, index) => { + if (item instanceof Error) { + throwError(`index ${index}`, item); + } + if (deep && item instanceof _Result) { + item = item.toArray(deep); + } + result.push(item); + }); + return result; + } + /** + * Returns the Result as an Object with each name-value pair. If + * %%deep%%, any children which are Result objects are also + * converted to an Object. + * + * This will throw if any value is unnamed, or if there are + * any outstanding deferred errors. + */ + toObject(deep) { + const names = getNames(this); + return names.reduce((accum, name, index) => { + assert(name != null, `value at index ${index} unnamed`, "UNSUPPORTED_OPERATION", { + operation: "toObject()" + }); + return toObject(names, this, deep); + }, {}); + } + /** + * @_ignore + */ + slice(start, end) { + if (start == null) { + start = 0; + } + if (start < 0) { + start += this.length; + if (start < 0) { + start = 0; + } + } + if (end == null) { + end = this.length; + } + if (end < 0) { + end += this.length; + if (end < 0) { + end = 0; + } + } + if (end > this.length) { + end = this.length; + } + const _names = getNames(this); + const result = [], names = []; + for (let i = start; i < end; i++) { + result.push(this[i]); + names.push(_names[i]); + } + return new _Result(_guard, result, names); + } + /** + * @_ignore + */ + filter(callback, thisArg) { + const _names = getNames(this); + const result = [], names = []; + for (let i = 0; i < this.length; i++) { + const item = this[i]; + if (item instanceof Error) { + throwError(`index ${i}`, item); + } + if (callback.call(thisArg, item, i, this)) { + result.push(item); + names.push(_names[i]); + } + } + return new _Result(_guard, result, names); + } + /** + * @_ignore + */ + map(callback, thisArg) { + const result = []; + for (let i = 0; i < this.length; i++) { + const item = this[i]; + if (item instanceof Error) { + throwError(`index ${i}`, item); + } + result.push(callback.call(thisArg, item, i, this)); + } + return result; + } + /** + * Returns the value for %%name%%. + * + * Since it is possible to have a key whose name conflicts with + * a method on a [[Result]] or its superclass Array, or any + * JavaScript keyword, this ensures all named values are still + * accessible by name. + */ + getValue(name) { + const index = getNames(this).indexOf(name); + if (index === -1) { + return void 0; + } + const value = this[index]; + if (value instanceof Error) { + throwError(`property ${JSON.stringify(name)}`, value.error); + } + return value; + } + /** + * Creates a new [[Result]] for %%items%% with each entry + * also accessible by its corresponding name in %%keys%%. + */ + static fromItems(items, keys) { + return new _Result(_guard, items, keys); + } +}; +function getValue(value) { + let bytes2 = toBeArray(value); + assert(bytes2.length <= WordSize, "value out-of-bounds", "BUFFER_OVERRUN", { buffer: bytes2, length: WordSize, offset: bytes2.length }); + if (bytes2.length !== WordSize) { + bytes2 = getBytesCopy(concat([Padding.slice(bytes2.length % WordSize), bytes2])); + } + return bytes2; +} +var Coder = class { + // The coder name: + // - address, uint256, tuple, array, etc. + name; + // The fully expanded type, including composite types: + // - address, uint256, tuple(address,bytes), uint256[3][4][], etc. + type; + // The localName bound in the signature, in this example it is "baz": + // - tuple(address foo, uint bar) baz + localName; + // Whether this type is dynamic: + // - Dynamic: bytes, string, address[], tuple(boolean[]), etc. + // - Not Dynamic: address, uint256, boolean[3], tuple(address, uint8) + dynamic; + constructor(name, type, localName, dynamic) { + defineProperties(this, { name, type, localName, dynamic }, { + name: "string", + type: "string", + localName: "string", + dynamic: "boolean" + }); + } + _throwError(message, value) { + assertArgument(false, message, this.localName, value); + } +}; +var Writer = class { + // An array of WordSize lengthed objects to concatenation + #data; + #dataLength; + constructor() { + this.#data = []; + this.#dataLength = 0; + } + get data() { + return concat(this.#data); + } + get length() { + return this.#dataLength; + } + #writeData(data) { + this.#data.push(data); + this.#dataLength += data.length; + return data.length; + } + appendWriter(writer) { + return this.#writeData(getBytesCopy(writer.data)); + } + // Arrayish item; pad on the right to *nearest* WordSize + writeBytes(value) { + let bytes2 = getBytesCopy(value); + const paddingOffset = bytes2.length % WordSize; + if (paddingOffset) { + bytes2 = getBytesCopy(concat([bytes2, Padding.slice(paddingOffset)])); + } + return this.#writeData(bytes2); + } + // Numeric item; pad on the left *to* WordSize + writeValue(value) { + return this.#writeData(getValue(value)); + } + // Inserts a numeric place-holder, returning a callback that can + // be used to asjust the value later + writeUpdatableValue() { + const offset = this.#data.length; + this.#data.push(Padding); + this.#dataLength += WordSize; + return (value) => { + this.#data[offset] = getValue(value); + }; + } +}; +var Reader = class _Reader { + // Allows incomplete unpadded data to be read; otherwise an error + // is raised if attempting to overrun the buffer. This is required + // to deal with an old Solidity bug, in which event data for + // external (not public thoguh) was tightly packed. + allowLoose; + #data; + #offset; + #bytesRead; + #parent; + #maxInflation; + constructor(data, allowLoose, maxInflation) { + defineProperties(this, { allowLoose: !!allowLoose }); + this.#data = getBytesCopy(data); + this.#bytesRead = 0; + this.#parent = null; + this.#maxInflation = maxInflation != null ? maxInflation : 1024; + this.#offset = 0; + } + get data() { + return hexlify(this.#data); + } + get dataLength() { + return this.#data.length; + } + get consumed() { + return this.#offset; + } + get bytes() { + return new Uint8Array(this.#data); + } + #incrementBytesRead(count) { + if (this.#parent) { + return this.#parent.#incrementBytesRead(count); + } + this.#bytesRead += count; + assert(this.#maxInflation < 1 || this.#bytesRead <= this.#maxInflation * this.dataLength, `compressed ABI data exceeds inflation ratio of ${this.#maxInflation} ( see: https://github.com/ethers-io/ethers.js/issues/4537 )`, "BUFFER_OVERRUN", { + buffer: getBytesCopy(this.#data), + offset: this.#offset, + length: count, + info: { + bytesRead: this.#bytesRead, + dataLength: this.dataLength + } + }); + } + #peekBytes(offset, length, loose) { + let alignedLength = Math.ceil(length / WordSize) * WordSize; + if (this.#offset + alignedLength > this.#data.length) { + if (this.allowLoose && loose && this.#offset + length <= this.#data.length) { + alignedLength = length; + } else { + assert(false, "data out-of-bounds", "BUFFER_OVERRUN", { + buffer: getBytesCopy(this.#data), + length: this.#data.length, + offset: this.#offset + alignedLength + }); + } + } + return this.#data.slice(this.#offset, this.#offset + alignedLength); + } + // Create a sub-reader with the same underlying data, but offset + subReader(offset) { + const reader = new _Reader(this.#data.slice(this.#offset + offset), this.allowLoose, this.#maxInflation); + reader.#parent = this; + return reader; + } + // Read bytes + readBytes(length, loose) { + let bytes2 = this.#peekBytes(0, length, !!loose); + this.#incrementBytesRead(length); + this.#offset += bytes2.length; + return bytes2.slice(0, length); + } + // Read a numeric values + readValue() { + return toBigInt(this.readBytes(WordSize)); + } + readIndex() { + return toNumber(this.readBytes(WordSize)); + } +}; + +// node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.js +function number(n2) { + if (!Number.isSafeInteger(n2) || n2 < 0) + throw new Error(`Wrong positive integer: ${n2}`); +} +function bytes(b2, ...lengths) { + if (!(b2 instanceof Uint8Array)) + throw new Error("Expected Uint8Array"); + if (lengths.length > 0 && !lengths.includes(b2.length)) + throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b2.length}`); +} +function exists(instance, checkFinished = true) { + if (instance.destroyed) + throw new Error("Hash instance has been destroyed"); + if (checkFinished && instance.finished) + throw new Error("Hash#digest() has already been called"); +} +function output(out, instance) { + bytes(out); + const min = instance.outputLen; + if (out.length < min) { + throw new Error(`digestInto() expects output buffer of length at least ${min}`); + } +} + +// node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/esm/_u64.js +var U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1); +var _32n = /* @__PURE__ */ BigInt(32); +function fromBig(n2, le = false) { + if (le) + return { h: Number(n2 & U32_MASK64), l: Number(n2 >> _32n & U32_MASK64) }; + return { h: Number(n2 >> _32n & U32_MASK64) | 0, l: Number(n2 & U32_MASK64) | 0 }; +} +function split(lst, le = false) { + let Ah = new Uint32Array(lst.length); + let Al = new Uint32Array(lst.length); + for (let i = 0; i < lst.length; i++) { + const { h, l } = fromBig(lst[i], le); + [Ah[i], Al[i]] = [h, l]; + } + return [Ah, Al]; +} +var rotlSH = (h, l, s) => h << s | l >>> 32 - s; +var rotlSL = (h, l, s) => l << s | h >>> 32 - s; +var rotlBH = (h, l, s) => l << s - 32 | h >>> 64 - s; +var rotlBL = (h, l, s) => h << s - 32 | l >>> 64 - s; + +// node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/esm/utils.js +var u8a = (a) => a instanceof Uint8Array; +var u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4)); +var isLE = new Uint8Array(new Uint32Array([287454020]).buffer)[0] === 68; +if (!isLE) + throw new Error("Non little-endian hardware is not supported"); +function utf8ToBytes(str) { + if (typeof str !== "string") + throw new Error(`utf8ToBytes expected string, got ${typeof str}`); + return new Uint8Array(new TextEncoder().encode(str)); +} +function toBytes(data) { + if (typeof data === "string") + data = utf8ToBytes(data); + if (!u8a(data)) + throw new Error(`expected Uint8Array, got ${typeof data}`); + return data; +} +var Hash = class { + // Safe version that clones internal state + clone() { + return this._cloneInto(); + } +}; +var toStr = {}.toString; +function wrapConstructor(hashCons) { + const hashC = (msg) => hashCons().update(toBytes(msg)).digest(); + const tmp = hashCons(); + hashC.outputLen = tmp.outputLen; + hashC.blockLen = tmp.blockLen; + hashC.create = () => hashCons(); + return hashC; +} +function wrapXOFConstructorWithOpts(hashCons) { + const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest(); + const tmp = hashCons({}); + hashC.outputLen = tmp.outputLen; + hashC.blockLen = tmp.blockLen; + hashC.create = (opts) => hashCons(opts); + return hashC; +} + +// node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/esm/sha3.js +var [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []]; +var _0n = /* @__PURE__ */ BigInt(0); +var _1n = /* @__PURE__ */ BigInt(1); +var _2n = /* @__PURE__ */ BigInt(2); +var _7n = /* @__PURE__ */ BigInt(7); +var _256n = /* @__PURE__ */ BigInt(256); +var _0x71n = /* @__PURE__ */ BigInt(113); +for (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) { + [x, y] = [y, (2 * x + 3 * y) % 5]; + SHA3_PI.push(2 * (5 * y + x)); + SHA3_ROTL.push((round + 1) * (round + 2) / 2 % 64); + let t = _0n; + for (let j = 0; j < 7; j++) { + R = (R << _1n ^ (R >> _7n) * _0x71n) % _256n; + if (R & _2n) + t ^= _1n << (_1n << /* @__PURE__ */ BigInt(j)) - _1n; + } + _SHA3_IOTA.push(t); +} +var [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ split(_SHA3_IOTA, true); +var rotlH = (h, l, s) => s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s); +var rotlL = (h, l, s) => s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s); +function keccakP(s, rounds = 24) { + const B = new Uint32Array(5 * 2); + for (let round = 24 - rounds; round < 24; round++) { + for (let x = 0; x < 10; x++) + B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40]; + for (let x = 0; x < 10; x += 2) { + const idx1 = (x + 8) % 10; + const idx0 = (x + 2) % 10; + const B0 = B[idx0]; + const B1 = B[idx0 + 1]; + const Th = rotlH(B0, B1, 1) ^ B[idx1]; + const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1]; + for (let y = 0; y < 50; y += 10) { + s[x + y] ^= Th; + s[x + y + 1] ^= Tl; + } + } + let curH = s[2]; + let curL = s[3]; + for (let t = 0; t < 24; t++) { + const shift = SHA3_ROTL[t]; + const Th = rotlH(curH, curL, shift); + const Tl = rotlL(curH, curL, shift); + const PI = SHA3_PI[t]; + curH = s[PI]; + curL = s[PI + 1]; + s[PI] = Th; + s[PI + 1] = Tl; + } + for (let y = 0; y < 50; y += 10) { + for (let x = 0; x < 10; x++) + B[x] = s[y + x]; + for (let x = 0; x < 10; x++) + s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10]; + } + s[0] ^= SHA3_IOTA_H[round]; + s[1] ^= SHA3_IOTA_L[round]; + } + B.fill(0); +} +var Keccak = class _Keccak extends Hash { + // NOTE: we accept arguments in bytes instead of bits here. + constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) { + super(); + this.blockLen = blockLen; + this.suffix = suffix; + this.outputLen = outputLen; + this.enableXOF = enableXOF; + this.rounds = rounds; + this.pos = 0; + this.posOut = 0; + this.finished = false; + this.destroyed = false; + number(outputLen); + if (0 >= this.blockLen || this.blockLen >= 200) + throw new Error("Sha3 supports only keccak-f1600 function"); + this.state = new Uint8Array(200); + this.state32 = u32(this.state); + } + keccak() { + keccakP(this.state32, this.rounds); + this.posOut = 0; + this.pos = 0; + } + update(data) { + exists(this); + const { blockLen, state } = this; + data = toBytes(data); + const len = data.length; + for (let pos = 0; pos < len; ) { + const take = Math.min(blockLen - this.pos, len - pos); + for (let i = 0; i < take; i++) + state[this.pos++] ^= data[pos++]; + if (this.pos === blockLen) + this.keccak(); + } + return this; + } + finish() { + if (this.finished) + return; + this.finished = true; + const { state, suffix, pos, blockLen } = this; + state[pos] ^= suffix; + if ((suffix & 128) !== 0 && pos === blockLen - 1) + this.keccak(); + state[blockLen - 1] ^= 128; + this.keccak(); + } + writeInto(out) { + exists(this, false); + bytes(out); + this.finish(); + const bufferOut = this.state; + const { blockLen } = this; + for (let pos = 0, len = out.length; pos < len; ) { + if (this.posOut >= blockLen) + this.keccak(); + const take = Math.min(blockLen - this.posOut, len - pos); + out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos); + this.posOut += take; + pos += take; + } + return out; + } + xofInto(out) { + if (!this.enableXOF) + throw new Error("XOF is not possible for this instance"); + return this.writeInto(out); + } + xof(bytes2) { + number(bytes2); + return this.xofInto(new Uint8Array(bytes2)); + } + digestInto(out) { + output(out, this); + if (this.finished) + throw new Error("digest() was already called"); + this.writeInto(out); + this.destroy(); + return out; + } + digest() { + return this.digestInto(new Uint8Array(this.outputLen)); + } + destroy() { + this.destroyed = true; + this.state.fill(0); + } + _cloneInto(to) { + const { blockLen, suffix, outputLen, rounds, enableXOF } = this; + to || (to = new _Keccak(blockLen, suffix, outputLen, enableXOF, rounds)); + to.state32.set(this.state32); + to.pos = this.pos; + to.posOut = this.posOut; + to.finished = this.finished; + to.rounds = rounds; + to.suffix = suffix; + to.outputLen = outputLen; + to.enableXOF = enableXOF; + to.destroyed = this.destroyed; + return to; + } +}; +var gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen)); +var sha3_224 = /* @__PURE__ */ gen(6, 144, 224 / 8); +var sha3_256 = /* @__PURE__ */ gen(6, 136, 256 / 8); +var sha3_384 = /* @__PURE__ */ gen(6, 104, 384 / 8); +var sha3_512 = /* @__PURE__ */ gen(6, 72, 512 / 8); +var keccak_224 = /* @__PURE__ */ gen(1, 144, 224 / 8); +var keccak_256 = /* @__PURE__ */ gen(1, 136, 256 / 8); +var keccak_384 = /* @__PURE__ */ gen(1, 104, 384 / 8); +var keccak_512 = /* @__PURE__ */ gen(1, 72, 512 / 8); +var genShake = (suffix, blockLen, outputLen) => wrapXOFConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === void 0 ? outputLen : opts.dkLen, true)); +var shake128 = /* @__PURE__ */ genShake(31, 168, 128 / 8); +var shake256 = /* @__PURE__ */ genShake(31, 136, 256 / 8); + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/crypto/keccak.js +var locked = false; +var _keccak256 = function(data) { + return keccak_256(data); +}; +var __keccak256 = _keccak256; +function keccak256(_data) { + const data = getBytes(_data, "data"); + return hexlify(__keccak256(data)); +} +keccak256._ = _keccak256; +keccak256.lock = function() { + locked = true; +}; +keccak256.register = function(func) { + if (locked) { + throw new TypeError("keccak256 is locked"); + } + __keccak256 = func; +}; +Object.freeze(keccak256); + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/address/address.js +var BN_02 = BigInt(0); +var BN_36 = BigInt(36); +function getChecksumAddress(address) { + address = address.toLowerCase(); + const chars = address.substring(2).split(""); + const expanded = new Uint8Array(40); + for (let i = 0; i < 40; i++) { + expanded[i] = chars[i].charCodeAt(0); + } + const hashed = getBytes(keccak256(expanded)); + for (let i = 0; i < 40; i += 2) { + if (hashed[i >> 1] >> 4 >= 8) { + chars[i] = chars[i].toUpperCase(); + } + if ((hashed[i >> 1] & 15) >= 8) { + chars[i + 1] = chars[i + 1].toUpperCase(); + } + } + return "0x" + chars.join(""); +} +var ibanLookup = {}; +for (let i = 0; i < 10; i++) { + ibanLookup[String(i)] = String(i); +} +for (let i = 0; i < 26; i++) { + ibanLookup[String.fromCharCode(65 + i)] = String(10 + i); +} +var safeDigits = 15; +function ibanChecksum(address) { + address = address.toUpperCase(); + address = address.substring(4) + address.substring(0, 2) + "00"; + let expanded = address.split("").map((c) => { + return ibanLookup[c]; + }).join(""); + while (expanded.length >= safeDigits) { + let block = expanded.substring(0, safeDigits); + expanded = parseInt(block, 10) % 97 + expanded.substring(block.length); + } + let checksum = String(98 - parseInt(expanded, 10) % 97); + while (checksum.length < 2) { + checksum = "0" + checksum; + } + return checksum; +} +var Base36 = function() { + ; + const result = {}; + for (let i = 0; i < 36; i++) { + const key = "0123456789abcdefghijklmnopqrstuvwxyz"[i]; + result[key] = BigInt(i); + } + return result; +}(); +function fromBase36(value) { + value = value.toLowerCase(); + let result = BN_02; + for (let i = 0; i < value.length; i++) { + result = result * BN_36 + Base36[value[i]]; + } + return result; +} +function getAddress(address) { + assertArgument(typeof address === "string", "invalid address", "address", address); + if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) { + if (!address.startsWith("0x")) { + address = "0x" + address; + } + const result = getChecksumAddress(address); + assertArgument(!address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) || result === address, "bad address checksum", "address", address); + return result; + } + if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) { + assertArgument(address.substring(2, 4) === ibanChecksum(address), "bad icap checksum", "address", address); + let result = fromBase36(address.substring(4)).toString(16); + while (result.length < 40) { + result = "0" + result; + } + return getChecksumAddress("0x" + result); + } + assertArgument(false, "invalid address", "address", address); +} + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/typed.js +var _gaurd = {}; +function n(value, width) { + let signed = false; + if (width < 0) { + signed = true; + width *= -1; + } + return new Typed(_gaurd, `${signed ? "" : "u"}int${width}`, value, { signed, width }); +} +function b(value, size) { + return new Typed(_gaurd, `bytes${size ? size : ""}`, value, { size }); +} +var _typedSymbol = Symbol.for("_ethers_typed"); +var Typed = class _Typed { + /** + * The type, as a Solidity-compatible type. + */ + type; + /** + * The actual value. + */ + value; + #options; + /** + * @_ignore: + */ + _typedSymbol; + /** + * @_ignore: + */ + constructor(gaurd, type, value, options) { + if (options == null) { + options = null; + } + assertPrivate(_gaurd, gaurd, "Typed"); + defineProperties(this, { _typedSymbol, type, value }); + this.#options = options; + this.format(); + } + /** + * Format the type as a Human-Readable type. + */ + format() { + if (this.type === "array") { + throw new Error(""); + } else if (this.type === "dynamicArray") { + throw new Error(""); + } else if (this.type === "tuple") { + return `tuple(${this.value.map((v) => v.format()).join(",")})`; + } + return this.type; + } + /** + * The default value returned by this type. + */ + defaultValue() { + return 0; + } + /** + * The minimum value for numeric types. + */ + minValue() { + return 0; + } + /** + * The maximum value for numeric types. + */ + maxValue() { + return 0; + } + /** + * Returns ``true`` and provides a type guard is this is a [[TypedBigInt]]. + */ + isBigInt() { + return !!this.type.match(/^u?int[0-9]+$/); + } + /** + * Returns ``true`` and provides a type guard is this is a [[TypedData]]. + */ + isData() { + return this.type.startsWith("bytes"); + } + /** + * Returns ``true`` and provides a type guard is this is a [[TypedString]]. + */ + isString() { + return this.type === "string"; + } + /** + * Returns the tuple name, if this is a tuple. Throws otherwise. + */ + get tupleName() { + if (this.type !== "tuple") { + throw TypeError("not a tuple"); + } + return this.#options; + } + // Returns the length of this type as an array + // - `null` indicates the length is unforced, it could be dynamic + // - `-1` indicates the length is dynamic + // - any other value indicates it is a static array and is its length + /** + * Returns the length of the array type or ``-1`` if it is dynamic. + * + * Throws if the type is not an array. + */ + get arrayLength() { + if (this.type !== "array") { + throw TypeError("not an array"); + } + if (this.#options === true) { + return -1; + } + if (this.#options === false) { + return this.value.length; + } + return null; + } + /** + * Returns a new **Typed** of %%type%% with the %%value%%. + */ + static from(type, value) { + return new _Typed(_gaurd, type, value); + } + /** + * Return a new ``uint8`` type for %%v%%. + */ + static uint8(v) { + return n(v, 8); + } + /** + * Return a new ``uint16`` type for %%v%%. + */ + static uint16(v) { + return n(v, 16); + } + /** + * Return a new ``uint24`` type for %%v%%. + */ + static uint24(v) { + return n(v, 24); + } + /** + * Return a new ``uint32`` type for %%v%%. + */ + static uint32(v) { + return n(v, 32); + } + /** + * Return a new ``uint40`` type for %%v%%. + */ + static uint40(v) { + return n(v, 40); + } + /** + * Return a new ``uint48`` type for %%v%%. + */ + static uint48(v) { + return n(v, 48); + } + /** + * Return a new ``uint56`` type for %%v%%. + */ + static uint56(v) { + return n(v, 56); + } + /** + * Return a new ``uint64`` type for %%v%%. + */ + static uint64(v) { + return n(v, 64); + } + /** + * Return a new ``uint72`` type for %%v%%. + */ + static uint72(v) { + return n(v, 72); + } + /** + * Return a new ``uint80`` type for %%v%%. + */ + static uint80(v) { + return n(v, 80); + } + /** + * Return a new ``uint88`` type for %%v%%. + */ + static uint88(v) { + return n(v, 88); + } + /** + * Return a new ``uint96`` type for %%v%%. + */ + static uint96(v) { + return n(v, 96); + } + /** + * Return a new ``uint104`` type for %%v%%. + */ + static uint104(v) { + return n(v, 104); + } + /** + * Return a new ``uint112`` type for %%v%%. + */ + static uint112(v) { + return n(v, 112); + } + /** + * Return a new ``uint120`` type for %%v%%. + */ + static uint120(v) { + return n(v, 120); + } + /** + * Return a new ``uint128`` type for %%v%%. + */ + static uint128(v) { + return n(v, 128); + } + /** + * Return a new ``uint136`` type for %%v%%. + */ + static uint136(v) { + return n(v, 136); + } + /** + * Return a new ``uint144`` type for %%v%%. + */ + static uint144(v) { + return n(v, 144); + } + /** + * Return a new ``uint152`` type for %%v%%. + */ + static uint152(v) { + return n(v, 152); + } + /** + * Return a new ``uint160`` type for %%v%%. + */ + static uint160(v) { + return n(v, 160); + } + /** + * Return a new ``uint168`` type for %%v%%. + */ + static uint168(v) { + return n(v, 168); + } + /** + * Return a new ``uint176`` type for %%v%%. + */ + static uint176(v) { + return n(v, 176); + } + /** + * Return a new ``uint184`` type for %%v%%. + */ + static uint184(v) { + return n(v, 184); + } + /** + * Return a new ``uint192`` type for %%v%%. + */ + static uint192(v) { + return n(v, 192); + } + /** + * Return a new ``uint200`` type for %%v%%. + */ + static uint200(v) { + return n(v, 200); + } + /** + * Return a new ``uint208`` type for %%v%%. + */ + static uint208(v) { + return n(v, 208); + } + /** + * Return a new ``uint216`` type for %%v%%. + */ + static uint216(v) { + return n(v, 216); + } + /** + * Return a new ``uint224`` type for %%v%%. + */ + static uint224(v) { + return n(v, 224); + } + /** + * Return a new ``uint232`` type for %%v%%. + */ + static uint232(v) { + return n(v, 232); + } + /** + * Return a new ``uint240`` type for %%v%%. + */ + static uint240(v) { + return n(v, 240); + } + /** + * Return a new ``uint248`` type for %%v%%. + */ + static uint248(v) { + return n(v, 248); + } + /** + * Return a new ``uint256`` type for %%v%%. + */ + static uint256(v) { + return n(v, 256); + } + /** + * Return a new ``uint256`` type for %%v%%. + */ + static uint(v) { + return n(v, 256); + } + /** + * Return a new ``int8`` type for %%v%%. + */ + static int8(v) { + return n(v, -8); + } + /** + * Return a new ``int16`` type for %%v%%. + */ + static int16(v) { + return n(v, -16); + } + /** + * Return a new ``int24`` type for %%v%%. + */ + static int24(v) { + return n(v, -24); + } + /** + * Return a new ``int32`` type for %%v%%. + */ + static int32(v) { + return n(v, -32); + } + /** + * Return a new ``int40`` type for %%v%%. + */ + static int40(v) { + return n(v, -40); + } + /** + * Return a new ``int48`` type for %%v%%. + */ + static int48(v) { + return n(v, -48); + } + /** + * Return a new ``int56`` type for %%v%%. + */ + static int56(v) { + return n(v, -56); + } + /** + * Return a new ``int64`` type for %%v%%. + */ + static int64(v) { + return n(v, -64); + } + /** + * Return a new ``int72`` type for %%v%%. + */ + static int72(v) { + return n(v, -72); + } + /** + * Return a new ``int80`` type for %%v%%. + */ + static int80(v) { + return n(v, -80); + } + /** + * Return a new ``int88`` type for %%v%%. + */ + static int88(v) { + return n(v, -88); + } + /** + * Return a new ``int96`` type for %%v%%. + */ + static int96(v) { + return n(v, -96); + } + /** + * Return a new ``int104`` type for %%v%%. + */ + static int104(v) { + return n(v, -104); + } + /** + * Return a new ``int112`` type for %%v%%. + */ + static int112(v) { + return n(v, -112); + } + /** + * Return a new ``int120`` type for %%v%%. + */ + static int120(v) { + return n(v, -120); + } + /** + * Return a new ``int128`` type for %%v%%. + */ + static int128(v) { + return n(v, -128); + } + /** + * Return a new ``int136`` type for %%v%%. + */ + static int136(v) { + return n(v, -136); + } + /** + * Return a new ``int144`` type for %%v%%. + */ + static int144(v) { + return n(v, -144); + } + /** + * Return a new ``int52`` type for %%v%%. + */ + static int152(v) { + return n(v, -152); + } + /** + * Return a new ``int160`` type for %%v%%. + */ + static int160(v) { + return n(v, -160); + } + /** + * Return a new ``int168`` type for %%v%%. + */ + static int168(v) { + return n(v, -168); + } + /** + * Return a new ``int176`` type for %%v%%. + */ + static int176(v) { + return n(v, -176); + } + /** + * Return a new ``int184`` type for %%v%%. + */ + static int184(v) { + return n(v, -184); + } + /** + * Return a new ``int92`` type for %%v%%. + */ + static int192(v) { + return n(v, -192); + } + /** + * Return a new ``int200`` type for %%v%%. + */ + static int200(v) { + return n(v, -200); + } + /** + * Return a new ``int208`` type for %%v%%. + */ + static int208(v) { + return n(v, -208); + } + /** + * Return a new ``int216`` type for %%v%%. + */ + static int216(v) { + return n(v, -216); + } + /** + * Return a new ``int224`` type for %%v%%. + */ + static int224(v) { + return n(v, -224); + } + /** + * Return a new ``int232`` type for %%v%%. + */ + static int232(v) { + return n(v, -232); + } + /** + * Return a new ``int240`` type for %%v%%. + */ + static int240(v) { + return n(v, -240); + } + /** + * Return a new ``int248`` type for %%v%%. + */ + static int248(v) { + return n(v, -248); + } + /** + * Return a new ``int256`` type for %%v%%. + */ + static int256(v) { + return n(v, -256); + } + /** + * Return a new ``int256`` type for %%v%%. + */ + static int(v) { + return n(v, -256); + } + /** + * Return a new ``bytes1`` type for %%v%%. + */ + static bytes1(v) { + return b(v, 1); + } + /** + * Return a new ``bytes2`` type for %%v%%. + */ + static bytes2(v) { + return b(v, 2); + } + /** + * Return a new ``bytes3`` type for %%v%%. + */ + static bytes3(v) { + return b(v, 3); + } + /** + * Return a new ``bytes4`` type for %%v%%. + */ + static bytes4(v) { + return b(v, 4); + } + /** + * Return a new ``bytes5`` type for %%v%%. + */ + static bytes5(v) { + return b(v, 5); + } + /** + * Return a new ``bytes6`` type for %%v%%. + */ + static bytes6(v) { + return b(v, 6); + } + /** + * Return a new ``bytes7`` type for %%v%%. + */ + static bytes7(v) { + return b(v, 7); + } + /** + * Return a new ``bytes8`` type for %%v%%. + */ + static bytes8(v) { + return b(v, 8); + } + /** + * Return a new ``bytes9`` type for %%v%%. + */ + static bytes9(v) { + return b(v, 9); + } + /** + * Return a new ``bytes10`` type for %%v%%. + */ + static bytes10(v) { + return b(v, 10); + } + /** + * Return a new ``bytes11`` type for %%v%%. + */ + static bytes11(v) { + return b(v, 11); + } + /** + * Return a new ``bytes12`` type for %%v%%. + */ + static bytes12(v) { + return b(v, 12); + } + /** + * Return a new ``bytes13`` type for %%v%%. + */ + static bytes13(v) { + return b(v, 13); + } + /** + * Return a new ``bytes14`` type for %%v%%. + */ + static bytes14(v) { + return b(v, 14); + } + /** + * Return a new ``bytes15`` type for %%v%%. + */ + static bytes15(v) { + return b(v, 15); + } + /** + * Return a new ``bytes16`` type for %%v%%. + */ + static bytes16(v) { + return b(v, 16); + } + /** + * Return a new ``bytes17`` type for %%v%%. + */ + static bytes17(v) { + return b(v, 17); + } + /** + * Return a new ``bytes18`` type for %%v%%. + */ + static bytes18(v) { + return b(v, 18); + } + /** + * Return a new ``bytes19`` type for %%v%%. + */ + static bytes19(v) { + return b(v, 19); + } + /** + * Return a new ``bytes20`` type for %%v%%. + */ + static bytes20(v) { + return b(v, 20); + } + /** + * Return a new ``bytes21`` type for %%v%%. + */ + static bytes21(v) { + return b(v, 21); + } + /** + * Return a new ``bytes22`` type for %%v%%. + */ + static bytes22(v) { + return b(v, 22); + } + /** + * Return a new ``bytes23`` type for %%v%%. + */ + static bytes23(v) { + return b(v, 23); + } + /** + * Return a new ``bytes24`` type for %%v%%. + */ + static bytes24(v) { + return b(v, 24); + } + /** + * Return a new ``bytes25`` type for %%v%%. + */ + static bytes25(v) { + return b(v, 25); + } + /** + * Return a new ``bytes26`` type for %%v%%. + */ + static bytes26(v) { + return b(v, 26); + } + /** + * Return a new ``bytes27`` type for %%v%%. + */ + static bytes27(v) { + return b(v, 27); + } + /** + * Return a new ``bytes28`` type for %%v%%. + */ + static bytes28(v) { + return b(v, 28); + } + /** + * Return a new ``bytes29`` type for %%v%%. + */ + static bytes29(v) { + return b(v, 29); + } + /** + * Return a new ``bytes30`` type for %%v%%. + */ + static bytes30(v) { + return b(v, 30); + } + /** + * Return a new ``bytes31`` type for %%v%%. + */ + static bytes31(v) { + return b(v, 31); + } + /** + * Return a new ``bytes32`` type for %%v%%. + */ + static bytes32(v) { + return b(v, 32); + } + /** + * Return a new ``address`` type for %%v%%. + */ + static address(v) { + return new _Typed(_gaurd, "address", v); + } + /** + * Return a new ``bool`` type for %%v%%. + */ + static bool(v) { + return new _Typed(_gaurd, "bool", !!v); + } + /** + * Return a new ``bytes`` type for %%v%%. + */ + static bytes(v) { + return new _Typed(_gaurd, "bytes", v); + } + /** + * Return a new ``string`` type for %%v%%. + */ + static string(v) { + return new _Typed(_gaurd, "string", v); + } + /** + * Return a new ``array`` type for %%v%%, allowing %%dynamic%% length. + */ + static array(v, dynamic) { + throw new Error("not implemented yet"); + return new _Typed(_gaurd, "array", v, dynamic); + } + /** + * Return a new ``tuple`` type for %%v%%, with the optional %%name%%. + */ + static tuple(v, name) { + throw new Error("not implemented yet"); + return new _Typed(_gaurd, "tuple", v, name); + } + /** + * Return a new ``uint8`` type for %%v%%. + */ + static overrides(v) { + return new _Typed(_gaurd, "overrides", Object.assign({}, v)); + } + /** + * Returns true only if %%value%% is a [[Typed]] instance. + */ + static isTyped(value) { + return value && typeof value === "object" && "_typedSymbol" in value && value._typedSymbol === _typedSymbol; + } + /** + * If the value is a [[Typed]] instance, validates the underlying value + * and returns it, otherwise returns value directly. + * + * This is useful for functions that with to accept either a [[Typed]] + * object or values. + */ + static dereference(value, type) { + if (_Typed.isTyped(value)) { + if (value.type !== type) { + throw new Error(`invalid type: expecetd ${type}, got ${value.type}`); + } + return value.value; + } + return value; + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/address.js +var AddressCoder = class extends Coder { + constructor(localName) { + super("address", "address", localName, false); + } + defaultValue() { + return "0x0000000000000000000000000000000000000000"; + } + encode(writer, _value) { + let value = Typed.dereference(_value, "string"); + try { + value = getAddress(value); + } catch (error) { + return this._throwError(error.message, _value); + } + return writer.writeValue(value); + } + decode(reader) { + return getAddress(toBeHex(reader.readValue(), 20)); + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/anonymous.js +var AnonymousCoder = class extends Coder { + coder; + constructor(coder) { + super(coder.name, coder.type, "_", coder.dynamic); + this.coder = coder; + } + defaultValue() { + return this.coder.defaultValue(); + } + encode(writer, value) { + return this.coder.encode(writer, value); + } + decode(reader) { + return this.coder.decode(reader); + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/array.js +function pack(writer, coders, values) { + let arrayValues = []; + if (Array.isArray(values)) { + arrayValues = values; + } else if (values && typeof values === "object") { + let unique = {}; + arrayValues = coders.map((coder) => { + const name = coder.localName; + assert(name, "cannot encode object for signature with missing names", "INVALID_ARGUMENT", { argument: "values", info: { coder }, value: values }); + assert(!unique[name], "cannot encode object for signature with duplicate names", "INVALID_ARGUMENT", { argument: "values", info: { coder }, value: values }); + unique[name] = true; + return values[name]; + }); + } else { + assertArgument(false, "invalid tuple value", "tuple", values); + } + assertArgument(coders.length === arrayValues.length, "types/value length mismatch", "tuple", values); + let staticWriter = new Writer(); + let dynamicWriter = new Writer(); + let updateFuncs = []; + coders.forEach((coder, index) => { + let value = arrayValues[index]; + if (coder.dynamic) { + let dynamicOffset = dynamicWriter.length; + coder.encode(dynamicWriter, value); + let updateFunc = staticWriter.writeUpdatableValue(); + updateFuncs.push((baseOffset) => { + updateFunc(baseOffset + dynamicOffset); + }); + } else { + coder.encode(staticWriter, value); + } + }); + updateFuncs.forEach((func) => { + func(staticWriter.length); + }); + let length = writer.appendWriter(staticWriter); + length += writer.appendWriter(dynamicWriter); + return length; +} +function unpack(reader, coders) { + let values = []; + let keys = []; + let baseReader = reader.subReader(0); + coders.forEach((coder) => { + let value = null; + if (coder.dynamic) { + let offset = reader.readIndex(); + let offsetReader = baseReader.subReader(offset); + try { + value = coder.decode(offsetReader); + } catch (error) { + if (isError(error, "BUFFER_OVERRUN")) { + throw error; + } + value = error; + value.baseType = coder.name; + value.name = coder.localName; + value.type = coder.type; + } + } else { + try { + value = coder.decode(reader); + } catch (error) { + if (isError(error, "BUFFER_OVERRUN")) { + throw error; + } + value = error; + value.baseType = coder.name; + value.name = coder.localName; + value.type = coder.type; + } + } + if (value == void 0) { + throw new Error("investigate"); + } + values.push(value); + keys.push(coder.localName || null); + }); + return Result.fromItems(values, keys); +} +var ArrayCoder = class extends Coder { + coder; + length; + constructor(coder, length, localName) { + const type = coder.type + "[" + (length >= 0 ? length : "") + "]"; + const dynamic = length === -1 || coder.dynamic; + super("array", type, localName, dynamic); + defineProperties(this, { coder, length }); + } + defaultValue() { + const defaultChild = this.coder.defaultValue(); + const result = []; + for (let i = 0; i < this.length; i++) { + result.push(defaultChild); + } + return result; + } + encode(writer, _value) { + const value = Typed.dereference(_value, "array"); + if (!Array.isArray(value)) { + this._throwError("expected array value", value); + } + let count = this.length; + if (count === -1) { + count = value.length; + writer.writeValue(value.length); + } + assertArgumentCount(value.length, count, "coder array" + (this.localName ? " " + this.localName : "")); + let coders = []; + for (let i = 0; i < value.length; i++) { + coders.push(this.coder); + } + return pack(writer, coders, value); + } + decode(reader) { + let count = this.length; + if (count === -1) { + count = reader.readIndex(); + assert(count * WordSize <= reader.dataLength, "insufficient data length", "BUFFER_OVERRUN", { buffer: reader.bytes, offset: count * WordSize, length: reader.dataLength }); + } + let coders = []; + for (let i = 0; i < count; i++) { + coders.push(new AnonymousCoder(this.coder)); + } + return unpack(reader, coders); + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/boolean.js +var BooleanCoder = class extends Coder { + constructor(localName) { + super("bool", "bool", localName, false); + } + defaultValue() { + return false; + } + encode(writer, _value) { + const value = Typed.dereference(_value, "bool"); + return writer.writeValue(value ? 1 : 0); + } + decode(reader) { + return !!reader.readValue(); + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/bytes.js +var DynamicBytesCoder = class extends Coder { + constructor(type, localName) { + super(type, type, localName, true); + } + defaultValue() { + return "0x"; + } + encode(writer, value) { + value = getBytesCopy(value); + let length = writer.writeValue(value.length); + length += writer.writeBytes(value); + return length; + } + decode(reader) { + return reader.readBytes(reader.readIndex(), true); + } +}; +var BytesCoder = class extends DynamicBytesCoder { + constructor(localName) { + super("bytes", localName); + } + decode(reader) { + return hexlify(super.decode(reader)); + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/fixed-bytes.js +var FixedBytesCoder = class extends Coder { + size; + constructor(size, localName) { + let name = "bytes" + String(size); + super(name, name, localName, false); + defineProperties(this, { size }, { size: "number" }); + } + defaultValue() { + return "0x0000000000000000000000000000000000000000000000000000000000000000".substring(0, 2 + this.size * 2); + } + encode(writer, _value) { + let data = getBytesCopy(Typed.dereference(_value, this.type)); + if (data.length !== this.size) { + this._throwError("incorrect data length", _value); + } + return writer.writeBytes(data); + } + decode(reader) { + return hexlify(reader.readBytes(this.size)); + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/null.js +var Empty = new Uint8Array([]); +var NullCoder = class extends Coder { + constructor(localName) { + super("null", "", localName, false); + } + defaultValue() { + return null; + } + encode(writer, value) { + if (value != null) { + this._throwError("not null", value); + } + return writer.writeBytes(Empty); + } + decode(reader) { + reader.readBytes(0); + return null; + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/number.js +var BN_03 = BigInt(0); +var BN_12 = BigInt(1); +var BN_MAX_UINT256 = BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); +var NumberCoder = class extends Coder { + size; + signed; + constructor(size, signed, localName) { + const name = (signed ? "int" : "uint") + size * 8; + super(name, name, localName, false); + defineProperties(this, { size, signed }, { size: "number", signed: "boolean" }); + } + defaultValue() { + return 0; + } + encode(writer, _value) { + let value = getBigInt(Typed.dereference(_value, this.type)); + let maxUintValue = mask(BN_MAX_UINT256, WordSize * 8); + if (this.signed) { + let bounds = mask(maxUintValue, this.size * 8 - 1); + if (value > bounds || value < -(bounds + BN_12)) { + this._throwError("value out-of-bounds", _value); + } + value = toTwos(value, 8 * WordSize); + } else if (value < BN_03 || value > mask(maxUintValue, this.size * 8)) { + this._throwError("value out-of-bounds", _value); + } + return writer.writeValue(value); + } + decode(reader) { + let value = mask(reader.readValue(), this.size * 8); + if (this.signed) { + value = fromTwos(value, this.size * 8); + } + return value; + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/string.js +var StringCoder = class extends DynamicBytesCoder { + constructor(localName) { + super("string", localName); + } + defaultValue() { + return ""; + } + encode(writer, _value) { + return super.encode(writer, toUtf8Bytes(Typed.dereference(_value, "string"))); + } + decode(reader) { + return toUtf8String(super.decode(reader)); + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/tuple.js +var TupleCoder = class extends Coder { + coders; + constructor(coders, localName) { + let dynamic = false; + const types = []; + coders.forEach((coder) => { + if (coder.dynamic) { + dynamic = true; + } + types.push(coder.type); + }); + const type = "tuple(" + types.join(",") + ")"; + super("tuple", type, localName, dynamic); + defineProperties(this, { coders: Object.freeze(coders.slice()) }); + } + defaultValue() { + const values = []; + this.coders.forEach((coder) => { + values.push(coder.defaultValue()); + }); + const uniqueNames = this.coders.reduce((accum, coder) => { + const name = coder.localName; + if (name) { + if (!accum[name]) { + accum[name] = 0; + } + accum[name]++; + } + return accum; + }, {}); + this.coders.forEach((coder, index) => { + let name = coder.localName; + if (!name || uniqueNames[name] !== 1) { + return; + } + if (name === "length") { + name = "_length"; + } + if (values[name] != null) { + return; + } + values[name] = values[index]; + }); + return Object.freeze(values); + } + encode(writer, _value) { + const value = Typed.dereference(_value, "tuple"); + return pack(writer, this.coders, value); + } + decode(reader) { + return unpack(reader, this.coders); + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/hash/id.js +function id(value) { + return keccak256(toUtf8Bytes(value)); +} + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/fragments.js +function setify(items) { + const result = /* @__PURE__ */ new Set(); + items.forEach((k) => result.add(k)); + return Object.freeze(result); +} +var _kwVisibDeploy = "external public payable override"; +var KwVisibDeploy = setify(_kwVisibDeploy.split(" ")); +var _kwVisib = "constant external internal payable private public pure view override"; +var KwVisib = setify(_kwVisib.split(" ")); +var _kwTypes = "constructor error event fallback function receive struct"; +var KwTypes = setify(_kwTypes.split(" ")); +var _kwModifiers = "calldata memory storage payable indexed"; +var KwModifiers = setify(_kwModifiers.split(" ")); +var _kwOther = "tuple returns"; +var _keywords = [_kwTypes, _kwModifiers, _kwOther, _kwVisib].join(" "); +var Keywords = setify(_keywords.split(" ")); +var SimpleTokens = { + "(": "OPEN_PAREN", + ")": "CLOSE_PAREN", + "[": "OPEN_BRACKET", + "]": "CLOSE_BRACKET", + ",": "COMMA", + "@": "AT" +}; +var regexWhitespacePrefix = new RegExp("^(\\s*)"); +var regexNumberPrefix = new RegExp("^([0-9]+)"); +var regexIdPrefix = new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"); +var regexId = new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"); +var regexType = new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$"); +var TokenString = class _TokenString { + #offset; + #tokens; + get offset() { + return this.#offset; + } + get length() { + return this.#tokens.length - this.#offset; + } + constructor(tokens) { + this.#offset = 0; + this.#tokens = tokens.slice(); + } + clone() { + return new _TokenString(this.#tokens); + } + reset() { + this.#offset = 0; + } + #subTokenString(from = 0, to = 0) { + return new _TokenString(this.#tokens.slice(from, to).map((t) => { + return Object.freeze(Object.assign({}, t, { + match: t.match - from, + linkBack: t.linkBack - from, + linkNext: t.linkNext - from + })); + })); + } + // Pops and returns the value of the next token, if it is a keyword in allowed; throws if out of tokens + popKeyword(allowed) { + const top = this.peek(); + if (top.type !== "KEYWORD" || !allowed.has(top.text)) { + throw new Error(`expected keyword ${top.text}`); + } + return this.pop().text; + } + // Pops and returns the value of the next token if it is `type`; throws if out of tokens + popType(type) { + if (this.peek().type !== type) { + const top = this.peek(); + throw new Error(`expected ${type}; got ${top.type} ${JSON.stringify(top.text)}`); + } + return this.pop().text; + } + // Pops and returns a "(" TOKENS ")" + popParen() { + const top = this.peek(); + if (top.type !== "OPEN_PAREN") { + throw new Error("bad start"); + } + const result = this.#subTokenString(this.#offset + 1, top.match + 1); + this.#offset = top.match + 1; + return result; + } + // Pops and returns the items within "(" ITEM1 "," ITEM2 "," ... ")" + popParams() { + const top = this.peek(); + if (top.type !== "OPEN_PAREN") { + throw new Error("bad start"); + } + const result = []; + while (this.#offset < top.match - 1) { + const link = this.peek().linkNext; + result.push(this.#subTokenString(this.#offset + 1, link)); + this.#offset = link; + } + this.#offset = top.match + 1; + return result; + } + // Returns the top Token, throwing if out of tokens + peek() { + if (this.#offset >= this.#tokens.length) { + throw new Error("out-of-bounds"); + } + return this.#tokens[this.#offset]; + } + // Returns the next value, if it is a keyword in `allowed` + peekKeyword(allowed) { + const top = this.peekType("KEYWORD"); + return top != null && allowed.has(top) ? top : null; + } + // Returns the value of the next token if it is `type` + peekType(type) { + if (this.length === 0) { + return null; + } + const top = this.peek(); + return top.type === type ? top.text : null; + } + // Returns the next token; throws if out of tokens + pop() { + const result = this.peek(); + this.#offset++; + return result; + } + toString() { + const tokens = []; + for (let i = this.#offset; i < this.#tokens.length; i++) { + const token = this.#tokens[i]; + tokens.push(`${token.type}:${token.text}`); + } + return ``; + } +}; +function lex(text) { + const tokens = []; + const throwError2 = (message) => { + const token = offset < text.length ? JSON.stringify(text[offset]) : "$EOI"; + throw new Error(`invalid token ${token} at ${offset}: ${message}`); + }; + let brackets = []; + let commas = []; + let offset = 0; + while (offset < text.length) { + let cur = text.substring(offset); + let match = cur.match(regexWhitespacePrefix); + if (match) { + offset += match[1].length; + cur = text.substring(offset); + } + const token = { depth: brackets.length, linkBack: -1, linkNext: -1, match: -1, type: "", text: "", offset, value: -1 }; + tokens.push(token); + let type = SimpleTokens[cur[0]] || ""; + if (type) { + token.type = type; + token.text = cur[0]; + offset++; + if (type === "OPEN_PAREN") { + brackets.push(tokens.length - 1); + commas.push(tokens.length - 1); + } else if (type == "CLOSE_PAREN") { + if (brackets.length === 0) { + throwError2("no matching open bracket"); + } + token.match = brackets.pop(); + tokens[token.match].match = tokens.length - 1; + token.depth--; + token.linkBack = commas.pop(); + tokens[token.linkBack].linkNext = tokens.length - 1; + } else if (type === "COMMA") { + token.linkBack = commas.pop(); + tokens[token.linkBack].linkNext = tokens.length - 1; + commas.push(tokens.length - 1); + } else if (type === "OPEN_BRACKET") { + token.type = "BRACKET"; + } else if (type === "CLOSE_BRACKET") { + let suffix = tokens.pop().text; + if (tokens.length > 0 && tokens[tokens.length - 1].type === "NUMBER") { + const value = tokens.pop().text; + suffix = value + suffix; + tokens[tokens.length - 1].value = getNumber(value); + } + if (tokens.length === 0 || tokens[tokens.length - 1].type !== "BRACKET") { + throw new Error("missing opening bracket"); + } + tokens[tokens.length - 1].text += suffix; + } + continue; + } + match = cur.match(regexIdPrefix); + if (match) { + token.text = match[1]; + offset += token.text.length; + if (Keywords.has(token.text)) { + token.type = "KEYWORD"; + continue; + } + if (token.text.match(regexType)) { + token.type = "TYPE"; + continue; + } + token.type = "ID"; + continue; + } + match = cur.match(regexNumberPrefix); + if (match) { + token.text = match[1]; + token.type = "NUMBER"; + offset += token.text.length; + continue; + } + throw new Error(`unexpected token ${JSON.stringify(cur[0])} at position ${offset}`); + } + return new TokenString(tokens.map((t) => Object.freeze(t))); +} +function allowSingle(set, allowed) { + let included = []; + for (const key in allowed.keys()) { + if (set.has(key)) { + included.push(key); + } + } + if (included.length > 1) { + throw new Error(`conflicting types: ${included.join(", ")}`); + } +} +function consumeName(type, tokens) { + if (tokens.peekKeyword(KwTypes)) { + const keyword = tokens.pop().text; + if (keyword !== type) { + throw new Error(`expected ${type}, got ${keyword}`); + } + } + return tokens.popType("ID"); +} +function consumeKeywords(tokens, allowed) { + const keywords = /* @__PURE__ */ new Set(); + while (true) { + const keyword = tokens.peekType("KEYWORD"); + if (keyword == null || allowed && !allowed.has(keyword)) { + break; + } + tokens.pop(); + if (keywords.has(keyword)) { + throw new Error(`duplicate keywords: ${JSON.stringify(keyword)}`); + } + keywords.add(keyword); + } + return Object.freeze(keywords); +} +function consumeMutability(tokens) { + let modifiers = consumeKeywords(tokens, KwVisib); + allowSingle(modifiers, setify("constant payable nonpayable".split(" "))); + allowSingle(modifiers, setify("pure view payable nonpayable".split(" "))); + if (modifiers.has("view")) { + return "view"; + } + if (modifiers.has("pure")) { + return "pure"; + } + if (modifiers.has("payable")) { + return "payable"; + } + if (modifiers.has("nonpayable")) { + return "nonpayable"; + } + if (modifiers.has("constant")) { + return "view"; + } + return "nonpayable"; +} +function consumeParams(tokens, allowIndexed) { + return tokens.popParams().map((t) => ParamType.from(t, allowIndexed)); +} +function consumeGas(tokens) { + if (tokens.peekType("AT")) { + tokens.pop(); + if (tokens.peekType("NUMBER")) { + return getBigInt(tokens.pop().text); + } + throw new Error("invalid gas"); + } + return null; +} +function consumeEoi(tokens) { + if (tokens.length) { + throw new Error(`unexpected tokens at offset ${tokens.offset}: ${tokens.toString()}`); + } +} +var regexArrayType = new RegExp(/^(.*)\[([0-9]*)\]$/); +function verifyBasicType(type) { + const match = type.match(regexType); + assertArgument(match, "invalid type", "type", type); + if (type === "uint") { + return "uint256"; + } + if (type === "int") { + return "int256"; + } + if (match[2]) { + const length = parseInt(match[2]); + assertArgument(length !== 0 && length <= 32, "invalid bytes length", "type", type); + } else if (match[3]) { + const size = parseInt(match[3]); + assertArgument(size !== 0 && size <= 256 && size % 8 === 0, "invalid numeric width", "type", type); + } + return type; +} +var _guard2 = {}; +var internal = Symbol.for("_ethers_internal"); +var ParamTypeInternal = "_ParamTypeInternal"; +var ErrorFragmentInternal = "_ErrorInternal"; +var EventFragmentInternal = "_EventInternal"; +var ConstructorFragmentInternal = "_ConstructorInternal"; +var FallbackFragmentInternal = "_FallbackInternal"; +var FunctionFragmentInternal = "_FunctionInternal"; +var StructFragmentInternal = "_StructInternal"; +var ParamType = class _ParamType { + /** + * The local name of the parameter (or ``""`` if unbound) + */ + name; + /** + * The fully qualified type (e.g. ``"address"``, ``"tuple(address)"``, + * ``"uint256[3][]"``) + */ + type; + /** + * The base type (e.g. ``"address"``, ``"tuple"``, ``"array"``) + */ + baseType; + /** + * True if the parameters is indexed. + * + * For non-indexable types this is ``null``. + */ + indexed; + /** + * The components for the tuple. + * + * For non-tuple types this is ``null``. + */ + components; + /** + * The array length, or ``-1`` for dynamic-lengthed arrays. + * + * For non-array types this is ``null``. + */ + arrayLength; + /** + * The type of each child in the array. + * + * For non-array types this is ``null``. + */ + arrayChildren; + /** + * @private + */ + constructor(guard, name, type, baseType, indexed, components, arrayLength, arrayChildren) { + assertPrivate(guard, _guard2, "ParamType"); + Object.defineProperty(this, internal, { value: ParamTypeInternal }); + if (components) { + components = Object.freeze(components.slice()); + } + if (baseType === "array") { + if (arrayLength == null || arrayChildren == null) { + throw new Error(""); + } + } else if (arrayLength != null || arrayChildren != null) { + throw new Error(""); + } + if (baseType === "tuple") { + if (components == null) { + throw new Error(""); + } + } else if (components != null) { + throw new Error(""); + } + defineProperties(this, { + name, + type, + baseType, + indexed, + components, + arrayLength, + arrayChildren + }); + } + /** + * Return a string representation of this type. + * + * For example, + * + * ``sighash" => "(uint256,address)"`` + * + * ``"minimal" => "tuple(uint256,address) indexed"`` + * + * ``"full" => "tuple(uint256 foo, address bar) indexed baz"`` + */ + format(format) { + if (format == null) { + format = "sighash"; + } + if (format === "json") { + const name = this.name || ""; + if (this.isArray()) { + const result3 = JSON.parse(this.arrayChildren.format("json")); + result3.name = name; + result3.type += `[${this.arrayLength < 0 ? "" : String(this.arrayLength)}]`; + return JSON.stringify(result3); + } + const result2 = { + type: this.baseType === "tuple" ? "tuple" : this.type, + name + }; + if (typeof this.indexed === "boolean") { + result2.indexed = this.indexed; + } + if (this.isTuple()) { + result2.components = this.components.map((c) => JSON.parse(c.format(format))); + } + return JSON.stringify(result2); + } + let result = ""; + if (this.isArray()) { + result += this.arrayChildren.format(format); + result += `[${this.arrayLength < 0 ? "" : String(this.arrayLength)}]`; + } else { + if (this.isTuple()) { + result += "(" + this.components.map((comp) => comp.format(format)).join(format === "full" ? ", " : ",") + ")"; + } else { + result += this.type; + } + } + if (format !== "sighash") { + if (this.indexed === true) { + result += " indexed"; + } + if (format === "full" && this.name) { + result += " " + this.name; + } + } + return result; + } + /** + * Returns true if %%this%% is an Array type. + * + * This provides a type gaurd ensuring that [[arrayChildren]] + * and [[arrayLength]] are non-null. + */ + isArray() { + return this.baseType === "array"; + } + /** + * Returns true if %%this%% is a Tuple type. + * + * This provides a type gaurd ensuring that [[components]] + * is non-null. + */ + isTuple() { + return this.baseType === "tuple"; + } + /** + * Returns true if %%this%% is an Indexable type. + * + * This provides a type gaurd ensuring that [[indexed]] + * is non-null. + */ + isIndexable() { + return this.indexed != null; + } + /** + * Walks the **ParamType** with %%value%%, calling %%process%% + * on each type, destructing the %%value%% recursively. + */ + walk(value, process2) { + if (this.isArray()) { + if (!Array.isArray(value)) { + throw new Error("invalid array value"); + } + if (this.arrayLength !== -1 && value.length !== this.arrayLength) { + throw new Error("array is wrong length"); + } + const _this = this; + return value.map((v) => _this.arrayChildren.walk(v, process2)); + } + if (this.isTuple()) { + if (!Array.isArray(value)) { + throw new Error("invalid tuple value"); + } + if (value.length !== this.components.length) { + throw new Error("array is wrong length"); + } + const _this = this; + return value.map((v, i) => _this.components[i].walk(v, process2)); + } + return process2(this.type, value); + } + #walkAsync(promises, value, process2, setValue) { + if (this.isArray()) { + if (!Array.isArray(value)) { + throw new Error("invalid array value"); + } + if (this.arrayLength !== -1 && value.length !== this.arrayLength) { + throw new Error("array is wrong length"); + } + const childType = this.arrayChildren; + const result2 = value.slice(); + result2.forEach((value2, index) => { + childType.#walkAsync(promises, value2, process2, (value3) => { + result2[index] = value3; + }); + }); + setValue(result2); + return; + } + if (this.isTuple()) { + const components = this.components; + let result2; + if (Array.isArray(value)) { + result2 = value.slice(); + } else { + if (value == null || typeof value !== "object") { + throw new Error("invalid tuple value"); + } + result2 = components.map((param) => { + if (!param.name) { + throw new Error("cannot use object value with unnamed components"); + } + if (!(param.name in value)) { + throw new Error(`missing value for component ${param.name}`); + } + return value[param.name]; + }); + } + if (result2.length !== this.components.length) { + throw new Error("array is wrong length"); + } + result2.forEach((value2, index) => { + components[index].#walkAsync(promises, value2, process2, (value3) => { + result2[index] = value3; + }); + }); + setValue(result2); + return; + } + const result = process2(this.type, value); + if (result.then) { + promises.push(async function() { + setValue(await result); + }()); + } else { + setValue(result); + } + } + /** + * Walks the **ParamType** with %%value%%, asynchronously calling + * %%process%% on each type, destructing the %%value%% recursively. + * + * This can be used to resolve ENS names by walking and resolving each + * ``"address"`` type. + */ + async walkAsync(value, process2) { + const promises = []; + const result = [value]; + this.#walkAsync(promises, value, process2, (value2) => { + result[0] = value2; + }); + if (promises.length) { + await Promise.all(promises); + } + return result[0]; + } + /** + * Creates a new **ParamType** for %%obj%%. + * + * If %%allowIndexed%% then the ``indexed`` keyword is permitted, + * otherwise the ``indexed`` keyword will throw an error. + */ + static from(obj, allowIndexed) { + if (_ParamType.isParamType(obj)) { + return obj; + } + if (typeof obj === "string") { + try { + return _ParamType.from(lex(obj), allowIndexed); + } catch (error) { + assertArgument(false, "invalid param type", "obj", obj); + } + } else if (obj instanceof TokenString) { + let type2 = "", baseType = ""; + let comps = null; + if (consumeKeywords(obj, setify(["tuple"])).has("tuple") || obj.peekType("OPEN_PAREN")) { + baseType = "tuple"; + comps = obj.popParams().map((t) => _ParamType.from(t)); + type2 = `tuple(${comps.map((c) => c.format()).join(",")})`; + } else { + type2 = verifyBasicType(obj.popType("TYPE")); + baseType = type2; + } + let arrayChildren = null; + let arrayLength = null; + while (obj.length && obj.peekType("BRACKET")) { + const bracket = obj.pop(); + arrayChildren = new _ParamType(_guard2, "", type2, baseType, null, comps, arrayLength, arrayChildren); + arrayLength = bracket.value; + type2 += bracket.text; + baseType = "array"; + comps = null; + } + let indexed2 = null; + const keywords = consumeKeywords(obj, KwModifiers); + if (keywords.has("indexed")) { + if (!allowIndexed) { + throw new Error(""); + } + indexed2 = true; + } + const name2 = obj.peekType("ID") ? obj.pop().text : ""; + if (obj.length) { + throw new Error("leftover tokens"); + } + return new _ParamType(_guard2, name2, type2, baseType, indexed2, comps, arrayLength, arrayChildren); + } + const name = obj.name; + assertArgument(!name || typeof name === "string" && name.match(regexId), "invalid name", "obj.name", name); + let indexed = obj.indexed; + if (indexed != null) { + assertArgument(allowIndexed, "parameter cannot be indexed", "obj.indexed", obj.indexed); + indexed = !!indexed; + } + let type = obj.type; + let arrayMatch = type.match(regexArrayType); + if (arrayMatch) { + const arrayLength = parseInt(arrayMatch[2] || "-1"); + const arrayChildren = _ParamType.from({ + type: arrayMatch[1], + components: obj.components + }); + return new _ParamType(_guard2, name || "", type, "array", indexed, null, arrayLength, arrayChildren); + } + if (type === "tuple" || type.startsWith( + "tuple(" + /* fix: ) */ + ) || type.startsWith( + "(" + /* fix: ) */ + )) { + const comps = obj.components != null ? obj.components.map((c) => _ParamType.from(c)) : null; + const tuple = new _ParamType(_guard2, name || "", type, "tuple", indexed, comps, null, null); + return tuple; + } + type = verifyBasicType(obj.type); + return new _ParamType(_guard2, name || "", type, type, indexed, null, null, null); + } + /** + * Returns true if %%value%% is a **ParamType**. + */ + static isParamType(value) { + return value && value[internal] === ParamTypeInternal; + } +}; +var Fragment = class _Fragment { + /** + * The type of the fragment. + */ + type; + /** + * The inputs for the fragment. + */ + inputs; + /** + * @private + */ + constructor(guard, type, inputs) { + assertPrivate(guard, _guard2, "Fragment"); + inputs = Object.freeze(inputs.slice()); + defineProperties(this, { type, inputs }); + } + /** + * Creates a new **Fragment** for %%obj%%, wich can be any supported + * ABI frgament type. + */ + static from(obj) { + if (typeof obj === "string") { + try { + _Fragment.from(JSON.parse(obj)); + } catch (e) { + } + return _Fragment.from(lex(obj)); + } + if (obj instanceof TokenString) { + const type = obj.peekKeyword(KwTypes); + switch (type) { + case "constructor": + return ConstructorFragment.from(obj); + case "error": + return ErrorFragment.from(obj); + case "event": + return EventFragment.from(obj); + case "fallback": + case "receive": + return FallbackFragment.from(obj); + case "function": + return FunctionFragment.from(obj); + case "struct": + return StructFragment.from(obj); + } + } else if (typeof obj === "object") { + switch (obj.type) { + case "constructor": + return ConstructorFragment.from(obj); + case "error": + return ErrorFragment.from(obj); + case "event": + return EventFragment.from(obj); + case "fallback": + case "receive": + return FallbackFragment.from(obj); + case "function": + return FunctionFragment.from(obj); + case "struct": + return StructFragment.from(obj); + } + assert(false, `unsupported type: ${obj.type}`, "UNSUPPORTED_OPERATION", { + operation: "Fragment.from" + }); + } + assertArgument(false, "unsupported frgament object", "obj", obj); + } + /** + * Returns true if %%value%% is a [[ConstructorFragment]]. + */ + static isConstructor(value) { + return ConstructorFragment.isFragment(value); + } + /** + * Returns true if %%value%% is an [[ErrorFragment]]. + */ + static isError(value) { + return ErrorFragment.isFragment(value); + } + /** + * Returns true if %%value%% is an [[EventFragment]]. + */ + static isEvent(value) { + return EventFragment.isFragment(value); + } + /** + * Returns true if %%value%% is a [[FunctionFragment]]. + */ + static isFunction(value) { + return FunctionFragment.isFragment(value); + } + /** + * Returns true if %%value%% is a [[StructFragment]]. + */ + static isStruct(value) { + return StructFragment.isFragment(value); + } +}; +var NamedFragment = class extends Fragment { + /** + * The name of the fragment. + */ + name; + /** + * @private + */ + constructor(guard, type, name, inputs) { + super(guard, type, inputs); + assertArgument(typeof name === "string" && name.match(regexId), "invalid identifier", "name", name); + inputs = Object.freeze(inputs.slice()); + defineProperties(this, { name }); + } +}; +function joinParams(format, params) { + return "(" + params.map((p) => p.format(format)).join(format === "full" ? ", " : ",") + ")"; +} +var ErrorFragment = class _ErrorFragment extends NamedFragment { + /** + * @private + */ + constructor(guard, name, inputs) { + super(guard, "error", name, inputs); + Object.defineProperty(this, internal, { value: ErrorFragmentInternal }); + } + /** + * The Custom Error selector. + */ + get selector() { + return id(this.format("sighash")).substring(0, 10); + } + /** + * Returns a string representation of this fragment as %%format%%. + */ + format(format) { + if (format == null) { + format = "sighash"; + } + if (format === "json") { + return JSON.stringify({ + type: "error", + name: this.name, + inputs: this.inputs.map((input) => JSON.parse(input.format(format))) + }); + } + const result = []; + if (format !== "sighash") { + result.push("error"); + } + result.push(this.name + joinParams(format, this.inputs)); + return result.join(" "); + } + /** + * Returns a new **ErrorFragment** for %%obj%%. + */ + static from(obj) { + if (_ErrorFragment.isFragment(obj)) { + return obj; + } + if (typeof obj === "string") { + return _ErrorFragment.from(lex(obj)); + } else if (obj instanceof TokenString) { + const name = consumeName("error", obj); + const inputs = consumeParams(obj); + consumeEoi(obj); + return new _ErrorFragment(_guard2, name, inputs); + } + return new _ErrorFragment(_guard2, obj.name, obj.inputs ? obj.inputs.map(ParamType.from) : []); + } + /** + * Returns ``true`` and provides a type guard if %%value%% is an + * **ErrorFragment**. + */ + static isFragment(value) { + return value && value[internal] === ErrorFragmentInternal; + } +}; +var EventFragment = class _EventFragment extends NamedFragment { + /** + * Whether this event is anonymous. + */ + anonymous; + /** + * @private + */ + constructor(guard, name, inputs, anonymous) { + super(guard, "event", name, inputs); + Object.defineProperty(this, internal, { value: EventFragmentInternal }); + defineProperties(this, { anonymous }); + } + /** + * The Event topic hash. + */ + get topicHash() { + return id(this.format("sighash")); + } + /** + * Returns a string representation of this event as %%format%%. + */ + format(format) { + if (format == null) { + format = "sighash"; + } + if (format === "json") { + return JSON.stringify({ + type: "event", + anonymous: this.anonymous, + name: this.name, + inputs: this.inputs.map((i) => JSON.parse(i.format(format))) + }); + } + const result = []; + if (format !== "sighash") { + result.push("event"); + } + result.push(this.name + joinParams(format, this.inputs)); + if (format !== "sighash" && this.anonymous) { + result.push("anonymous"); + } + return result.join(" "); + } + /** + * Return the topic hash for an event with %%name%% and %%params%%. + */ + static getTopicHash(name, params) { + params = (params || []).map((p) => ParamType.from(p)); + const fragment = new _EventFragment(_guard2, name, params, false); + return fragment.topicHash; + } + /** + * Returns a new **EventFragment** for %%obj%%. + */ + static from(obj) { + if (_EventFragment.isFragment(obj)) { + return obj; + } + if (typeof obj === "string") { + try { + return _EventFragment.from(lex(obj)); + } catch (error) { + assertArgument(false, "invalid event fragment", "obj", obj); + } + } else if (obj instanceof TokenString) { + const name = consumeName("event", obj); + const inputs = consumeParams(obj, true); + const anonymous = !!consumeKeywords(obj, setify(["anonymous"])).has("anonymous"); + consumeEoi(obj); + return new _EventFragment(_guard2, name, inputs, anonymous); + } + return new _EventFragment(_guard2, obj.name, obj.inputs ? obj.inputs.map((p) => ParamType.from(p, true)) : [], !!obj.anonymous); + } + /** + * Returns ``true`` and provides a type guard if %%value%% is an + * **EventFragment**. + */ + static isFragment(value) { + return value && value[internal] === EventFragmentInternal; + } +}; +var ConstructorFragment = class _ConstructorFragment extends Fragment { + /** + * Whether the constructor can receive an endowment. + */ + payable; + /** + * The recommended gas limit for deployment or ``null``. + */ + gas; + /** + * @private + */ + constructor(guard, type, inputs, payable, gas) { + super(guard, type, inputs); + Object.defineProperty(this, internal, { value: ConstructorFragmentInternal }); + defineProperties(this, { payable, gas }); + } + /** + * Returns a string representation of this constructor as %%format%%. + */ + format(format) { + assert(format != null && format !== "sighash", "cannot format a constructor for sighash", "UNSUPPORTED_OPERATION", { operation: "format(sighash)" }); + if (format === "json") { + return JSON.stringify({ + type: "constructor", + stateMutability: this.payable ? "payable" : "undefined", + payable: this.payable, + gas: this.gas != null ? this.gas : void 0, + inputs: this.inputs.map((i) => JSON.parse(i.format(format))) + }); + } + const result = [`constructor${joinParams(format, this.inputs)}`]; + if (this.payable) { + result.push("payable"); + } + if (this.gas != null) { + result.push(`@${this.gas.toString()}`); + } + return result.join(" "); + } + /** + * Returns a new **ConstructorFragment** for %%obj%%. + */ + static from(obj) { + if (_ConstructorFragment.isFragment(obj)) { + return obj; + } + if (typeof obj === "string") { + try { + return _ConstructorFragment.from(lex(obj)); + } catch (error) { + assertArgument(false, "invalid constuctor fragment", "obj", obj); + } + } else if (obj instanceof TokenString) { + consumeKeywords(obj, setify(["constructor"])); + const inputs = consumeParams(obj); + const payable = !!consumeKeywords(obj, KwVisibDeploy).has("payable"); + const gas = consumeGas(obj); + consumeEoi(obj); + return new _ConstructorFragment(_guard2, "constructor", inputs, payable, gas); + } + return new _ConstructorFragment(_guard2, "constructor", obj.inputs ? obj.inputs.map(ParamType.from) : [], !!obj.payable, obj.gas != null ? obj.gas : null); + } + /** + * Returns ``true`` and provides a type guard if %%value%% is a + * **ConstructorFragment**. + */ + static isFragment(value) { + return value && value[internal] === ConstructorFragmentInternal; + } +}; +var FallbackFragment = class _FallbackFragment extends Fragment { + /** + * If the function can be sent value during invocation. + */ + payable; + constructor(guard, inputs, payable) { + super(guard, "fallback", inputs); + Object.defineProperty(this, internal, { value: FallbackFragmentInternal }); + defineProperties(this, { payable }); + } + /** + * Returns a string representation of this fallback as %%format%%. + */ + format(format) { + const type = this.inputs.length === 0 ? "receive" : "fallback"; + if (format === "json") { + const stateMutability = this.payable ? "payable" : "nonpayable"; + return JSON.stringify({ type, stateMutability }); + } + return `${type}()${this.payable ? " payable" : ""}`; + } + /** + * Returns a new **FallbackFragment** for %%obj%%. + */ + static from(obj) { + if (_FallbackFragment.isFragment(obj)) { + return obj; + } + if (typeof obj === "string") { + try { + return _FallbackFragment.from(lex(obj)); + } catch (error) { + assertArgument(false, "invalid fallback fragment", "obj", obj); + } + } else if (obj instanceof TokenString) { + const errorObj = obj.toString(); + const topIsValid = obj.peekKeyword(setify(["fallback", "receive"])); + assertArgument(topIsValid, "type must be fallback or receive", "obj", errorObj); + const type = obj.popKeyword(setify(["fallback", "receive"])); + if (type === "receive") { + const inputs2 = consumeParams(obj); + assertArgument(inputs2.length === 0, `receive cannot have arguments`, "obj.inputs", inputs2); + consumeKeywords(obj, setify(["payable"])); + consumeEoi(obj); + return new _FallbackFragment(_guard2, [], true); + } + let inputs = consumeParams(obj); + if (inputs.length) { + assertArgument(inputs.length === 1 && inputs[0].type === "bytes", "invalid fallback inputs", "obj.inputs", inputs.map((i) => i.format("minimal")).join(", ")); + } else { + inputs = [ParamType.from("bytes")]; + } + const mutability = consumeMutability(obj); + assertArgument(mutability === "nonpayable" || mutability === "payable", "fallback cannot be constants", "obj.stateMutability", mutability); + if (consumeKeywords(obj, setify(["returns"])).has("returns")) { + const outputs = consumeParams(obj); + assertArgument(outputs.length === 1 && outputs[0].type === "bytes", "invalid fallback outputs", "obj.outputs", outputs.map((i) => i.format("minimal")).join(", ")); + } + consumeEoi(obj); + return new _FallbackFragment(_guard2, inputs, mutability === "payable"); + } + if (obj.type === "receive") { + return new _FallbackFragment(_guard2, [], true); + } + if (obj.type === "fallback") { + const inputs = [ParamType.from("bytes")]; + const payable = obj.stateMutability === "payable"; + return new _FallbackFragment(_guard2, inputs, payable); + } + assertArgument(false, "invalid fallback description", "obj", obj); + } + /** + * Returns ``true`` and provides a type guard if %%value%% is a + * **FallbackFragment**. + */ + static isFragment(value) { + return value && value[internal] === FallbackFragmentInternal; + } +}; +var FunctionFragment = class _FunctionFragment extends NamedFragment { + /** + * If the function is constant (e.g. ``pure`` or ``view`` functions). + */ + constant; + /** + * The returned types for the result of calling this function. + */ + outputs; + /** + * The state mutability (e.g. ``payable``, ``nonpayable``, ``view`` + * or ``pure``) + */ + stateMutability; + /** + * If the function can be sent value during invocation. + */ + payable; + /** + * The recommended gas limit to send when calling this function. + */ + gas; + /** + * @private + */ + constructor(guard, name, stateMutability, inputs, outputs, gas) { + super(guard, "function", name, inputs); + Object.defineProperty(this, internal, { value: FunctionFragmentInternal }); + outputs = Object.freeze(outputs.slice()); + const constant = stateMutability === "view" || stateMutability === "pure"; + const payable = stateMutability === "payable"; + defineProperties(this, { constant, gas, outputs, payable, stateMutability }); + } + /** + * The Function selector. + */ + get selector() { + return id(this.format("sighash")).substring(0, 10); + } + /** + * Returns a string representation of this function as %%format%%. + */ + format(format) { + if (format == null) { + format = "sighash"; + } + if (format === "json") { + return JSON.stringify({ + type: "function", + name: this.name, + constant: this.constant, + stateMutability: this.stateMutability !== "nonpayable" ? this.stateMutability : void 0, + payable: this.payable, + gas: this.gas != null ? this.gas : void 0, + inputs: this.inputs.map((i) => JSON.parse(i.format(format))), + outputs: this.outputs.map((o) => JSON.parse(o.format(format))) + }); + } + const result = []; + if (format !== "sighash") { + result.push("function"); + } + result.push(this.name + joinParams(format, this.inputs)); + if (format !== "sighash") { + if (this.stateMutability !== "nonpayable") { + result.push(this.stateMutability); + } + if (this.outputs && this.outputs.length) { + result.push("returns"); + result.push(joinParams(format, this.outputs)); + } + if (this.gas != null) { + result.push(`@${this.gas.toString()}`); + } + } + return result.join(" "); + } + /** + * Return the selector for a function with %%name%% and %%params%%. + */ + static getSelector(name, params) { + params = (params || []).map((p) => ParamType.from(p)); + const fragment = new _FunctionFragment(_guard2, name, "view", params, [], null); + return fragment.selector; + } + /** + * Returns a new **FunctionFragment** for %%obj%%. + */ + static from(obj) { + if (_FunctionFragment.isFragment(obj)) { + return obj; + } + if (typeof obj === "string") { + try { + return _FunctionFragment.from(lex(obj)); + } catch (error) { + assertArgument(false, "invalid function fragment", "obj", obj); + } + } else if (obj instanceof TokenString) { + const name = consumeName("function", obj); + const inputs = consumeParams(obj); + const mutability = consumeMutability(obj); + let outputs = []; + if (consumeKeywords(obj, setify(["returns"])).has("returns")) { + outputs = consumeParams(obj); + } + const gas = consumeGas(obj); + consumeEoi(obj); + return new _FunctionFragment(_guard2, name, mutability, inputs, outputs, gas); + } + let stateMutability = obj.stateMutability; + if (stateMutability == null) { + stateMutability = "payable"; + if (typeof obj.constant === "boolean") { + stateMutability = "view"; + if (!obj.constant) { + stateMutability = "payable"; + if (typeof obj.payable === "boolean" && !obj.payable) { + stateMutability = "nonpayable"; + } + } + } else if (typeof obj.payable === "boolean" && !obj.payable) { + stateMutability = "nonpayable"; + } + } + return new _FunctionFragment(_guard2, obj.name, stateMutability, obj.inputs ? obj.inputs.map(ParamType.from) : [], obj.outputs ? obj.outputs.map(ParamType.from) : [], obj.gas != null ? obj.gas : null); + } + /** + * Returns ``true`` and provides a type guard if %%value%% is a + * **FunctionFragment**. + */ + static isFragment(value) { + return value && value[internal] === FunctionFragmentInternal; + } +}; +var StructFragment = class _StructFragment extends NamedFragment { + /** + * @private + */ + constructor(guard, name, inputs) { + super(guard, "struct", name, inputs); + Object.defineProperty(this, internal, { value: StructFragmentInternal }); + } + /** + * Returns a string representation of this struct as %%format%%. + */ + format() { + throw new Error("@TODO"); + } + /** + * Returns a new **StructFragment** for %%obj%%. + */ + static from(obj) { + if (typeof obj === "string") { + try { + return _StructFragment.from(lex(obj)); + } catch (error) { + assertArgument(false, "invalid struct fragment", "obj", obj); + } + } else if (obj instanceof TokenString) { + const name = consumeName("struct", obj); + const inputs = consumeParams(obj); + consumeEoi(obj); + return new _StructFragment(_guard2, name, inputs); + } + return new _StructFragment(_guard2, obj.name, obj.inputs ? obj.inputs.map(ParamType.from) : []); + } + // @TODO: fix this return type + /** + * Returns ``true`` and provides a type guard if %%value%% is a + * **StructFragment**. + */ + static isFragment(value) { + return value && value[internal] === StructFragmentInternal; + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/abi-coder.js +var PanicReasons = /* @__PURE__ */ new Map(); +PanicReasons.set(0, "GENERIC_PANIC"); +PanicReasons.set(1, "ASSERT_FALSE"); +PanicReasons.set(17, "OVERFLOW"); +PanicReasons.set(18, "DIVIDE_BY_ZERO"); +PanicReasons.set(33, "ENUM_RANGE_ERROR"); +PanicReasons.set(34, "BAD_STORAGE_DATA"); +PanicReasons.set(49, "STACK_UNDERFLOW"); +PanicReasons.set(50, "ARRAY_RANGE_ERROR"); +PanicReasons.set(65, "OUT_OF_MEMORY"); +PanicReasons.set(81, "UNINITIALIZED_FUNCTION_CALL"); +var paramTypeBytes = new RegExp(/^bytes([0-9]*)$/); +var paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/); +var defaultCoder = null; +var defaultMaxInflation = 1024; +function getBuiltinCallException(action, tx, data, abiCoder) { + let message = "missing revert data"; + let reason = null; + const invocation = null; + let revert = null; + if (data) { + message = "execution reverted"; + const bytes2 = getBytes(data); + data = hexlify(data); + if (bytes2.length === 0) { + message += " (no data present; likely require(false) occurred"; + reason = "require(false)"; + } else if (bytes2.length % 32 !== 4) { + message += " (could not decode reason; invalid data length)"; + } else if (hexlify(bytes2.slice(0, 4)) === "0x08c379a0") { + try { + reason = abiCoder.decode(["string"], bytes2.slice(4))[0]; + revert = { + signature: "Error(string)", + name: "Error", + args: [reason] + }; + message += `: ${JSON.stringify(reason)}`; + } catch (error) { + message += " (could not decode reason; invalid string data)"; + } + } else if (hexlify(bytes2.slice(0, 4)) === "0x4e487b71") { + try { + const code = Number(abiCoder.decode(["uint256"], bytes2.slice(4))[0]); + revert = { + signature: "Panic(uint256)", + name: "Panic", + args: [code] + }; + reason = `Panic due to ${PanicReasons.get(code) || "UNKNOWN"}(${code})`; + message += `: ${reason}`; + } catch (error) { + message += " (could not decode panic code)"; + } + } else { + message += " (unknown custom error)"; + } + } + const transaction = { + to: tx.to ? getAddress(tx.to) : null, + data: tx.data || "0x" + }; + if (tx.from) { + transaction.from = getAddress(tx.from); + } + return makeError(message, "CALL_EXCEPTION", { + action, + data, + reason, + transaction, + invocation, + revert + }); +} +var AbiCoder = class _AbiCoder { + #getCoder(param) { + if (param.isArray()) { + return new ArrayCoder(this.#getCoder(param.arrayChildren), param.arrayLength, param.name); + } + if (param.isTuple()) { + return new TupleCoder(param.components.map((c) => this.#getCoder(c)), param.name); + } + switch (param.baseType) { + case "address": + return new AddressCoder(param.name); + case "bool": + return new BooleanCoder(param.name); + case "string": + return new StringCoder(param.name); + case "bytes": + return new BytesCoder(param.name); + case "": + return new NullCoder(param.name); + } + let match = param.type.match(paramTypeNumber); + if (match) { + let size = parseInt(match[2] || "256"); + assertArgument(size !== 0 && size <= 256 && size % 8 === 0, "invalid " + match[1] + " bit length", "param", param); + return new NumberCoder(size / 8, match[1] === "int", param.name); + } + match = param.type.match(paramTypeBytes); + if (match) { + let size = parseInt(match[1]); + assertArgument(size !== 0 && size <= 32, "invalid bytes length", "param", param); + return new FixedBytesCoder(size, param.name); + } + assertArgument(false, "invalid type", "type", param.type); + } + /** + * Get the default values for the given %%types%%. + * + * For example, a ``uint`` is by default ``0`` and ``bool`` + * is by default ``false``. + */ + getDefaultValue(types) { + const coders = types.map((type) => this.#getCoder(ParamType.from(type))); + const coder = new TupleCoder(coders, "_"); + return coder.defaultValue(); + } + /** + * Encode the %%values%% as the %%types%% into ABI data. + * + * @returns DataHexstring + */ + encode(types, values) { + assertArgumentCount(values.length, types.length, "types/values length mismatch"); + const coders = types.map((type) => this.#getCoder(ParamType.from(type))); + const coder = new TupleCoder(coders, "_"); + const writer = new Writer(); + coder.encode(writer, values); + return writer.data; + } + /** + * Decode the ABI %%data%% as the %%types%% into values. + * + * If %%loose%% decoding is enabled, then strict padding is + * not enforced. Some older versions of Solidity incorrectly + * padded event data emitted from ``external`` functions. + */ + decode(types, data, loose) { + const coders = types.map((type) => this.#getCoder(ParamType.from(type))); + const coder = new TupleCoder(coders, "_"); + return coder.decode(new Reader(data, loose, defaultMaxInflation)); + } + static _setDefaultMaxInflation(value) { + assertArgument(typeof value === "number" && Number.isInteger(value), "invalid defaultMaxInflation factor", "value", value); + defaultMaxInflation = value; + } + /** + * Returns the shared singleton instance of a default [[AbiCoder]]. + * + * On the first call, the instance is created internally. + */ + static defaultAbiCoder() { + if (defaultCoder == null) { + defaultCoder = new _AbiCoder(); + } + return defaultCoder; + } + /** + * Returns an ethers-compatible [[CallExceptionError]] Error for the given + * result %%data%% for the [[CallExceptionAction]] %%action%% against + * the Transaction %%tx%%. + */ + static getBuiltinCallException(action, tx, data) { + return getBuiltinCallException(action, tx, data, _AbiCoder.defaultAbiCoder()); + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/interface.js +var LogDescription = class { + /** + * The matching fragment for the ``topic0``. + */ + fragment; + /** + * The name of the Event. + */ + name; + /** + * The full Event signature. + */ + signature; + /** + * The topic hash for the Event. + */ + topic; + /** + * The arguments passed into the Event with ``emit``. + */ + args; + /** + * @_ignore: + */ + constructor(fragment, topic, args) { + const name = fragment.name, signature = fragment.format(); + defineProperties(this, { + fragment, + name, + signature, + topic, + args + }); + } +}; +var TransactionDescription = class { + /** + * The matching fragment from the transaction ``data``. + */ + fragment; + /** + * The name of the Function from the transaction ``data``. + */ + name; + /** + * The arguments passed to the Function from the transaction ``data``. + */ + args; + /** + * The full Function signature from the transaction ``data``. + */ + signature; + /** + * The selector for the Function from the transaction ``data``. + */ + selector; + /** + * The ``value`` (in wei) from the transaction. + */ + value; + /** + * @_ignore: + */ + constructor(fragment, selector, args, value) { + const name = fragment.name, signature = fragment.format(); + defineProperties(this, { + fragment, + name, + args, + signature, + selector, + value + }); + } +}; +var ErrorDescription = class { + /** + * The matching fragment. + */ + fragment; + /** + * The name of the Error. + */ + name; + /** + * The arguments passed to the Error with ``revert``. + */ + args; + /** + * The full Error signature. + */ + signature; + /** + * The selector for the Error. + */ + selector; + /** + * @_ignore: + */ + constructor(fragment, selector, args) { + const name = fragment.name, signature = fragment.format(); + defineProperties(this, { + fragment, + name, + args, + signature, + selector + }); + } +}; +var Indexed = class { + /** + * The ``keccak256`` of the value logged. + */ + hash; + /** + * @_ignore: + */ + _isIndexed; + /** + * Returns ``true`` if %%value%% is an **Indexed**. + * + * This provides a Type Guard for property access. + */ + static isIndexed(value) { + return !!(value && value._isIndexed); + } + /** + * @_ignore: + */ + constructor(hash) { + defineProperties(this, { hash, _isIndexed: true }); + } +}; +var PanicReasons2 = { + "0": "generic panic", + "1": "assert(false)", + "17": "arithmetic overflow", + "18": "division or modulo by zero", + "33": "enum overflow", + "34": "invalid encoded storage byte array accessed", + "49": "out-of-bounds array access; popping on an empty array", + "50": "out-of-bounds access of an array or bytesN", + "65": "out of memory", + "81": "uninitialized function" +}; +var BuiltinErrors = { + "0x08c379a0": { + signature: "Error(string)", + name: "Error", + inputs: ["string"], + reason: (message) => { + return `reverted with reason string ${JSON.stringify(message)}`; + } + }, + "0x4e487b71": { + signature: "Panic(uint256)", + name: "Panic", + inputs: ["uint256"], + reason: (code) => { + let reason = "unknown panic code"; + if (code >= 0 && code <= 255 && PanicReasons2[code.toString()]) { + reason = PanicReasons2[code.toString()]; + } + return `reverted with panic code 0x${code.toString(16)} (${reason})`; + } + } +}; +var Interface = class _Interface { + /** + * All the Contract ABI members (i.e. methods, events, errors, etc). + */ + fragments; + /** + * The Contract constructor. + */ + deploy; + /** + * The Fallback method, if any. + */ + fallback; + /** + * If receiving ether is supported. + */ + receive; + #errors; + #events; + #functions; + // #structs: Map; + #abiCoder; + /** + * Create a new Interface for the %%fragments%%. + */ + constructor(fragments) { + let abi = []; + if (typeof fragments === "string") { + abi = JSON.parse(fragments); + } else { + abi = fragments; + } + this.#functions = /* @__PURE__ */ new Map(); + this.#errors = /* @__PURE__ */ new Map(); + this.#events = /* @__PURE__ */ new Map(); + const frags = []; + for (const a of abi) { + try { + frags.push(Fragment.from(a)); + } catch (error) { + console.log(`[Warning] Invalid Fragment ${JSON.stringify(a)}:`, error.message); + } + } + defineProperties(this, { + fragments: Object.freeze(frags) + }); + let fallback = null; + let receive = false; + this.#abiCoder = this.getAbiCoder(); + this.fragments.forEach((fragment, index) => { + let bucket; + switch (fragment.type) { + case "constructor": + if (this.deploy) { + console.log("duplicate definition - constructor"); + return; + } + defineProperties(this, { deploy: fragment }); + return; + case "fallback": + if (fragment.inputs.length === 0) { + receive = true; + } else { + assertArgument(!fallback || fragment.payable !== fallback.payable, "conflicting fallback fragments", `fragments[${index}]`, fragment); + fallback = fragment; + receive = fallback.payable; + } + return; + case "function": + bucket = this.#functions; + break; + case "event": + bucket = this.#events; + break; + case "error": + bucket = this.#errors; + break; + default: + return; + } + const signature = fragment.format(); + if (bucket.has(signature)) { + return; + } + bucket.set(signature, fragment); + }); + if (!this.deploy) { + defineProperties(this, { + deploy: ConstructorFragment.from("constructor()") + }); + } + defineProperties(this, { fallback, receive }); + } + /** + * Returns the entire Human-Readable ABI, as an array of + * signatures, optionally as %%minimal%% strings, which + * removes parameter names and unneceesary spaces. + */ + format(minimal) { + const format = minimal ? "minimal" : "full"; + const abi = this.fragments.map((f) => f.format(format)); + return abi; + } + /** + * Return the JSON-encoded ABI. This is the format Solidiy + * returns. + */ + formatJson() { + const abi = this.fragments.map((f) => f.format("json")); + return JSON.stringify(abi.map((j) => JSON.parse(j))); + } + /** + * The ABI coder that will be used to encode and decode binary + * data. + */ + getAbiCoder() { + return AbiCoder.defaultAbiCoder(); + } + // Find a function definition by any means necessary (unless it is ambiguous) + #getFunction(key, values, forceUnique) { + if (isHexString(key)) { + const selector = key.toLowerCase(); + for (const fragment of this.#functions.values()) { + if (selector === fragment.selector) { + return fragment; + } + } + return null; + } + if (key.indexOf("(") === -1) { + const matching = []; + for (const [name, fragment] of this.#functions) { + if (name.split( + "(" + /* fix:) */ + )[0] === key) { + matching.push(fragment); + } + } + if (values) { + const lastValue = values.length > 0 ? values[values.length - 1] : null; + let valueLength = values.length; + let allowOptions = true; + if (Typed.isTyped(lastValue) && lastValue.type === "overrides") { + allowOptions = false; + valueLength--; + } + for (let i = matching.length - 1; i >= 0; i--) { + const inputs = matching[i].inputs.length; + if (inputs !== valueLength && (!allowOptions || inputs !== valueLength - 1)) { + matching.splice(i, 1); + } + } + for (let i = matching.length - 1; i >= 0; i--) { + const inputs = matching[i].inputs; + for (let j = 0; j < values.length; j++) { + if (!Typed.isTyped(values[j])) { + continue; + } + if (j >= inputs.length) { + if (values[j].type === "overrides") { + continue; + } + matching.splice(i, 1); + break; + } + if (values[j].type !== inputs[j].baseType) { + matching.splice(i, 1); + break; + } + } + } + } + if (matching.length === 1 && values && values.length !== matching[0].inputs.length) { + const lastArg = values[values.length - 1]; + if (lastArg == null || Array.isArray(lastArg) || typeof lastArg !== "object") { + matching.splice(0, 1); + } + } + if (matching.length === 0) { + return null; + } + if (matching.length > 1 && forceUnique) { + const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", "); + assertArgument(false, `ambiguous function description (i.e. matches ${matchStr})`, "key", key); + } + return matching[0]; + } + const result = this.#functions.get(FunctionFragment.from(key).format()); + if (result) { + return result; + } + return null; + } + /** + * Get the function name for %%key%%, which may be a function selector, + * function name or function signature that belongs to the ABI. + */ + getFunctionName(key) { + const fragment = this.#getFunction(key, null, false); + assertArgument(fragment, "no matching function", "key", key); + return fragment.name; + } + /** + * Returns true if %%key%% (a function selector, function name or + * function signature) is present in the ABI. + * + * In the case of a function name, the name may be ambiguous, so + * accessing the [[FunctionFragment]] may require refinement. + */ + hasFunction(key) { + return !!this.#getFunction(key, null, false); + } + /** + * Get the [[FunctionFragment]] for %%key%%, which may be a function + * selector, function name or function signature that belongs to the ABI. + * + * If %%values%% is provided, it will use the Typed API to handle + * ambiguous cases where multiple functions match by name. + * + * If the %%key%% and %%values%% do not refine to a single function in + * the ABI, this will throw. + */ + getFunction(key, values) { + return this.#getFunction(key, values || null, true); + } + /** + * Iterate over all functions, calling %%callback%%, sorted by their name. + */ + forEachFunction(callback) { + const names = Array.from(this.#functions.keys()); + names.sort((a, b2) => a.localeCompare(b2)); + for (let i = 0; i < names.length; i++) { + const name = names[i]; + callback(this.#functions.get(name), i); + } + } + // Find an event definition by any means necessary (unless it is ambiguous) + #getEvent(key, values, forceUnique) { + if (isHexString(key)) { + const eventTopic = key.toLowerCase(); + for (const fragment of this.#events.values()) { + if (eventTopic === fragment.topicHash) { + return fragment; + } + } + return null; + } + if (key.indexOf("(") === -1) { + const matching = []; + for (const [name, fragment] of this.#events) { + if (name.split( + "(" + /* fix:) */ + )[0] === key) { + matching.push(fragment); + } + } + if (values) { + for (let i = matching.length - 1; i >= 0; i--) { + if (matching[i].inputs.length < values.length) { + matching.splice(i, 1); + } + } + for (let i = matching.length - 1; i >= 0; i--) { + const inputs = matching[i].inputs; + for (let j = 0; j < values.length; j++) { + if (!Typed.isTyped(values[j])) { + continue; + } + if (values[j].type !== inputs[j].baseType) { + matching.splice(i, 1); + break; + } + } + } + } + if (matching.length === 0) { + return null; + } + if (matching.length > 1 && forceUnique) { + const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", "); + assertArgument(false, `ambiguous event description (i.e. matches ${matchStr})`, "key", key); + } + return matching[0]; + } + const result = this.#events.get(EventFragment.from(key).format()); + if (result) { + return result; + } + return null; + } + /** + * Get the event name for %%key%%, which may be a topic hash, + * event name or event signature that belongs to the ABI. + */ + getEventName(key) { + const fragment = this.#getEvent(key, null, false); + assertArgument(fragment, "no matching event", "key", key); + return fragment.name; + } + /** + * Returns true if %%key%% (an event topic hash, event name or + * event signature) is present in the ABI. + * + * In the case of an event name, the name may be ambiguous, so + * accessing the [[EventFragment]] may require refinement. + */ + hasEvent(key) { + return !!this.#getEvent(key, null, false); + } + /** + * Get the [[EventFragment]] for %%key%%, which may be a topic hash, + * event name or event signature that belongs to the ABI. + * + * If %%values%% is provided, it will use the Typed API to handle + * ambiguous cases where multiple events match by name. + * + * If the %%key%% and %%values%% do not refine to a single event in + * the ABI, this will throw. + */ + getEvent(key, values) { + return this.#getEvent(key, values || null, true); + } + /** + * Iterate over all events, calling %%callback%%, sorted by their name. + */ + forEachEvent(callback) { + const names = Array.from(this.#events.keys()); + names.sort((a, b2) => a.localeCompare(b2)); + for (let i = 0; i < names.length; i++) { + const name = names[i]; + callback(this.#events.get(name), i); + } + } + /** + * Get the [[ErrorFragment]] for %%key%%, which may be an error + * selector, error name or error signature that belongs to the ABI. + * + * If %%values%% is provided, it will use the Typed API to handle + * ambiguous cases where multiple errors match by name. + * + * If the %%key%% and %%values%% do not refine to a single error in + * the ABI, this will throw. + */ + getError(key, values) { + if (isHexString(key)) { + const selector = key.toLowerCase(); + if (BuiltinErrors[selector]) { + return ErrorFragment.from(BuiltinErrors[selector].signature); + } + for (const fragment of this.#errors.values()) { + if (selector === fragment.selector) { + return fragment; + } + } + return null; + } + if (key.indexOf("(") === -1) { + const matching = []; + for (const [name, fragment] of this.#errors) { + if (name.split( + "(" + /* fix:) */ + )[0] === key) { + matching.push(fragment); + } + } + if (matching.length === 0) { + if (key === "Error") { + return ErrorFragment.from("error Error(string)"); + } + if (key === "Panic") { + return ErrorFragment.from("error Panic(uint256)"); + } + return null; + } else if (matching.length > 1) { + const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", "); + assertArgument(false, `ambiguous error description (i.e. ${matchStr})`, "name", key); + } + return matching[0]; + } + key = ErrorFragment.from(key).format(); + if (key === "Error(string)") { + return ErrorFragment.from("error Error(string)"); + } + if (key === "Panic(uint256)") { + return ErrorFragment.from("error Panic(uint256)"); + } + const result = this.#errors.get(key); + if (result) { + return result; + } + return null; + } + /** + * Iterate over all errors, calling %%callback%%, sorted by their name. + */ + forEachError(callback) { + const names = Array.from(this.#errors.keys()); + names.sort((a, b2) => a.localeCompare(b2)); + for (let i = 0; i < names.length; i++) { + const name = names[i]; + callback(this.#errors.get(name), i); + } + } + // Get the 4-byte selector used by Solidity to identify a function + /* + getSelector(fragment: ErrorFragment | FunctionFragment): string { + if (typeof(fragment) === "string") { + const matches: Array = [ ]; + + try { matches.push(this.getFunction(fragment)); } catch (error) { } + try { matches.push(this.getError(fragment)); } catch (_) { } + + if (matches.length === 0) { + logger.throwArgumentError("unknown fragment", "key", fragment); + } else if (matches.length > 1) { + logger.throwArgumentError("ambiguous fragment matches function and error", "key", fragment); + } + + fragment = matches[0]; + } + + return dataSlice(id(fragment.format()), 0, 4); + } + */ + // Get the 32-byte topic hash used by Solidity to identify an event + /* + getEventTopic(fragment: EventFragment): string { + //if (typeof(fragment) === "string") { fragment = this.getEvent(eventFragment); } + return id(fragment.format()); + } + */ + _decodeParams(params, data) { + return this.#abiCoder.decode(params, data); + } + _encodeParams(params, values) { + return this.#abiCoder.encode(params, values); + } + /** + * Encodes a ``tx.data`` object for deploying the Contract with + * the %%values%% as the constructor arguments. + */ + encodeDeploy(values) { + return this._encodeParams(this.deploy.inputs, values || []); + } + /** + * Decodes the result %%data%% (e.g. from an ``eth_call``) for the + * specified error (see [[getError]] for valid values for + * %%key%%). + * + * Most developers should prefer the [[parseCallResult]] method instead, + * which will automatically detect a ``CALL_EXCEPTION`` and throw the + * corresponding error. + */ + decodeErrorResult(fragment, data) { + if (typeof fragment === "string") { + const f = this.getError(fragment); + assertArgument(f, "unknown error", "fragment", fragment); + fragment = f; + } + assertArgument(dataSlice(data, 0, 4) === fragment.selector, `data signature does not match error ${fragment.name}.`, "data", data); + return this._decodeParams(fragment.inputs, dataSlice(data, 4)); + } + /** + * Encodes the transaction revert data for a call result that + * reverted from the the Contract with the sepcified %%error%% + * (see [[getError]] for valid values for %%fragment%%) with the %%values%%. + * + * This is generally not used by most developers, unless trying to mock + * a result from a Contract. + */ + encodeErrorResult(fragment, values) { + if (typeof fragment === "string") { + const f = this.getError(fragment); + assertArgument(f, "unknown error", "fragment", fragment); + fragment = f; + } + return concat([ + fragment.selector, + this._encodeParams(fragment.inputs, values || []) + ]); + } + /** + * Decodes the %%data%% from a transaction ``tx.data`` for + * the function specified (see [[getFunction]] for valid values + * for %%fragment%%). + * + * Most developers should prefer the [[parseTransaction]] method + * instead, which will automatically detect the fragment. + */ + decodeFunctionData(fragment, data) { + if (typeof fragment === "string") { + const f = this.getFunction(fragment); + assertArgument(f, "unknown function", "fragment", fragment); + fragment = f; + } + assertArgument(dataSlice(data, 0, 4) === fragment.selector, `data signature does not match function ${fragment.name}.`, "data", data); + return this._decodeParams(fragment.inputs, dataSlice(data, 4)); + } + /** + * Encodes the ``tx.data`` for a transaction that calls the function + * specified (see [[getFunction]] for valid values for %%fragment%%) with + * the %%values%%. + */ + encodeFunctionData(fragment, values) { + if (typeof fragment === "string") { + const f = this.getFunction(fragment); + assertArgument(f, "unknown function", "fragment", fragment); + fragment = f; + } + return concat([ + fragment.selector, + this._encodeParams(fragment.inputs, values || []) + ]); + } + /** + * Decodes the result %%data%% (e.g. from an ``eth_call``) for the + * specified function (see [[getFunction]] for valid values for + * %%key%%). + * + * Most developers should prefer the [[parseCallResult]] method instead, + * which will automatically detect a ``CALL_EXCEPTION`` and throw the + * corresponding error. + */ + decodeFunctionResult(fragment, data) { + if (typeof fragment === "string") { + const f = this.getFunction(fragment); + assertArgument(f, "unknown function", "fragment", fragment); + fragment = f; + } + let message = "invalid length for result data"; + const bytes2 = getBytesCopy(data); + if (bytes2.length % 32 === 0) { + try { + return this.#abiCoder.decode(fragment.outputs, bytes2); + } catch (error) { + message = "could not decode result data"; + } + } + assert(false, message, "BAD_DATA", { + value: hexlify(bytes2), + info: { method: fragment.name, signature: fragment.format() } + }); + } + makeError(_data, tx) { + const data = getBytes(_data, "data"); + const error = AbiCoder.getBuiltinCallException("call", tx, data); + const customPrefix = "execution reverted (unknown custom error)"; + if (error.message.startsWith(customPrefix)) { + const selector = hexlify(data.slice(0, 4)); + const ef = this.getError(selector); + if (ef) { + try { + const args = this.#abiCoder.decode(ef.inputs, data.slice(4)); + error.revert = { + name: ef.name, + signature: ef.format(), + args + }; + error.reason = error.revert.signature; + error.message = `execution reverted: ${error.reason}`; + } catch (e) { + error.message = `execution reverted (coult not decode custom error)`; + } + } + } + const parsed = this.parseTransaction(tx); + if (parsed) { + error.invocation = { + method: parsed.name, + signature: parsed.signature, + args: parsed.args + }; + } + return error; + } + /** + * Encodes the result data (e.g. from an ``eth_call``) for the + * specified function (see [[getFunction]] for valid values + * for %%fragment%%) with %%values%%. + * + * This is generally not used by most developers, unless trying to mock + * a result from a Contract. + */ + encodeFunctionResult(fragment, values) { + if (typeof fragment === "string") { + const f = this.getFunction(fragment); + assertArgument(f, "unknown function", "fragment", fragment); + fragment = f; + } + return hexlify(this.#abiCoder.encode(fragment.outputs, values || [])); + } + /* + spelunk(inputs: Array, values: ReadonlyArray, processfunc: (type: string, value: any) => Promise): Promise> { + const promises: Array> = [ ]; + const process = function(type: ParamType, value: any): any { + if (type.baseType === "array") { + return descend(type.child + } + if (type. === "address") { + } + }; + + const descend = function (inputs: Array, values: ReadonlyArray) { + if (inputs.length !== values.length) { throw new Error("length mismatch"); } + + }; + + const result: Array = [ ]; + values.forEach((value, index) => { + if (value == null) { + topics.push(null); + } else if (param.baseType === "array" || param.baseType === "tuple") { + logger.throwArgumentError("filtering with tuples or arrays not supported", ("contract." + param.name), value); + } else if (Array.isArray(value)) { + topics.push(value.map((value) => encodeTopic(param, value))); + } else { + topics.push(encodeTopic(param, value)); + } + }); + } + */ + // Create the filter for the event with search criteria (e.g. for eth_filterLog) + encodeFilterTopics(fragment, values) { + if (typeof fragment === "string") { + const f = this.getEvent(fragment); + assertArgument(f, "unknown event", "eventFragment", fragment); + fragment = f; + } + assert(values.length <= fragment.inputs.length, `too many arguments for ${fragment.format()}`, "UNEXPECTED_ARGUMENT", { count: values.length, expectedCount: fragment.inputs.length }); + const topics = []; + if (!fragment.anonymous) { + topics.push(fragment.topicHash); + } + const encodeTopic = (param, value) => { + if (param.type === "string") { + return id(value); + } else if (param.type === "bytes") { + return keccak256(hexlify(value)); + } + if (param.type === "bool" && typeof value === "boolean") { + value = value ? "0x01" : "0x00"; + } else if (param.type.match(/^u?int/)) { + value = toBeHex(value); + } else if (param.type.match(/^bytes/)) { + value = zeroPadBytes(value, 32); + } else if (param.type === "address") { + this.#abiCoder.encode(["address"], [value]); + } + return zeroPadValue(hexlify(value), 32); + }; + values.forEach((value, index) => { + const param = fragment.inputs[index]; + if (!param.indexed) { + assertArgument(value == null, "cannot filter non-indexed parameters; must be null", "contract." + param.name, value); + return; + } + if (value == null) { + topics.push(null); + } else if (param.baseType === "array" || param.baseType === "tuple") { + assertArgument(false, "filtering with tuples or arrays not supported", "contract." + param.name, value); + } else if (Array.isArray(value)) { + topics.push(value.map((value2) => encodeTopic(param, value2))); + } else { + topics.push(encodeTopic(param, value)); + } + }); + while (topics.length && topics[topics.length - 1] === null) { + topics.pop(); + } + return topics; + } + encodeEventLog(fragment, values) { + if (typeof fragment === "string") { + const f = this.getEvent(fragment); + assertArgument(f, "unknown event", "eventFragment", fragment); + fragment = f; + } + const topics = []; + const dataTypes = []; + const dataValues = []; + if (!fragment.anonymous) { + topics.push(fragment.topicHash); + } + assertArgument(values.length === fragment.inputs.length, "event arguments/values mismatch", "values", values); + fragment.inputs.forEach((param, index) => { + const value = values[index]; + if (param.indexed) { + if (param.type === "string") { + topics.push(id(value)); + } else if (param.type === "bytes") { + topics.push(keccak256(value)); + } else if (param.baseType === "tuple" || param.baseType === "array") { + throw new Error("not implemented"); + } else { + topics.push(this.#abiCoder.encode([param.type], [value])); + } + } else { + dataTypes.push(param); + dataValues.push(value); + } + }); + return { + data: this.#abiCoder.encode(dataTypes, dataValues), + topics + }; + } + // Decode a filter for the event and the search criteria + decodeEventLog(fragment, data, topics) { + if (typeof fragment === "string") { + const f = this.getEvent(fragment); + assertArgument(f, "unknown event", "eventFragment", fragment); + fragment = f; + } + if (topics != null && !fragment.anonymous) { + const eventTopic = fragment.topicHash; + assertArgument(isHexString(topics[0], 32) && topics[0].toLowerCase() === eventTopic, "fragment/topic mismatch", "topics[0]", topics[0]); + topics = topics.slice(1); + } + const indexed = []; + const nonIndexed = []; + const dynamic = []; + fragment.inputs.forEach((param, index) => { + if (param.indexed) { + if (param.type === "string" || param.type === "bytes" || param.baseType === "tuple" || param.baseType === "array") { + indexed.push(ParamType.from({ type: "bytes32", name: param.name })); + dynamic.push(true); + } else { + indexed.push(param); + dynamic.push(false); + } + } else { + nonIndexed.push(param); + dynamic.push(false); + } + }); + const resultIndexed = topics != null ? this.#abiCoder.decode(indexed, concat(topics)) : null; + const resultNonIndexed = this.#abiCoder.decode(nonIndexed, data, true); + const values = []; + const keys = []; + let nonIndexedIndex = 0, indexedIndex = 0; + fragment.inputs.forEach((param, index) => { + let value = null; + if (param.indexed) { + if (resultIndexed == null) { + value = new Indexed(null); + } else if (dynamic[index]) { + value = new Indexed(resultIndexed[indexedIndex++]); + } else { + try { + value = resultIndexed[indexedIndex++]; + } catch (error) { + value = error; + } + } + } else { + try { + value = resultNonIndexed[nonIndexedIndex++]; + } catch (error) { + value = error; + } + } + values.push(value); + keys.push(param.name || null); + }); + return Result.fromItems(values, keys); + } + /** + * Parses a transaction, finding the matching function and extracts + * the parameter values along with other useful function details. + * + * If the matching function cannot be found, return null. + */ + parseTransaction(tx) { + const data = getBytes(tx.data, "tx.data"); + const value = getBigInt(tx.value != null ? tx.value : 0, "tx.value"); + const fragment = this.getFunction(hexlify(data.slice(0, 4))); + if (!fragment) { + return null; + } + const args = this.#abiCoder.decode(fragment.inputs, data.slice(4)); + return new TransactionDescription(fragment, fragment.selector, args, value); + } + parseCallResult(data) { + throw new Error("@TODO"); + } + /** + * Parses a receipt log, finding the matching event and extracts + * the parameter values along with other useful event details. + * + * If the matching event cannot be found, returns null. + */ + parseLog(log) { + const fragment = this.getEvent(log.topics[0]); + if (!fragment || fragment.anonymous) { + return null; + } + return new LogDescription(fragment, fragment.topicHash, this.decodeEventLog(fragment, log.data, log.topics)); + } + /** + * Parses a revert data, finding the matching error and extracts + * the parameter values along with other useful error details. + * + * If the matching error cannot be found, returns null. + */ + parseError(data) { + const hexData = hexlify(data); + const fragment = this.getError(dataSlice(hexData, 0, 4)); + if (!fragment) { + return null; + } + const args = this.#abiCoder.decode(fragment.inputs, dataSlice(hexData, 4)); + return new ErrorDescription(fragment, fragment.selector, args); + } + /** + * Creates a new [[Interface]] from the ABI %%value%%. + * + * The %%value%% may be provided as an existing [[Interface]] object, + * a JSON-encoded ABI or any Human-Readable ABI format. + */ + static from(value) { + if (value instanceof _Interface) { + return value; + } + if (typeof value === "string") { + return new _Interface(JSON.parse(value)); + } + if (typeof value.formatJson === "function") { + return new _Interface(value.formatJson()); + } + if (typeof value.format === "function") { + return new _Interface(value.format("json")); + } + return new _Interface(value); + } +}; + +// packages/contracts/src/utils/abi-extractor.ts +function extractAbiMethods(networkCache, methodNames) { + const result = {}; + networkCache.data.forEach((contractGroup) => { + const contractName = contractGroup.name; + contractGroup.contracts.forEach((contract) => { + const { address_hash: address, ABI } = contract; + ABI.forEach((abiItem) => { + if (abiItem.type === "function" && methodNames.includes(abiItem.name)) { + try { + const iface = new Interface(ABI); + let functionFragment; + if (abiItem.name === "safeTransferFrom") { + functionFragment = iface.getFunction( + "safeTransferFrom(address,address,uint256)" + ); + } else { + functionFragment = iface.getFunction(abiItem.name); + } + const functionSignature = functionFragment?.format("full"); + result[abiItem.name] = { + contractName, + address, + // signature: functionSignature, + abi: abiItem + }; + } catch (error) { + console.warn( + `Failed to parse ABI item for method ${abiItem.name}:`, + error + ); + } + } + }); + }); + }); + return result; +} + +// packages/contracts/src/custom-network-signatures.ts +function getBaseDirectory(useScriptDirectory = false, callerPath) { + if (useScriptDirectory) { + if (callerPath) { + const callerDir = (0, import_path.dirname)((0, import_url.fileURLToPath)(callerPath)); + console.log("Using caller directory:", callerDir); + return callerDir; + } + if (typeof __filename !== "undefined") { + console.log("Using __dirname:", __dirname); + return __dirname; + } + const moduleDir = (0, import_path.dirname)((0, import_url.fileURLToPath)(__import_meta__.url)); + console.log("Using module directory:", moduleDir); + return moduleDir; + } + const cwd = process.cwd(); + console.log("Using current working directory:", cwd); + return cwd; +} +function resolvePath(relativePath, baseDir, forceRelative = false) { + if (import_path.default.isAbsolute(relativePath) && !forceRelative) { + return relativePath; + } + return import_path.default.resolve(baseDir, relativePath); +} +function convertToNetworkCache(rawJson, networkName) { + const contractGroups = Object.entries(rawJson).map( + ([contractName, info]) => ({ + name: contractName, + contracts: [ + { + network: networkName, + address_hash: info.address, + inserted_at: (/* @__PURE__ */ new Date()).toISOString(), + ABI: info.abi + } + ] + }) + ); + return { + data: contractGroups + }; +} +function generateAbiSignatures(networkData) { + const methodsByContract = /* @__PURE__ */ new Map(); + METHODS_TO_EXTRACT.forEach((methodString) => { + const [contractName, methodName] = methodString.split("."); + if (!methodsByContract.has(contractName)) { + methodsByContract.set(contractName, []); + } + methodsByContract.get(contractName).push(methodName); + }); + const signatures = {}; + networkData.data.forEach((contractGroup) => { + const contractName = contractGroup.name; + if (methodsByContract.has(contractName)) { + const methods = methodsByContract.get(contractName); + const contractMethods = extractAbiMethods(networkData, methods); + if (Object.keys(contractMethods).length > 0) { + const address = contractGroup.contracts[0].address_hash; + const events = contractGroup.contracts[0].ABI.filter( + (item) => item.type === "event" + ); + signatures[contractName] = { + address, + methods: Object.fromEntries( + Object.entries(contractMethods).map(([methodName, data]) => [ + methodName, + data.abi + ]) + ), + events + }; + } + } + }); + return signatures; +} +function buildSignaturesFromContext(options) { + const { + jsonFilePath, + networkName = "custom-network", + useScriptDirectory = false, + callerPath + } = options; + if (useScriptDirectory && !callerPath) { + throw new Error( + "callerPath (import.meta.url) is required when useScriptDirectory is true" + ); + } + const baseDirectory = getBaseDirectory(useScriptDirectory, callerPath); + const resolvedJsonPath = resolvePath(jsonFilePath, baseDirectory); + console.log(`\u{1F4DD} Processing custom network context: ${resolvedJsonPath}`); + const rawJsonData = JSON.parse(fs.readFileSync(resolvedJsonPath, "utf8")); + const jsonData = convertToNetworkCache(rawJsonData, networkName); + console.log("\u{1F4CA} Generating signatures..."); + const signatures = generateAbiSignatures(jsonData); + return { + signatures, + networkName, + resolvedJsonPath, + baseDirectory + }; +} +async function generateSignaturesFromContext(options) { + try { + const { + signatures, + networkName, + resolvedJsonPath, + baseDirectory + } = buildSignaturesFromContext(options); + const outputDir = options.outputDir ?? "./dist/signatures"; + const resolvedOutputDir = resolvePath(outputDir, baseDirectory, true); + if (!fs.existsSync(resolvedOutputDir)) { + fs.mkdirSync(resolvedOutputDir, { recursive: true }); + } + console.log(`\u{1F4C1} Output directory: ${resolvedOutputDir}`); + const outputPath = import_path.default.join(resolvedOutputDir, `${networkName}.js`); + const outputPathCjs = import_path.default.join(resolvedOutputDir, `${networkName}.cjs`); + const outputPathTs = import_path.default.join(resolvedOutputDir, `${networkName}.ts`); + fs.writeFileSync( + outputPathTs, + `/** + * Generated Contract Method Signatures for ${networkName} + * This file is auto-generated. DO NOT EDIT UNLESS YOU KNOW WHAT YOU'RE DOING. + */ + +export const signatures = ${JSON.stringify(signatures, null, 2)} as const; +export type Signatures = typeof signatures; +` + ); + fs.writeFileSync( + outputPath, + `/** + * Generated Contract Method Signatures for ${networkName} + * This file is auto-generated. DO NOT EDIT UNLESS YOU KNOW WHAT YOU'RE DOING. + */ + +export const signatures = ${JSON.stringify(signatures, null, 2)}; +` + ); + fs.writeFileSync( + outputPathCjs, + `/** + * Generated Contract Method Signatures for ${networkName} + * This file is auto-generated. DO NOT EDIT UNLESS YOU KNOW WHAT YOU'RE DOING. + */ + +const signatures = ${JSON.stringify(signatures, null, 2)}; + +module.exports = { + signatures +}; +` + ); + console.log(`\u2705 Signatures successfully generated and written to:`); + console.log(` - ${outputPath}`); + console.log(` - ${outputPathCjs}`); + console.log(` - ${outputPathTs}`); + } catch (error) { + console.error("\u274C Error processing network context:", error); + throw error; + } +} +var mainScriptPath = import_path.default.resolve(process.argv[1] || ""); +var currentScriptPath = (0, import_url.fileURLToPath)(__import_meta__.url); +if (mainScriptPath === currentScriptPath) { + const jsonFilePath = process.argv[2]; + const networkName = process.argv[3]; + if (!jsonFilePath) { + console.error("\u274C Please provide a path to the networkContext.json file"); + console.log( + "Usage: bun run ./src/custom-network-signatures.ts path/to/networkContext.json [custom-network-name]" + ); + process.exit(1); + } + generateSignaturesFromContext({ + jsonFilePath, + networkName, + useScriptDirectory: false + // Use current working directory for CLI usage + }).catch((error) => { + console.error( + "Error in CLI execution of custom-network-signatures:", + error + ); + process.exit(1); + }); +} +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = { + buildSignaturesFromContext, + generateSignaturesFromContext +}); +/*! Bundled license information: + +@noble/hashes/esm/utils.js: + (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *) +*/ diff --git a/packages/contracts/dist/custom-network-signatures.d.ts b/packages/contracts/dist/custom-network-signatures.d.ts new file mode 100644 index 000000000..cf9ab5caf --- /dev/null +++ b/packages/contracts/dist/custom-network-signatures.d.ts @@ -0,0 +1,57 @@ +/** + * Custom Network Context to Signatures Converter + * + * This script converts a custom networkContext.json file to exportable contract signatures. + * + * Usage as CLI: + * ``` + * bun run ./src/custom-network-signatures.ts ./customNetworkContext.json naga-develop + * ``` + * + * Usage as module: + * ```typescript + * import { generateSignaturesFromContext } from '@lit-protocol/contracts/custom-network-signatures'; + * await generateSignaturesFromContext({ + * jsonFilePath: './customNetworkContext.json', + * networkName: 'my-network', + * outputDir: './', // Will output in the same directory as the script + * useScriptDirectory: true, // Set to true to use calling script's directory as base + * callerPath: import.meta.url // Required when useScriptDirectory is true + * }); + * ``` + */ +import type { NetworkCache } from './types/contracts'; +export interface GenerateSignaturesOptions { + jsonFilePath: string; + networkName?: string; + outputDir?: string; + useScriptDirectory?: boolean; + callerPath?: string; +} +export interface BuildSignaturesFromContextOptions extends Omit { +} +export interface BuildSignaturesFromContextResult { + signatures: GeneratedSignatures; + networkName: string; + resolvedJsonPath: string; + baseDirectory: string; +} +/** + * Generates ABI signatures in the standard format for Lit Protocol + * @param networkData - The network cache object + * @returns Signatures object with contract-organized structure + */ +declare function generateAbiSignatures(networkData: NetworkCache): Record; + events: any[]; +}>; +export type GeneratedSignatures = ReturnType; +export declare function buildSignaturesFromContext(options: BuildSignaturesFromContextOptions): BuildSignaturesFromContextResult; +/** + * Generates signature files from a network context JSON file + * @param options - Configuration options + * @returns Promise that resolves when files are written + */ +export declare function generateSignaturesFromContext(options: GenerateSignaturesOptions): Promise; +export {}; diff --git a/packages/contracts/dist/custom-network-signatures.js b/packages/contracts/dist/custom-network-signatures.js new file mode 100644 index 000000000..fdb14831b --- /dev/null +++ b/packages/contracts/dist/custom-network-signatures.js @@ -0,0 +1,5229 @@ +// packages/contracts/src/custom-network-signatures.ts +import * as fs from "fs"; +import path, { dirname } from "path"; +import { fileURLToPath } from "url"; + +// packages/contracts/src/config/methods.ts +var METHODS_TO_EXTRACT = [ + // Permissions Read: + "PKPPermissions.getPermittedActions", + "PKPPermissions.getPermittedAddresses", + "PKPPermissions.isPermittedAction", + "PKPPermissions.isPermittedAddress", + "PKPPermissions.getPermittedAuthMethods", + "PKPPermissions.getPermittedAuthMethodScopes", + // Permissions Write: + "PKPPermissions.addPermittedAction", + "PKPPermissions.addPermittedAddress", + "PKPPermissions.addPermittedAuthMethodScope", + "PKPPermissions.addPermittedAuthMethod", + "PKPPermissions.removePermittedAction", + "PKPPermissions.removePermittedAddress", + "PKPPermissions.removePermittedAuthMethod", + "PKPPermissions.removePermittedAuthMethodScope", + "PKPPermissions.getTokenIdsForAuthMethod", + // PKP Read: + "PKPNFT.tokenOfOwnerByIndex", + "PKPNFT.mintCost", + // PKP Write: + "PKPNFT.safeTransferFrom", + "PKPNFT.mintNext", + "PKPNFT.claimAndMint", + "PKPHelper.claimAndMintNextAndAddAuthMethodsWithTypes", + "PKPHelper.mintNextAndAddAuthMethods", + // Staking: + "Staking.getActiveUnkickedValidatorStructsAndCounts", + // PriceFeed: + "PriceFeed.getNodesForRequest", + "PubkeyRouter.deriveEthAddressFromPubkey", + "PubkeyRouter.ethAddressToPkpId", + "PubkeyRouter.getPubkey", + "PubkeyRouter.getEthAddress", + // Ledger: + "Ledger.deposit", + "Ledger.depositForUser", + "Ledger.balance", + "Ledger.stableBalance", + "Ledger.requestWithdraw", + "Ledger.latestWithdrawRequest", + "Ledger.userWithdrawDelay", + "Ledger.withdraw", + // Payment Delegation: + "PaymentDelegation.getPayersAndRestrictions", + "PaymentDelegation.getUsers", + "PaymentDelegation.getRestriction", + "PaymentDelegation.getPayers", + "PaymentDelegation.delegatePayments", + "PaymentDelegation.undelegatePayments", + "PaymentDelegation.delegatePaymentsBatch", + "PaymentDelegation.undelegatePaymentsBatch", + "PaymentDelegation.setRestriction" +]; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/_version.js +var version = "6.15.0"; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/utils/properties.js +function checkType(value, type, name) { + const types = type.split("|").map((t) => t.trim()); + for (let i = 0; i < types.length; i++) { + switch (type) { + case "any": + return; + case "bigint": + case "boolean": + case "number": + case "string": + if (typeof value === type) { + return; + } + } + } + const error = new Error(`invalid value for type ${type}`); + error.code = "INVALID_ARGUMENT"; + error.argument = `value.${name}`; + error.value = value; + throw error; +} +function defineProperties(target, values, types) { + for (let key in values) { + let value = values[key]; + const type = types ? types[key] : null; + if (type) { + checkType(value, type, key); + } + Object.defineProperty(target, key, { enumerable: true, value, writable: false }); + } +} + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/utils/errors.js +function stringify(value, seen) { + if (value == null) { + return "null"; + } + if (seen == null) { + seen = /* @__PURE__ */ new Set(); + } + if (typeof value === "object") { + if (seen.has(value)) { + return "[Circular]"; + } + seen.add(value); + } + if (Array.isArray(value)) { + return "[ " + value.map((v) => stringify(v, seen)).join(", ") + " ]"; + } + if (value instanceof Uint8Array) { + const HEX = "0123456789abcdef"; + let result = "0x"; + for (let i = 0; i < value.length; i++) { + result += HEX[value[i] >> 4]; + result += HEX[value[i] & 15]; + } + return result; + } + if (typeof value === "object" && typeof value.toJSON === "function") { + return stringify(value.toJSON(), seen); + } + switch (typeof value) { + case "boolean": + case "number": + case "symbol": + return value.toString(); + case "bigint": + return BigInt(value).toString(); + case "string": + return JSON.stringify(value); + case "object": { + const keys = Object.keys(value); + keys.sort(); + return "{ " + keys.map((k) => `${stringify(k, seen)}: ${stringify(value[k], seen)}`).join(", ") + " }"; + } + } + return `[ COULD NOT SERIALIZE ]`; +} +function isError(error, code) { + return error && error.code === code; +} +function makeError(message, code, info) { + let shortMessage = message; + { + const details = []; + if (info) { + if ("message" in info || "code" in info || "name" in info) { + throw new Error(`value will overwrite populated values: ${stringify(info)}`); + } + for (const key in info) { + if (key === "shortMessage") { + continue; + } + const value = info[key]; + details.push(key + "=" + stringify(value)); + } + } + details.push(`code=${code}`); + details.push(`version=${version}`); + if (details.length) { + message += " (" + details.join(", ") + ")"; + } + } + let error; + switch (code) { + case "INVALID_ARGUMENT": + error = new TypeError(message); + break; + case "NUMERIC_FAULT": + case "BUFFER_OVERRUN": + error = new RangeError(message); + break; + default: + error = new Error(message); + } + defineProperties(error, { code }); + if (info) { + Object.assign(error, info); + } + if (error.shortMessage == null) { + defineProperties(error, { shortMessage }); + } + return error; +} +function assert(check, message, code, info) { + if (!check) { + throw makeError(message, code, info); + } +} +function assertArgument(check, message, name, value) { + assert(check, message, "INVALID_ARGUMENT", { argument: name, value }); +} +function assertArgumentCount(count, expectedCount, message) { + if (message == null) { + message = ""; + } + if (message) { + message = ": " + message; + } + assert(count >= expectedCount, "missing argument" + message, "MISSING_ARGUMENT", { + count, + expectedCount + }); + assert(count <= expectedCount, "too many arguments" + message, "UNEXPECTED_ARGUMENT", { + count, + expectedCount + }); +} +var _normalizeForms = ["NFD", "NFC", "NFKD", "NFKC"].reduce((accum, form) => { + try { + if ("test".normalize(form) !== "test") { + throw new Error("bad"); + } + ; + if (form === "NFD") { + const check = String.fromCharCode(233).normalize("NFD"); + const expected = String.fromCharCode(101, 769); + if (check !== expected) { + throw new Error("broken"); + } + } + accum.push(form); + } catch (error) { + } + return accum; +}, []); +function assertNormalize(form) { + assert(_normalizeForms.indexOf(form) >= 0, "platform missing String.prototype.normalize", "UNSUPPORTED_OPERATION", { + operation: "String.prototype.normalize", + info: { form } + }); +} +function assertPrivate(givenGuard, guard, className) { + if (className == null) { + className = ""; + } + if (givenGuard !== guard) { + let method = className, operation = "new"; + if (className) { + method += "."; + operation += " " + className; + } + assert(false, `private constructor; use ${method}from* methods`, "UNSUPPORTED_OPERATION", { + operation + }); + } +} + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/utils/data.js +function _getBytes(value, name, copy) { + if (value instanceof Uint8Array) { + if (copy) { + return new Uint8Array(value); + } + return value; + } + if (typeof value === "string" && value.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)) { + const result = new Uint8Array((value.length - 2) / 2); + let offset = 2; + for (let i = 0; i < result.length; i++) { + result[i] = parseInt(value.substring(offset, offset + 2), 16); + offset += 2; + } + return result; + } + assertArgument(false, "invalid BytesLike value", name || "value", value); +} +function getBytes(value, name) { + return _getBytes(value, name, false); +} +function getBytesCopy(value, name) { + return _getBytes(value, name, true); +} +function isHexString(value, length) { + if (typeof value !== "string" || !value.match(/^0x[0-9A-Fa-f]*$/)) { + return false; + } + if (typeof length === "number" && value.length !== 2 + 2 * length) { + return false; + } + if (length === true && value.length % 2 !== 0) { + return false; + } + return true; +} +var HexCharacters = "0123456789abcdef"; +function hexlify(data) { + const bytes2 = getBytes(data); + let result = "0x"; + for (let i = 0; i < bytes2.length; i++) { + const v = bytes2[i]; + result += HexCharacters[(v & 240) >> 4] + HexCharacters[v & 15]; + } + return result; +} +function concat(datas) { + return "0x" + datas.map((d) => hexlify(d).substring(2)).join(""); +} +function dataSlice(data, start, end) { + const bytes2 = getBytes(data); + if (end != null && end > bytes2.length) { + assert(false, "cannot slice beyond data bounds", "BUFFER_OVERRUN", { + buffer: bytes2, + length: bytes2.length, + offset: end + }); + } + return hexlify(bytes2.slice(start == null ? 0 : start, end == null ? bytes2.length : end)); +} +function zeroPad(data, length, left) { + const bytes2 = getBytes(data); + assert(length >= bytes2.length, "padding exceeds data length", "BUFFER_OVERRUN", { + buffer: new Uint8Array(bytes2), + length, + offset: length + 1 + }); + const result = new Uint8Array(length); + result.fill(0); + if (left) { + result.set(bytes2, length - bytes2.length); + } else { + result.set(bytes2, 0); + } + return hexlify(result); +} +function zeroPadValue(data, length) { + return zeroPad(data, length, true); +} +function zeroPadBytes(data, length) { + return zeroPad(data, length, false); +} + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/utils/maths.js +var BN_0 = BigInt(0); +var BN_1 = BigInt(1); +var maxValue = 9007199254740991; +function fromTwos(_value, _width) { + const value = getUint(_value, "value"); + const width = BigInt(getNumber(_width, "width")); + assert(value >> width === BN_0, "overflow", "NUMERIC_FAULT", { + operation: "fromTwos", + fault: "overflow", + value: _value + }); + if (value >> width - BN_1) { + const mask2 = (BN_1 << width) - BN_1; + return -((~value & mask2) + BN_1); + } + return value; +} +function toTwos(_value, _width) { + let value = getBigInt(_value, "value"); + const width = BigInt(getNumber(_width, "width")); + const limit = BN_1 << width - BN_1; + if (value < BN_0) { + value = -value; + assert(value <= limit, "too low", "NUMERIC_FAULT", { + operation: "toTwos", + fault: "overflow", + value: _value + }); + const mask2 = (BN_1 << width) - BN_1; + return (~value & mask2) + BN_1; + } else { + assert(value < limit, "too high", "NUMERIC_FAULT", { + operation: "toTwos", + fault: "overflow", + value: _value + }); + } + return value; +} +function mask(_value, _bits) { + const value = getUint(_value, "value"); + const bits = BigInt(getNumber(_bits, "bits")); + return value & (BN_1 << bits) - BN_1; +} +function getBigInt(value, name) { + switch (typeof value) { + case "bigint": + return value; + case "number": + assertArgument(Number.isInteger(value), "underflow", name || "value", value); + assertArgument(value >= -maxValue && value <= maxValue, "overflow", name || "value", value); + return BigInt(value); + case "string": + try { + if (value === "") { + throw new Error("empty string"); + } + if (value[0] === "-" && value[1] !== "-") { + return -BigInt(value.substring(1)); + } + return BigInt(value); + } catch (e) { + assertArgument(false, `invalid BigNumberish string: ${e.message}`, name || "value", value); + } + } + assertArgument(false, "invalid BigNumberish value", name || "value", value); +} +function getUint(value, name) { + const result = getBigInt(value, name); + assert(result >= BN_0, "unsigned value cannot be negative", "NUMERIC_FAULT", { + fault: "overflow", + operation: "getUint", + value + }); + return result; +} +var Nibbles = "0123456789abcdef"; +function toBigInt(value) { + if (value instanceof Uint8Array) { + let result = "0x0"; + for (const v of value) { + result += Nibbles[v >> 4]; + result += Nibbles[v & 15]; + } + return BigInt(result); + } + return getBigInt(value); +} +function getNumber(value, name) { + switch (typeof value) { + case "bigint": + assertArgument(value >= -maxValue && value <= maxValue, "overflow", name || "value", value); + return Number(value); + case "number": + assertArgument(Number.isInteger(value), "underflow", name || "value", value); + assertArgument(value >= -maxValue && value <= maxValue, "overflow", name || "value", value); + return value; + case "string": + try { + if (value === "") { + throw new Error("empty string"); + } + return getNumber(BigInt(value), name); + } catch (e) { + assertArgument(false, `invalid numeric string: ${e.message}`, name || "value", value); + } + } + assertArgument(false, "invalid numeric value", name || "value", value); +} +function toNumber(value) { + return getNumber(toBigInt(value)); +} +function toBeHex(_value, _width) { + const value = getUint(_value, "value"); + let result = value.toString(16); + if (_width == null) { + if (result.length % 2) { + result = "0" + result; + } + } else { + const width = getNumber(_width, "width"); + assert(width * 2 >= result.length, `value exceeds width (${width} bytes)`, "NUMERIC_FAULT", { + operation: "toBeHex", + fault: "overflow", + value: _value + }); + while (result.length < width * 2) { + result = "0" + result; + } + } + return "0x" + result; +} +function toBeArray(_value) { + const value = getUint(_value, "value"); + if (value === BN_0) { + return new Uint8Array([]); + } + let hex = value.toString(16); + if (hex.length % 2) { + hex = "0" + hex; + } + const result = new Uint8Array(hex.length / 2); + for (let i = 0; i < result.length; i++) { + const offset = i * 2; + result[i] = parseInt(hex.substring(offset, offset + 2), 16); + } + return result; +} + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/utils/utf8.js +function errorFunc(reason, offset, bytes2, output2, badCodepoint) { + assertArgument(false, `invalid codepoint at offset ${offset}; ${reason}`, "bytes", bytes2); +} +function ignoreFunc(reason, offset, bytes2, output2, badCodepoint) { + if (reason === "BAD_PREFIX" || reason === "UNEXPECTED_CONTINUE") { + let i = 0; + for (let o = offset + 1; o < bytes2.length; o++) { + if (bytes2[o] >> 6 !== 2) { + break; + } + i++; + } + return i; + } + if (reason === "OVERRUN") { + return bytes2.length - offset - 1; + } + return 0; +} +function replaceFunc(reason, offset, bytes2, output2, badCodepoint) { + if (reason === "OVERLONG") { + assertArgument(typeof badCodepoint === "number", "invalid bad code point for replacement", "badCodepoint", badCodepoint); + output2.push(badCodepoint); + return 0; + } + output2.push(65533); + return ignoreFunc(reason, offset, bytes2, output2, badCodepoint); +} +var Utf8ErrorFuncs = Object.freeze({ + error: errorFunc, + ignore: ignoreFunc, + replace: replaceFunc +}); +function getUtf8CodePoints(_bytes, onError) { + if (onError == null) { + onError = Utf8ErrorFuncs.error; + } + const bytes2 = getBytes(_bytes, "bytes"); + const result = []; + let i = 0; + while (i < bytes2.length) { + const c = bytes2[i++]; + if (c >> 7 === 0) { + result.push(c); + continue; + } + let extraLength = null; + let overlongMask = null; + if ((c & 224) === 192) { + extraLength = 1; + overlongMask = 127; + } else if ((c & 240) === 224) { + extraLength = 2; + overlongMask = 2047; + } else if ((c & 248) === 240) { + extraLength = 3; + overlongMask = 65535; + } else { + if ((c & 192) === 128) { + i += onError("UNEXPECTED_CONTINUE", i - 1, bytes2, result); + } else { + i += onError("BAD_PREFIX", i - 1, bytes2, result); + } + continue; + } + if (i - 1 + extraLength >= bytes2.length) { + i += onError("OVERRUN", i - 1, bytes2, result); + continue; + } + let res = c & (1 << 8 - extraLength - 1) - 1; + for (let j = 0; j < extraLength; j++) { + let nextChar = bytes2[i]; + if ((nextChar & 192) != 128) { + i += onError("MISSING_CONTINUE", i, bytes2, result); + res = null; + break; + } + ; + res = res << 6 | nextChar & 63; + i++; + } + if (res === null) { + continue; + } + if (res > 1114111) { + i += onError("OUT_OF_RANGE", i - 1 - extraLength, bytes2, result, res); + continue; + } + if (res >= 55296 && res <= 57343) { + i += onError("UTF16_SURROGATE", i - 1 - extraLength, bytes2, result, res); + continue; + } + if (res <= overlongMask) { + i += onError("OVERLONG", i - 1 - extraLength, bytes2, result, res); + continue; + } + result.push(res); + } + return result; +} +function toUtf8Bytes(str, form) { + assertArgument(typeof str === "string", "invalid string value", "str", str); + if (form != null) { + assertNormalize(form); + str = str.normalize(form); + } + let result = []; + for (let i = 0; i < str.length; i++) { + const c = str.charCodeAt(i); + if (c < 128) { + result.push(c); + } else if (c < 2048) { + result.push(c >> 6 | 192); + result.push(c & 63 | 128); + } else if ((c & 64512) == 55296) { + i++; + const c2 = str.charCodeAt(i); + assertArgument(i < str.length && (c2 & 64512) === 56320, "invalid surrogate pair", "str", str); + const pair = 65536 + ((c & 1023) << 10) + (c2 & 1023); + result.push(pair >> 18 | 240); + result.push(pair >> 12 & 63 | 128); + result.push(pair >> 6 & 63 | 128); + result.push(pair & 63 | 128); + } else { + result.push(c >> 12 | 224); + result.push(c >> 6 & 63 | 128); + result.push(c & 63 | 128); + } + } + return new Uint8Array(result); +} +function _toUtf8String(codePoints) { + return codePoints.map((codePoint) => { + if (codePoint <= 65535) { + return String.fromCharCode(codePoint); + } + codePoint -= 65536; + return String.fromCharCode((codePoint >> 10 & 1023) + 55296, (codePoint & 1023) + 56320); + }).join(""); +} +function toUtf8String(bytes2, onError) { + return _toUtf8String(getUtf8CodePoints(bytes2, onError)); +} + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/abstract-coder.js +var WordSize = 32; +var Padding = new Uint8Array(WordSize); +var passProperties = ["then"]; +var _guard = {}; +var resultNames = /* @__PURE__ */ new WeakMap(); +function getNames(result) { + return resultNames.get(result); +} +function setNames(result, names) { + resultNames.set(result, names); +} +function throwError(name, error) { + const wrapped = new Error(`deferred error during ABI decoding triggered accessing ${name}`); + wrapped.error = error; + throw wrapped; +} +function toObject(names, items, deep) { + if (names.indexOf(null) >= 0) { + return items.map((item, index) => { + if (item instanceof Result) { + return toObject(getNames(item), item, deep); + } + return item; + }); + } + return names.reduce((accum, name, index) => { + let item = items.getValue(name); + if (!(name in accum)) { + if (deep && item instanceof Result) { + item = toObject(getNames(item), item, deep); + } + accum[name] = item; + } + return accum; + }, {}); +} +var Result = class _Result extends Array { + // No longer used; but cannot be removed as it will remove the + // #private field from the .d.ts which may break backwards + // compatibility + #names; + /** + * @private + */ + constructor(...args) { + const guard = args[0]; + let items = args[1]; + let names = (args[2] || []).slice(); + let wrap = true; + if (guard !== _guard) { + items = args; + names = []; + wrap = false; + } + super(items.length); + items.forEach((item, index) => { + this[index] = item; + }); + const nameCounts = names.reduce((accum, name) => { + if (typeof name === "string") { + accum.set(name, (accum.get(name) || 0) + 1); + } + return accum; + }, /* @__PURE__ */ new Map()); + setNames(this, Object.freeze(items.map((item, index) => { + const name = names[index]; + if (name != null && nameCounts.get(name) === 1) { + return name; + } + return null; + }))); + this.#names = []; + if (this.#names == null) { + void this.#names; + } + if (!wrap) { + return; + } + Object.freeze(this); + const proxy = new Proxy(this, { + get: (target, prop, receiver) => { + if (typeof prop === "string") { + if (prop.match(/^[0-9]+$/)) { + const index = getNumber(prop, "%index"); + if (index < 0 || index >= this.length) { + throw new RangeError("out of result range"); + } + const item = target[index]; + if (item instanceof Error) { + throwError(`index ${index}`, item); + } + return item; + } + if (passProperties.indexOf(prop) >= 0) { + return Reflect.get(target, prop, receiver); + } + const value = target[prop]; + if (value instanceof Function) { + return function(...args2) { + return value.apply(this === receiver ? target : this, args2); + }; + } else if (!(prop in target)) { + return target.getValue.apply(this === receiver ? target : this, [prop]); + } + } + return Reflect.get(target, prop, receiver); + } + }); + setNames(proxy, getNames(this)); + return proxy; + } + /** + * Returns the Result as a normal Array. If %%deep%%, any children + * which are Result objects are also converted to a normal Array. + * + * This will throw if there are any outstanding deferred + * errors. + */ + toArray(deep) { + const result = []; + this.forEach((item, index) => { + if (item instanceof Error) { + throwError(`index ${index}`, item); + } + if (deep && item instanceof _Result) { + item = item.toArray(deep); + } + result.push(item); + }); + return result; + } + /** + * Returns the Result as an Object with each name-value pair. If + * %%deep%%, any children which are Result objects are also + * converted to an Object. + * + * This will throw if any value is unnamed, or if there are + * any outstanding deferred errors. + */ + toObject(deep) { + const names = getNames(this); + return names.reduce((accum, name, index) => { + assert(name != null, `value at index ${index} unnamed`, "UNSUPPORTED_OPERATION", { + operation: "toObject()" + }); + return toObject(names, this, deep); + }, {}); + } + /** + * @_ignore + */ + slice(start, end) { + if (start == null) { + start = 0; + } + if (start < 0) { + start += this.length; + if (start < 0) { + start = 0; + } + } + if (end == null) { + end = this.length; + } + if (end < 0) { + end += this.length; + if (end < 0) { + end = 0; + } + } + if (end > this.length) { + end = this.length; + } + const _names = getNames(this); + const result = [], names = []; + for (let i = start; i < end; i++) { + result.push(this[i]); + names.push(_names[i]); + } + return new _Result(_guard, result, names); + } + /** + * @_ignore + */ + filter(callback, thisArg) { + const _names = getNames(this); + const result = [], names = []; + for (let i = 0; i < this.length; i++) { + const item = this[i]; + if (item instanceof Error) { + throwError(`index ${i}`, item); + } + if (callback.call(thisArg, item, i, this)) { + result.push(item); + names.push(_names[i]); + } + } + return new _Result(_guard, result, names); + } + /** + * @_ignore + */ + map(callback, thisArg) { + const result = []; + for (let i = 0; i < this.length; i++) { + const item = this[i]; + if (item instanceof Error) { + throwError(`index ${i}`, item); + } + result.push(callback.call(thisArg, item, i, this)); + } + return result; + } + /** + * Returns the value for %%name%%. + * + * Since it is possible to have a key whose name conflicts with + * a method on a [[Result]] or its superclass Array, or any + * JavaScript keyword, this ensures all named values are still + * accessible by name. + */ + getValue(name) { + const index = getNames(this).indexOf(name); + if (index === -1) { + return void 0; + } + const value = this[index]; + if (value instanceof Error) { + throwError(`property ${JSON.stringify(name)}`, value.error); + } + return value; + } + /** + * Creates a new [[Result]] for %%items%% with each entry + * also accessible by its corresponding name in %%keys%%. + */ + static fromItems(items, keys) { + return new _Result(_guard, items, keys); + } +}; +function getValue(value) { + let bytes2 = toBeArray(value); + assert(bytes2.length <= WordSize, "value out-of-bounds", "BUFFER_OVERRUN", { buffer: bytes2, length: WordSize, offset: bytes2.length }); + if (bytes2.length !== WordSize) { + bytes2 = getBytesCopy(concat([Padding.slice(bytes2.length % WordSize), bytes2])); + } + return bytes2; +} +var Coder = class { + // The coder name: + // - address, uint256, tuple, array, etc. + name; + // The fully expanded type, including composite types: + // - address, uint256, tuple(address,bytes), uint256[3][4][], etc. + type; + // The localName bound in the signature, in this example it is "baz": + // - tuple(address foo, uint bar) baz + localName; + // Whether this type is dynamic: + // - Dynamic: bytes, string, address[], tuple(boolean[]), etc. + // - Not Dynamic: address, uint256, boolean[3], tuple(address, uint8) + dynamic; + constructor(name, type, localName, dynamic) { + defineProperties(this, { name, type, localName, dynamic }, { + name: "string", + type: "string", + localName: "string", + dynamic: "boolean" + }); + } + _throwError(message, value) { + assertArgument(false, message, this.localName, value); + } +}; +var Writer = class { + // An array of WordSize lengthed objects to concatenation + #data; + #dataLength; + constructor() { + this.#data = []; + this.#dataLength = 0; + } + get data() { + return concat(this.#data); + } + get length() { + return this.#dataLength; + } + #writeData(data) { + this.#data.push(data); + this.#dataLength += data.length; + return data.length; + } + appendWriter(writer) { + return this.#writeData(getBytesCopy(writer.data)); + } + // Arrayish item; pad on the right to *nearest* WordSize + writeBytes(value) { + let bytes2 = getBytesCopy(value); + const paddingOffset = bytes2.length % WordSize; + if (paddingOffset) { + bytes2 = getBytesCopy(concat([bytes2, Padding.slice(paddingOffset)])); + } + return this.#writeData(bytes2); + } + // Numeric item; pad on the left *to* WordSize + writeValue(value) { + return this.#writeData(getValue(value)); + } + // Inserts a numeric place-holder, returning a callback that can + // be used to asjust the value later + writeUpdatableValue() { + const offset = this.#data.length; + this.#data.push(Padding); + this.#dataLength += WordSize; + return (value) => { + this.#data[offset] = getValue(value); + }; + } +}; +var Reader = class _Reader { + // Allows incomplete unpadded data to be read; otherwise an error + // is raised if attempting to overrun the buffer. This is required + // to deal with an old Solidity bug, in which event data for + // external (not public thoguh) was tightly packed. + allowLoose; + #data; + #offset; + #bytesRead; + #parent; + #maxInflation; + constructor(data, allowLoose, maxInflation) { + defineProperties(this, { allowLoose: !!allowLoose }); + this.#data = getBytesCopy(data); + this.#bytesRead = 0; + this.#parent = null; + this.#maxInflation = maxInflation != null ? maxInflation : 1024; + this.#offset = 0; + } + get data() { + return hexlify(this.#data); + } + get dataLength() { + return this.#data.length; + } + get consumed() { + return this.#offset; + } + get bytes() { + return new Uint8Array(this.#data); + } + #incrementBytesRead(count) { + if (this.#parent) { + return this.#parent.#incrementBytesRead(count); + } + this.#bytesRead += count; + assert(this.#maxInflation < 1 || this.#bytesRead <= this.#maxInflation * this.dataLength, `compressed ABI data exceeds inflation ratio of ${this.#maxInflation} ( see: https://github.com/ethers-io/ethers.js/issues/4537 )`, "BUFFER_OVERRUN", { + buffer: getBytesCopy(this.#data), + offset: this.#offset, + length: count, + info: { + bytesRead: this.#bytesRead, + dataLength: this.dataLength + } + }); + } + #peekBytes(offset, length, loose) { + let alignedLength = Math.ceil(length / WordSize) * WordSize; + if (this.#offset + alignedLength > this.#data.length) { + if (this.allowLoose && loose && this.#offset + length <= this.#data.length) { + alignedLength = length; + } else { + assert(false, "data out-of-bounds", "BUFFER_OVERRUN", { + buffer: getBytesCopy(this.#data), + length: this.#data.length, + offset: this.#offset + alignedLength + }); + } + } + return this.#data.slice(this.#offset, this.#offset + alignedLength); + } + // Create a sub-reader with the same underlying data, but offset + subReader(offset) { + const reader = new _Reader(this.#data.slice(this.#offset + offset), this.allowLoose, this.#maxInflation); + reader.#parent = this; + return reader; + } + // Read bytes + readBytes(length, loose) { + let bytes2 = this.#peekBytes(0, length, !!loose); + this.#incrementBytesRead(length); + this.#offset += bytes2.length; + return bytes2.slice(0, length); + } + // Read a numeric values + readValue() { + return toBigInt(this.readBytes(WordSize)); + } + readIndex() { + return toNumber(this.readBytes(WordSize)); + } +}; + +// node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/esm/_assert.js +function number(n2) { + if (!Number.isSafeInteger(n2) || n2 < 0) + throw new Error(`Wrong positive integer: ${n2}`); +} +function bytes(b2, ...lengths) { + if (!(b2 instanceof Uint8Array)) + throw new Error("Expected Uint8Array"); + if (lengths.length > 0 && !lengths.includes(b2.length)) + throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b2.length}`); +} +function exists(instance, checkFinished = true) { + if (instance.destroyed) + throw new Error("Hash instance has been destroyed"); + if (checkFinished && instance.finished) + throw new Error("Hash#digest() has already been called"); +} +function output(out, instance) { + bytes(out); + const min = instance.outputLen; + if (out.length < min) { + throw new Error(`digestInto() expects output buffer of length at least ${min}`); + } +} + +// node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/esm/_u64.js +var U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1); +var _32n = /* @__PURE__ */ BigInt(32); +function fromBig(n2, le = false) { + if (le) + return { h: Number(n2 & U32_MASK64), l: Number(n2 >> _32n & U32_MASK64) }; + return { h: Number(n2 >> _32n & U32_MASK64) | 0, l: Number(n2 & U32_MASK64) | 0 }; +} +function split(lst, le = false) { + let Ah = new Uint32Array(lst.length); + let Al = new Uint32Array(lst.length); + for (let i = 0; i < lst.length; i++) { + const { h, l } = fromBig(lst[i], le); + [Ah[i], Al[i]] = [h, l]; + } + return [Ah, Al]; +} +var rotlSH = (h, l, s) => h << s | l >>> 32 - s; +var rotlSL = (h, l, s) => l << s | h >>> 32 - s; +var rotlBH = (h, l, s) => l << s - 32 | h >>> 64 - s; +var rotlBL = (h, l, s) => h << s - 32 | l >>> 64 - s; + +// node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/esm/utils.js +var u8a = (a) => a instanceof Uint8Array; +var u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4)); +var isLE = new Uint8Array(new Uint32Array([287454020]).buffer)[0] === 68; +if (!isLE) + throw new Error("Non little-endian hardware is not supported"); +function utf8ToBytes(str) { + if (typeof str !== "string") + throw new Error(`utf8ToBytes expected string, got ${typeof str}`); + return new Uint8Array(new TextEncoder().encode(str)); +} +function toBytes(data) { + if (typeof data === "string") + data = utf8ToBytes(data); + if (!u8a(data)) + throw new Error(`expected Uint8Array, got ${typeof data}`); + return data; +} +var Hash = class { + // Safe version that clones internal state + clone() { + return this._cloneInto(); + } +}; +var toStr = {}.toString; +function wrapConstructor(hashCons) { + const hashC = (msg) => hashCons().update(toBytes(msg)).digest(); + const tmp = hashCons(); + hashC.outputLen = tmp.outputLen; + hashC.blockLen = tmp.blockLen; + hashC.create = () => hashCons(); + return hashC; +} +function wrapXOFConstructorWithOpts(hashCons) { + const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest(); + const tmp = hashCons({}); + hashC.outputLen = tmp.outputLen; + hashC.blockLen = tmp.blockLen; + hashC.create = (opts) => hashCons(opts); + return hashC; +} + +// node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/esm/sha3.js +var [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []]; +var _0n = /* @__PURE__ */ BigInt(0); +var _1n = /* @__PURE__ */ BigInt(1); +var _2n = /* @__PURE__ */ BigInt(2); +var _7n = /* @__PURE__ */ BigInt(7); +var _256n = /* @__PURE__ */ BigInt(256); +var _0x71n = /* @__PURE__ */ BigInt(113); +for (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) { + [x, y] = [y, (2 * x + 3 * y) % 5]; + SHA3_PI.push(2 * (5 * y + x)); + SHA3_ROTL.push((round + 1) * (round + 2) / 2 % 64); + let t = _0n; + for (let j = 0; j < 7; j++) { + R = (R << _1n ^ (R >> _7n) * _0x71n) % _256n; + if (R & _2n) + t ^= _1n << (_1n << /* @__PURE__ */ BigInt(j)) - _1n; + } + _SHA3_IOTA.push(t); +} +var [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ split(_SHA3_IOTA, true); +var rotlH = (h, l, s) => s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s); +var rotlL = (h, l, s) => s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s); +function keccakP(s, rounds = 24) { + const B = new Uint32Array(5 * 2); + for (let round = 24 - rounds; round < 24; round++) { + for (let x = 0; x < 10; x++) + B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40]; + for (let x = 0; x < 10; x += 2) { + const idx1 = (x + 8) % 10; + const idx0 = (x + 2) % 10; + const B0 = B[idx0]; + const B1 = B[idx0 + 1]; + const Th = rotlH(B0, B1, 1) ^ B[idx1]; + const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1]; + for (let y = 0; y < 50; y += 10) { + s[x + y] ^= Th; + s[x + y + 1] ^= Tl; + } + } + let curH = s[2]; + let curL = s[3]; + for (let t = 0; t < 24; t++) { + const shift = SHA3_ROTL[t]; + const Th = rotlH(curH, curL, shift); + const Tl = rotlL(curH, curL, shift); + const PI = SHA3_PI[t]; + curH = s[PI]; + curL = s[PI + 1]; + s[PI] = Th; + s[PI + 1] = Tl; + } + for (let y = 0; y < 50; y += 10) { + for (let x = 0; x < 10; x++) + B[x] = s[y + x]; + for (let x = 0; x < 10; x++) + s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10]; + } + s[0] ^= SHA3_IOTA_H[round]; + s[1] ^= SHA3_IOTA_L[round]; + } + B.fill(0); +} +var Keccak = class _Keccak extends Hash { + // NOTE: we accept arguments in bytes instead of bits here. + constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) { + super(); + this.blockLen = blockLen; + this.suffix = suffix; + this.outputLen = outputLen; + this.enableXOF = enableXOF; + this.rounds = rounds; + this.pos = 0; + this.posOut = 0; + this.finished = false; + this.destroyed = false; + number(outputLen); + if (0 >= this.blockLen || this.blockLen >= 200) + throw new Error("Sha3 supports only keccak-f1600 function"); + this.state = new Uint8Array(200); + this.state32 = u32(this.state); + } + keccak() { + keccakP(this.state32, this.rounds); + this.posOut = 0; + this.pos = 0; + } + update(data) { + exists(this); + const { blockLen, state } = this; + data = toBytes(data); + const len = data.length; + for (let pos = 0; pos < len; ) { + const take = Math.min(blockLen - this.pos, len - pos); + for (let i = 0; i < take; i++) + state[this.pos++] ^= data[pos++]; + if (this.pos === blockLen) + this.keccak(); + } + return this; + } + finish() { + if (this.finished) + return; + this.finished = true; + const { state, suffix, pos, blockLen } = this; + state[pos] ^= suffix; + if ((suffix & 128) !== 0 && pos === blockLen - 1) + this.keccak(); + state[blockLen - 1] ^= 128; + this.keccak(); + } + writeInto(out) { + exists(this, false); + bytes(out); + this.finish(); + const bufferOut = this.state; + const { blockLen } = this; + for (let pos = 0, len = out.length; pos < len; ) { + if (this.posOut >= blockLen) + this.keccak(); + const take = Math.min(blockLen - this.posOut, len - pos); + out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos); + this.posOut += take; + pos += take; + } + return out; + } + xofInto(out) { + if (!this.enableXOF) + throw new Error("XOF is not possible for this instance"); + return this.writeInto(out); + } + xof(bytes2) { + number(bytes2); + return this.xofInto(new Uint8Array(bytes2)); + } + digestInto(out) { + output(out, this); + if (this.finished) + throw new Error("digest() was already called"); + this.writeInto(out); + this.destroy(); + return out; + } + digest() { + return this.digestInto(new Uint8Array(this.outputLen)); + } + destroy() { + this.destroyed = true; + this.state.fill(0); + } + _cloneInto(to) { + const { blockLen, suffix, outputLen, rounds, enableXOF } = this; + to || (to = new _Keccak(blockLen, suffix, outputLen, enableXOF, rounds)); + to.state32.set(this.state32); + to.pos = this.pos; + to.posOut = this.posOut; + to.finished = this.finished; + to.rounds = rounds; + to.suffix = suffix; + to.outputLen = outputLen; + to.enableXOF = enableXOF; + to.destroyed = this.destroyed; + return to; + } +}; +var gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen)); +var sha3_224 = /* @__PURE__ */ gen(6, 144, 224 / 8); +var sha3_256 = /* @__PURE__ */ gen(6, 136, 256 / 8); +var sha3_384 = /* @__PURE__ */ gen(6, 104, 384 / 8); +var sha3_512 = /* @__PURE__ */ gen(6, 72, 512 / 8); +var keccak_224 = /* @__PURE__ */ gen(1, 144, 224 / 8); +var keccak_256 = /* @__PURE__ */ gen(1, 136, 256 / 8); +var keccak_384 = /* @__PURE__ */ gen(1, 104, 384 / 8); +var keccak_512 = /* @__PURE__ */ gen(1, 72, 512 / 8); +var genShake = (suffix, blockLen, outputLen) => wrapXOFConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === void 0 ? outputLen : opts.dkLen, true)); +var shake128 = /* @__PURE__ */ genShake(31, 168, 128 / 8); +var shake256 = /* @__PURE__ */ genShake(31, 136, 256 / 8); + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/crypto/keccak.js +var locked = false; +var _keccak256 = function(data) { + return keccak_256(data); +}; +var __keccak256 = _keccak256; +function keccak256(_data) { + const data = getBytes(_data, "data"); + return hexlify(__keccak256(data)); +} +keccak256._ = _keccak256; +keccak256.lock = function() { + locked = true; +}; +keccak256.register = function(func) { + if (locked) { + throw new TypeError("keccak256 is locked"); + } + __keccak256 = func; +}; +Object.freeze(keccak256); + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/address/address.js +var BN_02 = BigInt(0); +var BN_36 = BigInt(36); +function getChecksumAddress(address) { + address = address.toLowerCase(); + const chars = address.substring(2).split(""); + const expanded = new Uint8Array(40); + for (let i = 0; i < 40; i++) { + expanded[i] = chars[i].charCodeAt(0); + } + const hashed = getBytes(keccak256(expanded)); + for (let i = 0; i < 40; i += 2) { + if (hashed[i >> 1] >> 4 >= 8) { + chars[i] = chars[i].toUpperCase(); + } + if ((hashed[i >> 1] & 15) >= 8) { + chars[i + 1] = chars[i + 1].toUpperCase(); + } + } + return "0x" + chars.join(""); +} +var ibanLookup = {}; +for (let i = 0; i < 10; i++) { + ibanLookup[String(i)] = String(i); +} +for (let i = 0; i < 26; i++) { + ibanLookup[String.fromCharCode(65 + i)] = String(10 + i); +} +var safeDigits = 15; +function ibanChecksum(address) { + address = address.toUpperCase(); + address = address.substring(4) + address.substring(0, 2) + "00"; + let expanded = address.split("").map((c) => { + return ibanLookup[c]; + }).join(""); + while (expanded.length >= safeDigits) { + let block = expanded.substring(0, safeDigits); + expanded = parseInt(block, 10) % 97 + expanded.substring(block.length); + } + let checksum = String(98 - parseInt(expanded, 10) % 97); + while (checksum.length < 2) { + checksum = "0" + checksum; + } + return checksum; +} +var Base36 = function() { + ; + const result = {}; + for (let i = 0; i < 36; i++) { + const key = "0123456789abcdefghijklmnopqrstuvwxyz"[i]; + result[key] = BigInt(i); + } + return result; +}(); +function fromBase36(value) { + value = value.toLowerCase(); + let result = BN_02; + for (let i = 0; i < value.length; i++) { + result = result * BN_36 + Base36[value[i]]; + } + return result; +} +function getAddress(address) { + assertArgument(typeof address === "string", "invalid address", "address", address); + if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) { + if (!address.startsWith("0x")) { + address = "0x" + address; + } + const result = getChecksumAddress(address); + assertArgument(!address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) || result === address, "bad address checksum", "address", address); + return result; + } + if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) { + assertArgument(address.substring(2, 4) === ibanChecksum(address), "bad icap checksum", "address", address); + let result = fromBase36(address.substring(4)).toString(16); + while (result.length < 40) { + result = "0" + result; + } + return getChecksumAddress("0x" + result); + } + assertArgument(false, "invalid address", "address", address); +} + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/typed.js +var _gaurd = {}; +function n(value, width) { + let signed = false; + if (width < 0) { + signed = true; + width *= -1; + } + return new Typed(_gaurd, `${signed ? "" : "u"}int${width}`, value, { signed, width }); +} +function b(value, size) { + return new Typed(_gaurd, `bytes${size ? size : ""}`, value, { size }); +} +var _typedSymbol = Symbol.for("_ethers_typed"); +var Typed = class _Typed { + /** + * The type, as a Solidity-compatible type. + */ + type; + /** + * The actual value. + */ + value; + #options; + /** + * @_ignore: + */ + _typedSymbol; + /** + * @_ignore: + */ + constructor(gaurd, type, value, options) { + if (options == null) { + options = null; + } + assertPrivate(_gaurd, gaurd, "Typed"); + defineProperties(this, { _typedSymbol, type, value }); + this.#options = options; + this.format(); + } + /** + * Format the type as a Human-Readable type. + */ + format() { + if (this.type === "array") { + throw new Error(""); + } else if (this.type === "dynamicArray") { + throw new Error(""); + } else if (this.type === "tuple") { + return `tuple(${this.value.map((v) => v.format()).join(",")})`; + } + return this.type; + } + /** + * The default value returned by this type. + */ + defaultValue() { + return 0; + } + /** + * The minimum value for numeric types. + */ + minValue() { + return 0; + } + /** + * The maximum value for numeric types. + */ + maxValue() { + return 0; + } + /** + * Returns ``true`` and provides a type guard is this is a [[TypedBigInt]]. + */ + isBigInt() { + return !!this.type.match(/^u?int[0-9]+$/); + } + /** + * Returns ``true`` and provides a type guard is this is a [[TypedData]]. + */ + isData() { + return this.type.startsWith("bytes"); + } + /** + * Returns ``true`` and provides a type guard is this is a [[TypedString]]. + */ + isString() { + return this.type === "string"; + } + /** + * Returns the tuple name, if this is a tuple. Throws otherwise. + */ + get tupleName() { + if (this.type !== "tuple") { + throw TypeError("not a tuple"); + } + return this.#options; + } + // Returns the length of this type as an array + // - `null` indicates the length is unforced, it could be dynamic + // - `-1` indicates the length is dynamic + // - any other value indicates it is a static array and is its length + /** + * Returns the length of the array type or ``-1`` if it is dynamic. + * + * Throws if the type is not an array. + */ + get arrayLength() { + if (this.type !== "array") { + throw TypeError("not an array"); + } + if (this.#options === true) { + return -1; + } + if (this.#options === false) { + return this.value.length; + } + return null; + } + /** + * Returns a new **Typed** of %%type%% with the %%value%%. + */ + static from(type, value) { + return new _Typed(_gaurd, type, value); + } + /** + * Return a new ``uint8`` type for %%v%%. + */ + static uint8(v) { + return n(v, 8); + } + /** + * Return a new ``uint16`` type for %%v%%. + */ + static uint16(v) { + return n(v, 16); + } + /** + * Return a new ``uint24`` type for %%v%%. + */ + static uint24(v) { + return n(v, 24); + } + /** + * Return a new ``uint32`` type for %%v%%. + */ + static uint32(v) { + return n(v, 32); + } + /** + * Return a new ``uint40`` type for %%v%%. + */ + static uint40(v) { + return n(v, 40); + } + /** + * Return a new ``uint48`` type for %%v%%. + */ + static uint48(v) { + return n(v, 48); + } + /** + * Return a new ``uint56`` type for %%v%%. + */ + static uint56(v) { + return n(v, 56); + } + /** + * Return a new ``uint64`` type for %%v%%. + */ + static uint64(v) { + return n(v, 64); + } + /** + * Return a new ``uint72`` type for %%v%%. + */ + static uint72(v) { + return n(v, 72); + } + /** + * Return a new ``uint80`` type for %%v%%. + */ + static uint80(v) { + return n(v, 80); + } + /** + * Return a new ``uint88`` type for %%v%%. + */ + static uint88(v) { + return n(v, 88); + } + /** + * Return a new ``uint96`` type for %%v%%. + */ + static uint96(v) { + return n(v, 96); + } + /** + * Return a new ``uint104`` type for %%v%%. + */ + static uint104(v) { + return n(v, 104); + } + /** + * Return a new ``uint112`` type for %%v%%. + */ + static uint112(v) { + return n(v, 112); + } + /** + * Return a new ``uint120`` type for %%v%%. + */ + static uint120(v) { + return n(v, 120); + } + /** + * Return a new ``uint128`` type for %%v%%. + */ + static uint128(v) { + return n(v, 128); + } + /** + * Return a new ``uint136`` type for %%v%%. + */ + static uint136(v) { + return n(v, 136); + } + /** + * Return a new ``uint144`` type for %%v%%. + */ + static uint144(v) { + return n(v, 144); + } + /** + * Return a new ``uint152`` type for %%v%%. + */ + static uint152(v) { + return n(v, 152); + } + /** + * Return a new ``uint160`` type for %%v%%. + */ + static uint160(v) { + return n(v, 160); + } + /** + * Return a new ``uint168`` type for %%v%%. + */ + static uint168(v) { + return n(v, 168); + } + /** + * Return a new ``uint176`` type for %%v%%. + */ + static uint176(v) { + return n(v, 176); + } + /** + * Return a new ``uint184`` type for %%v%%. + */ + static uint184(v) { + return n(v, 184); + } + /** + * Return a new ``uint192`` type for %%v%%. + */ + static uint192(v) { + return n(v, 192); + } + /** + * Return a new ``uint200`` type for %%v%%. + */ + static uint200(v) { + return n(v, 200); + } + /** + * Return a new ``uint208`` type for %%v%%. + */ + static uint208(v) { + return n(v, 208); + } + /** + * Return a new ``uint216`` type for %%v%%. + */ + static uint216(v) { + return n(v, 216); + } + /** + * Return a new ``uint224`` type for %%v%%. + */ + static uint224(v) { + return n(v, 224); + } + /** + * Return a new ``uint232`` type for %%v%%. + */ + static uint232(v) { + return n(v, 232); + } + /** + * Return a new ``uint240`` type for %%v%%. + */ + static uint240(v) { + return n(v, 240); + } + /** + * Return a new ``uint248`` type for %%v%%. + */ + static uint248(v) { + return n(v, 248); + } + /** + * Return a new ``uint256`` type for %%v%%. + */ + static uint256(v) { + return n(v, 256); + } + /** + * Return a new ``uint256`` type for %%v%%. + */ + static uint(v) { + return n(v, 256); + } + /** + * Return a new ``int8`` type for %%v%%. + */ + static int8(v) { + return n(v, -8); + } + /** + * Return a new ``int16`` type for %%v%%. + */ + static int16(v) { + return n(v, -16); + } + /** + * Return a new ``int24`` type for %%v%%. + */ + static int24(v) { + return n(v, -24); + } + /** + * Return a new ``int32`` type for %%v%%. + */ + static int32(v) { + return n(v, -32); + } + /** + * Return a new ``int40`` type for %%v%%. + */ + static int40(v) { + return n(v, -40); + } + /** + * Return a new ``int48`` type for %%v%%. + */ + static int48(v) { + return n(v, -48); + } + /** + * Return a new ``int56`` type for %%v%%. + */ + static int56(v) { + return n(v, -56); + } + /** + * Return a new ``int64`` type for %%v%%. + */ + static int64(v) { + return n(v, -64); + } + /** + * Return a new ``int72`` type for %%v%%. + */ + static int72(v) { + return n(v, -72); + } + /** + * Return a new ``int80`` type for %%v%%. + */ + static int80(v) { + return n(v, -80); + } + /** + * Return a new ``int88`` type for %%v%%. + */ + static int88(v) { + return n(v, -88); + } + /** + * Return a new ``int96`` type for %%v%%. + */ + static int96(v) { + return n(v, -96); + } + /** + * Return a new ``int104`` type for %%v%%. + */ + static int104(v) { + return n(v, -104); + } + /** + * Return a new ``int112`` type for %%v%%. + */ + static int112(v) { + return n(v, -112); + } + /** + * Return a new ``int120`` type for %%v%%. + */ + static int120(v) { + return n(v, -120); + } + /** + * Return a new ``int128`` type for %%v%%. + */ + static int128(v) { + return n(v, -128); + } + /** + * Return a new ``int136`` type for %%v%%. + */ + static int136(v) { + return n(v, -136); + } + /** + * Return a new ``int144`` type for %%v%%. + */ + static int144(v) { + return n(v, -144); + } + /** + * Return a new ``int52`` type for %%v%%. + */ + static int152(v) { + return n(v, -152); + } + /** + * Return a new ``int160`` type for %%v%%. + */ + static int160(v) { + return n(v, -160); + } + /** + * Return a new ``int168`` type for %%v%%. + */ + static int168(v) { + return n(v, -168); + } + /** + * Return a new ``int176`` type for %%v%%. + */ + static int176(v) { + return n(v, -176); + } + /** + * Return a new ``int184`` type for %%v%%. + */ + static int184(v) { + return n(v, -184); + } + /** + * Return a new ``int92`` type for %%v%%. + */ + static int192(v) { + return n(v, -192); + } + /** + * Return a new ``int200`` type for %%v%%. + */ + static int200(v) { + return n(v, -200); + } + /** + * Return a new ``int208`` type for %%v%%. + */ + static int208(v) { + return n(v, -208); + } + /** + * Return a new ``int216`` type for %%v%%. + */ + static int216(v) { + return n(v, -216); + } + /** + * Return a new ``int224`` type for %%v%%. + */ + static int224(v) { + return n(v, -224); + } + /** + * Return a new ``int232`` type for %%v%%. + */ + static int232(v) { + return n(v, -232); + } + /** + * Return a new ``int240`` type for %%v%%. + */ + static int240(v) { + return n(v, -240); + } + /** + * Return a new ``int248`` type for %%v%%. + */ + static int248(v) { + return n(v, -248); + } + /** + * Return a new ``int256`` type for %%v%%. + */ + static int256(v) { + return n(v, -256); + } + /** + * Return a new ``int256`` type for %%v%%. + */ + static int(v) { + return n(v, -256); + } + /** + * Return a new ``bytes1`` type for %%v%%. + */ + static bytes1(v) { + return b(v, 1); + } + /** + * Return a new ``bytes2`` type for %%v%%. + */ + static bytes2(v) { + return b(v, 2); + } + /** + * Return a new ``bytes3`` type for %%v%%. + */ + static bytes3(v) { + return b(v, 3); + } + /** + * Return a new ``bytes4`` type for %%v%%. + */ + static bytes4(v) { + return b(v, 4); + } + /** + * Return a new ``bytes5`` type for %%v%%. + */ + static bytes5(v) { + return b(v, 5); + } + /** + * Return a new ``bytes6`` type for %%v%%. + */ + static bytes6(v) { + return b(v, 6); + } + /** + * Return a new ``bytes7`` type for %%v%%. + */ + static bytes7(v) { + return b(v, 7); + } + /** + * Return a new ``bytes8`` type for %%v%%. + */ + static bytes8(v) { + return b(v, 8); + } + /** + * Return a new ``bytes9`` type for %%v%%. + */ + static bytes9(v) { + return b(v, 9); + } + /** + * Return a new ``bytes10`` type for %%v%%. + */ + static bytes10(v) { + return b(v, 10); + } + /** + * Return a new ``bytes11`` type for %%v%%. + */ + static bytes11(v) { + return b(v, 11); + } + /** + * Return a new ``bytes12`` type for %%v%%. + */ + static bytes12(v) { + return b(v, 12); + } + /** + * Return a new ``bytes13`` type for %%v%%. + */ + static bytes13(v) { + return b(v, 13); + } + /** + * Return a new ``bytes14`` type for %%v%%. + */ + static bytes14(v) { + return b(v, 14); + } + /** + * Return a new ``bytes15`` type for %%v%%. + */ + static bytes15(v) { + return b(v, 15); + } + /** + * Return a new ``bytes16`` type for %%v%%. + */ + static bytes16(v) { + return b(v, 16); + } + /** + * Return a new ``bytes17`` type for %%v%%. + */ + static bytes17(v) { + return b(v, 17); + } + /** + * Return a new ``bytes18`` type for %%v%%. + */ + static bytes18(v) { + return b(v, 18); + } + /** + * Return a new ``bytes19`` type for %%v%%. + */ + static bytes19(v) { + return b(v, 19); + } + /** + * Return a new ``bytes20`` type for %%v%%. + */ + static bytes20(v) { + return b(v, 20); + } + /** + * Return a new ``bytes21`` type for %%v%%. + */ + static bytes21(v) { + return b(v, 21); + } + /** + * Return a new ``bytes22`` type for %%v%%. + */ + static bytes22(v) { + return b(v, 22); + } + /** + * Return a new ``bytes23`` type for %%v%%. + */ + static bytes23(v) { + return b(v, 23); + } + /** + * Return a new ``bytes24`` type for %%v%%. + */ + static bytes24(v) { + return b(v, 24); + } + /** + * Return a new ``bytes25`` type for %%v%%. + */ + static bytes25(v) { + return b(v, 25); + } + /** + * Return a new ``bytes26`` type for %%v%%. + */ + static bytes26(v) { + return b(v, 26); + } + /** + * Return a new ``bytes27`` type for %%v%%. + */ + static bytes27(v) { + return b(v, 27); + } + /** + * Return a new ``bytes28`` type for %%v%%. + */ + static bytes28(v) { + return b(v, 28); + } + /** + * Return a new ``bytes29`` type for %%v%%. + */ + static bytes29(v) { + return b(v, 29); + } + /** + * Return a new ``bytes30`` type for %%v%%. + */ + static bytes30(v) { + return b(v, 30); + } + /** + * Return a new ``bytes31`` type for %%v%%. + */ + static bytes31(v) { + return b(v, 31); + } + /** + * Return a new ``bytes32`` type for %%v%%. + */ + static bytes32(v) { + return b(v, 32); + } + /** + * Return a new ``address`` type for %%v%%. + */ + static address(v) { + return new _Typed(_gaurd, "address", v); + } + /** + * Return a new ``bool`` type for %%v%%. + */ + static bool(v) { + return new _Typed(_gaurd, "bool", !!v); + } + /** + * Return a new ``bytes`` type for %%v%%. + */ + static bytes(v) { + return new _Typed(_gaurd, "bytes", v); + } + /** + * Return a new ``string`` type for %%v%%. + */ + static string(v) { + return new _Typed(_gaurd, "string", v); + } + /** + * Return a new ``array`` type for %%v%%, allowing %%dynamic%% length. + */ + static array(v, dynamic) { + throw new Error("not implemented yet"); + return new _Typed(_gaurd, "array", v, dynamic); + } + /** + * Return a new ``tuple`` type for %%v%%, with the optional %%name%%. + */ + static tuple(v, name) { + throw new Error("not implemented yet"); + return new _Typed(_gaurd, "tuple", v, name); + } + /** + * Return a new ``uint8`` type for %%v%%. + */ + static overrides(v) { + return new _Typed(_gaurd, "overrides", Object.assign({}, v)); + } + /** + * Returns true only if %%value%% is a [[Typed]] instance. + */ + static isTyped(value) { + return value && typeof value === "object" && "_typedSymbol" in value && value._typedSymbol === _typedSymbol; + } + /** + * If the value is a [[Typed]] instance, validates the underlying value + * and returns it, otherwise returns value directly. + * + * This is useful for functions that with to accept either a [[Typed]] + * object or values. + */ + static dereference(value, type) { + if (_Typed.isTyped(value)) { + if (value.type !== type) { + throw new Error(`invalid type: expecetd ${type}, got ${value.type}`); + } + return value.value; + } + return value; + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/address.js +var AddressCoder = class extends Coder { + constructor(localName) { + super("address", "address", localName, false); + } + defaultValue() { + return "0x0000000000000000000000000000000000000000"; + } + encode(writer, _value) { + let value = Typed.dereference(_value, "string"); + try { + value = getAddress(value); + } catch (error) { + return this._throwError(error.message, _value); + } + return writer.writeValue(value); + } + decode(reader) { + return getAddress(toBeHex(reader.readValue(), 20)); + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/anonymous.js +var AnonymousCoder = class extends Coder { + coder; + constructor(coder) { + super(coder.name, coder.type, "_", coder.dynamic); + this.coder = coder; + } + defaultValue() { + return this.coder.defaultValue(); + } + encode(writer, value) { + return this.coder.encode(writer, value); + } + decode(reader) { + return this.coder.decode(reader); + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/array.js +function pack(writer, coders, values) { + let arrayValues = []; + if (Array.isArray(values)) { + arrayValues = values; + } else if (values && typeof values === "object") { + let unique = {}; + arrayValues = coders.map((coder) => { + const name = coder.localName; + assert(name, "cannot encode object for signature with missing names", "INVALID_ARGUMENT", { argument: "values", info: { coder }, value: values }); + assert(!unique[name], "cannot encode object for signature with duplicate names", "INVALID_ARGUMENT", { argument: "values", info: { coder }, value: values }); + unique[name] = true; + return values[name]; + }); + } else { + assertArgument(false, "invalid tuple value", "tuple", values); + } + assertArgument(coders.length === arrayValues.length, "types/value length mismatch", "tuple", values); + let staticWriter = new Writer(); + let dynamicWriter = new Writer(); + let updateFuncs = []; + coders.forEach((coder, index) => { + let value = arrayValues[index]; + if (coder.dynamic) { + let dynamicOffset = dynamicWriter.length; + coder.encode(dynamicWriter, value); + let updateFunc = staticWriter.writeUpdatableValue(); + updateFuncs.push((baseOffset) => { + updateFunc(baseOffset + dynamicOffset); + }); + } else { + coder.encode(staticWriter, value); + } + }); + updateFuncs.forEach((func) => { + func(staticWriter.length); + }); + let length = writer.appendWriter(staticWriter); + length += writer.appendWriter(dynamicWriter); + return length; +} +function unpack(reader, coders) { + let values = []; + let keys = []; + let baseReader = reader.subReader(0); + coders.forEach((coder) => { + let value = null; + if (coder.dynamic) { + let offset = reader.readIndex(); + let offsetReader = baseReader.subReader(offset); + try { + value = coder.decode(offsetReader); + } catch (error) { + if (isError(error, "BUFFER_OVERRUN")) { + throw error; + } + value = error; + value.baseType = coder.name; + value.name = coder.localName; + value.type = coder.type; + } + } else { + try { + value = coder.decode(reader); + } catch (error) { + if (isError(error, "BUFFER_OVERRUN")) { + throw error; + } + value = error; + value.baseType = coder.name; + value.name = coder.localName; + value.type = coder.type; + } + } + if (value == void 0) { + throw new Error("investigate"); + } + values.push(value); + keys.push(coder.localName || null); + }); + return Result.fromItems(values, keys); +} +var ArrayCoder = class extends Coder { + coder; + length; + constructor(coder, length, localName) { + const type = coder.type + "[" + (length >= 0 ? length : "") + "]"; + const dynamic = length === -1 || coder.dynamic; + super("array", type, localName, dynamic); + defineProperties(this, { coder, length }); + } + defaultValue() { + const defaultChild = this.coder.defaultValue(); + const result = []; + for (let i = 0; i < this.length; i++) { + result.push(defaultChild); + } + return result; + } + encode(writer, _value) { + const value = Typed.dereference(_value, "array"); + if (!Array.isArray(value)) { + this._throwError("expected array value", value); + } + let count = this.length; + if (count === -1) { + count = value.length; + writer.writeValue(value.length); + } + assertArgumentCount(value.length, count, "coder array" + (this.localName ? " " + this.localName : "")); + let coders = []; + for (let i = 0; i < value.length; i++) { + coders.push(this.coder); + } + return pack(writer, coders, value); + } + decode(reader) { + let count = this.length; + if (count === -1) { + count = reader.readIndex(); + assert(count * WordSize <= reader.dataLength, "insufficient data length", "BUFFER_OVERRUN", { buffer: reader.bytes, offset: count * WordSize, length: reader.dataLength }); + } + let coders = []; + for (let i = 0; i < count; i++) { + coders.push(new AnonymousCoder(this.coder)); + } + return unpack(reader, coders); + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/boolean.js +var BooleanCoder = class extends Coder { + constructor(localName) { + super("bool", "bool", localName, false); + } + defaultValue() { + return false; + } + encode(writer, _value) { + const value = Typed.dereference(_value, "bool"); + return writer.writeValue(value ? 1 : 0); + } + decode(reader) { + return !!reader.readValue(); + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/bytes.js +var DynamicBytesCoder = class extends Coder { + constructor(type, localName) { + super(type, type, localName, true); + } + defaultValue() { + return "0x"; + } + encode(writer, value) { + value = getBytesCopy(value); + let length = writer.writeValue(value.length); + length += writer.writeBytes(value); + return length; + } + decode(reader) { + return reader.readBytes(reader.readIndex(), true); + } +}; +var BytesCoder = class extends DynamicBytesCoder { + constructor(localName) { + super("bytes", localName); + } + decode(reader) { + return hexlify(super.decode(reader)); + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/fixed-bytes.js +var FixedBytesCoder = class extends Coder { + size; + constructor(size, localName) { + let name = "bytes" + String(size); + super(name, name, localName, false); + defineProperties(this, { size }, { size: "number" }); + } + defaultValue() { + return "0x0000000000000000000000000000000000000000000000000000000000000000".substring(0, 2 + this.size * 2); + } + encode(writer, _value) { + let data = getBytesCopy(Typed.dereference(_value, this.type)); + if (data.length !== this.size) { + this._throwError("incorrect data length", _value); + } + return writer.writeBytes(data); + } + decode(reader) { + return hexlify(reader.readBytes(this.size)); + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/null.js +var Empty = new Uint8Array([]); +var NullCoder = class extends Coder { + constructor(localName) { + super("null", "", localName, false); + } + defaultValue() { + return null; + } + encode(writer, value) { + if (value != null) { + this._throwError("not null", value); + } + return writer.writeBytes(Empty); + } + decode(reader) { + reader.readBytes(0); + return null; + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/number.js +var BN_03 = BigInt(0); +var BN_12 = BigInt(1); +var BN_MAX_UINT256 = BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); +var NumberCoder = class extends Coder { + size; + signed; + constructor(size, signed, localName) { + const name = (signed ? "int" : "uint") + size * 8; + super(name, name, localName, false); + defineProperties(this, { size, signed }, { size: "number", signed: "boolean" }); + } + defaultValue() { + return 0; + } + encode(writer, _value) { + let value = getBigInt(Typed.dereference(_value, this.type)); + let maxUintValue = mask(BN_MAX_UINT256, WordSize * 8); + if (this.signed) { + let bounds = mask(maxUintValue, this.size * 8 - 1); + if (value > bounds || value < -(bounds + BN_12)) { + this._throwError("value out-of-bounds", _value); + } + value = toTwos(value, 8 * WordSize); + } else if (value < BN_03 || value > mask(maxUintValue, this.size * 8)) { + this._throwError("value out-of-bounds", _value); + } + return writer.writeValue(value); + } + decode(reader) { + let value = mask(reader.readValue(), this.size * 8); + if (this.signed) { + value = fromTwos(value, this.size * 8); + } + return value; + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/string.js +var StringCoder = class extends DynamicBytesCoder { + constructor(localName) { + super("string", localName); + } + defaultValue() { + return ""; + } + encode(writer, _value) { + return super.encode(writer, toUtf8Bytes(Typed.dereference(_value, "string"))); + } + decode(reader) { + return toUtf8String(super.decode(reader)); + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/coders/tuple.js +var TupleCoder = class extends Coder { + coders; + constructor(coders, localName) { + let dynamic = false; + const types = []; + coders.forEach((coder) => { + if (coder.dynamic) { + dynamic = true; + } + types.push(coder.type); + }); + const type = "tuple(" + types.join(",") + ")"; + super("tuple", type, localName, dynamic); + defineProperties(this, { coders: Object.freeze(coders.slice()) }); + } + defaultValue() { + const values = []; + this.coders.forEach((coder) => { + values.push(coder.defaultValue()); + }); + const uniqueNames = this.coders.reduce((accum, coder) => { + const name = coder.localName; + if (name) { + if (!accum[name]) { + accum[name] = 0; + } + accum[name]++; + } + return accum; + }, {}); + this.coders.forEach((coder, index) => { + let name = coder.localName; + if (!name || uniqueNames[name] !== 1) { + return; + } + if (name === "length") { + name = "_length"; + } + if (values[name] != null) { + return; + } + values[name] = values[index]; + }); + return Object.freeze(values); + } + encode(writer, _value) { + const value = Typed.dereference(_value, "tuple"); + return pack(writer, this.coders, value); + } + decode(reader) { + return unpack(reader, this.coders); + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/hash/id.js +function id(value) { + return keccak256(toUtf8Bytes(value)); +} + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/fragments.js +function setify(items) { + const result = /* @__PURE__ */ new Set(); + items.forEach((k) => result.add(k)); + return Object.freeze(result); +} +var _kwVisibDeploy = "external public payable override"; +var KwVisibDeploy = setify(_kwVisibDeploy.split(" ")); +var _kwVisib = "constant external internal payable private public pure view override"; +var KwVisib = setify(_kwVisib.split(" ")); +var _kwTypes = "constructor error event fallback function receive struct"; +var KwTypes = setify(_kwTypes.split(" ")); +var _kwModifiers = "calldata memory storage payable indexed"; +var KwModifiers = setify(_kwModifiers.split(" ")); +var _kwOther = "tuple returns"; +var _keywords = [_kwTypes, _kwModifiers, _kwOther, _kwVisib].join(" "); +var Keywords = setify(_keywords.split(" ")); +var SimpleTokens = { + "(": "OPEN_PAREN", + ")": "CLOSE_PAREN", + "[": "OPEN_BRACKET", + "]": "CLOSE_BRACKET", + ",": "COMMA", + "@": "AT" +}; +var regexWhitespacePrefix = new RegExp("^(\\s*)"); +var regexNumberPrefix = new RegExp("^([0-9]+)"); +var regexIdPrefix = new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"); +var regexId = new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"); +var regexType = new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$"); +var TokenString = class _TokenString { + #offset; + #tokens; + get offset() { + return this.#offset; + } + get length() { + return this.#tokens.length - this.#offset; + } + constructor(tokens) { + this.#offset = 0; + this.#tokens = tokens.slice(); + } + clone() { + return new _TokenString(this.#tokens); + } + reset() { + this.#offset = 0; + } + #subTokenString(from = 0, to = 0) { + return new _TokenString(this.#tokens.slice(from, to).map((t) => { + return Object.freeze(Object.assign({}, t, { + match: t.match - from, + linkBack: t.linkBack - from, + linkNext: t.linkNext - from + })); + })); + } + // Pops and returns the value of the next token, if it is a keyword in allowed; throws if out of tokens + popKeyword(allowed) { + const top = this.peek(); + if (top.type !== "KEYWORD" || !allowed.has(top.text)) { + throw new Error(`expected keyword ${top.text}`); + } + return this.pop().text; + } + // Pops and returns the value of the next token if it is `type`; throws if out of tokens + popType(type) { + if (this.peek().type !== type) { + const top = this.peek(); + throw new Error(`expected ${type}; got ${top.type} ${JSON.stringify(top.text)}`); + } + return this.pop().text; + } + // Pops and returns a "(" TOKENS ")" + popParen() { + const top = this.peek(); + if (top.type !== "OPEN_PAREN") { + throw new Error("bad start"); + } + const result = this.#subTokenString(this.#offset + 1, top.match + 1); + this.#offset = top.match + 1; + return result; + } + // Pops and returns the items within "(" ITEM1 "," ITEM2 "," ... ")" + popParams() { + const top = this.peek(); + if (top.type !== "OPEN_PAREN") { + throw new Error("bad start"); + } + const result = []; + while (this.#offset < top.match - 1) { + const link = this.peek().linkNext; + result.push(this.#subTokenString(this.#offset + 1, link)); + this.#offset = link; + } + this.#offset = top.match + 1; + return result; + } + // Returns the top Token, throwing if out of tokens + peek() { + if (this.#offset >= this.#tokens.length) { + throw new Error("out-of-bounds"); + } + return this.#tokens[this.#offset]; + } + // Returns the next value, if it is a keyword in `allowed` + peekKeyword(allowed) { + const top = this.peekType("KEYWORD"); + return top != null && allowed.has(top) ? top : null; + } + // Returns the value of the next token if it is `type` + peekType(type) { + if (this.length === 0) { + return null; + } + const top = this.peek(); + return top.type === type ? top.text : null; + } + // Returns the next token; throws if out of tokens + pop() { + const result = this.peek(); + this.#offset++; + return result; + } + toString() { + const tokens = []; + for (let i = this.#offset; i < this.#tokens.length; i++) { + const token = this.#tokens[i]; + tokens.push(`${token.type}:${token.text}`); + } + return ``; + } +}; +function lex(text) { + const tokens = []; + const throwError2 = (message) => { + const token = offset < text.length ? JSON.stringify(text[offset]) : "$EOI"; + throw new Error(`invalid token ${token} at ${offset}: ${message}`); + }; + let brackets = []; + let commas = []; + let offset = 0; + while (offset < text.length) { + let cur = text.substring(offset); + let match = cur.match(regexWhitespacePrefix); + if (match) { + offset += match[1].length; + cur = text.substring(offset); + } + const token = { depth: brackets.length, linkBack: -1, linkNext: -1, match: -1, type: "", text: "", offset, value: -1 }; + tokens.push(token); + let type = SimpleTokens[cur[0]] || ""; + if (type) { + token.type = type; + token.text = cur[0]; + offset++; + if (type === "OPEN_PAREN") { + brackets.push(tokens.length - 1); + commas.push(tokens.length - 1); + } else if (type == "CLOSE_PAREN") { + if (brackets.length === 0) { + throwError2("no matching open bracket"); + } + token.match = brackets.pop(); + tokens[token.match].match = tokens.length - 1; + token.depth--; + token.linkBack = commas.pop(); + tokens[token.linkBack].linkNext = tokens.length - 1; + } else if (type === "COMMA") { + token.linkBack = commas.pop(); + tokens[token.linkBack].linkNext = tokens.length - 1; + commas.push(tokens.length - 1); + } else if (type === "OPEN_BRACKET") { + token.type = "BRACKET"; + } else if (type === "CLOSE_BRACKET") { + let suffix = tokens.pop().text; + if (tokens.length > 0 && tokens[tokens.length - 1].type === "NUMBER") { + const value = tokens.pop().text; + suffix = value + suffix; + tokens[tokens.length - 1].value = getNumber(value); + } + if (tokens.length === 0 || tokens[tokens.length - 1].type !== "BRACKET") { + throw new Error("missing opening bracket"); + } + tokens[tokens.length - 1].text += suffix; + } + continue; + } + match = cur.match(regexIdPrefix); + if (match) { + token.text = match[1]; + offset += token.text.length; + if (Keywords.has(token.text)) { + token.type = "KEYWORD"; + continue; + } + if (token.text.match(regexType)) { + token.type = "TYPE"; + continue; + } + token.type = "ID"; + continue; + } + match = cur.match(regexNumberPrefix); + if (match) { + token.text = match[1]; + token.type = "NUMBER"; + offset += token.text.length; + continue; + } + throw new Error(`unexpected token ${JSON.stringify(cur[0])} at position ${offset}`); + } + return new TokenString(tokens.map((t) => Object.freeze(t))); +} +function allowSingle(set, allowed) { + let included = []; + for (const key in allowed.keys()) { + if (set.has(key)) { + included.push(key); + } + } + if (included.length > 1) { + throw new Error(`conflicting types: ${included.join(", ")}`); + } +} +function consumeName(type, tokens) { + if (tokens.peekKeyword(KwTypes)) { + const keyword = tokens.pop().text; + if (keyword !== type) { + throw new Error(`expected ${type}, got ${keyword}`); + } + } + return tokens.popType("ID"); +} +function consumeKeywords(tokens, allowed) { + const keywords = /* @__PURE__ */ new Set(); + while (true) { + const keyword = tokens.peekType("KEYWORD"); + if (keyword == null || allowed && !allowed.has(keyword)) { + break; + } + tokens.pop(); + if (keywords.has(keyword)) { + throw new Error(`duplicate keywords: ${JSON.stringify(keyword)}`); + } + keywords.add(keyword); + } + return Object.freeze(keywords); +} +function consumeMutability(tokens) { + let modifiers = consumeKeywords(tokens, KwVisib); + allowSingle(modifiers, setify("constant payable nonpayable".split(" "))); + allowSingle(modifiers, setify("pure view payable nonpayable".split(" "))); + if (modifiers.has("view")) { + return "view"; + } + if (modifiers.has("pure")) { + return "pure"; + } + if (modifiers.has("payable")) { + return "payable"; + } + if (modifiers.has("nonpayable")) { + return "nonpayable"; + } + if (modifiers.has("constant")) { + return "view"; + } + return "nonpayable"; +} +function consumeParams(tokens, allowIndexed) { + return tokens.popParams().map((t) => ParamType.from(t, allowIndexed)); +} +function consumeGas(tokens) { + if (tokens.peekType("AT")) { + tokens.pop(); + if (tokens.peekType("NUMBER")) { + return getBigInt(tokens.pop().text); + } + throw new Error("invalid gas"); + } + return null; +} +function consumeEoi(tokens) { + if (tokens.length) { + throw new Error(`unexpected tokens at offset ${tokens.offset}: ${tokens.toString()}`); + } +} +var regexArrayType = new RegExp(/^(.*)\[([0-9]*)\]$/); +function verifyBasicType(type) { + const match = type.match(regexType); + assertArgument(match, "invalid type", "type", type); + if (type === "uint") { + return "uint256"; + } + if (type === "int") { + return "int256"; + } + if (match[2]) { + const length = parseInt(match[2]); + assertArgument(length !== 0 && length <= 32, "invalid bytes length", "type", type); + } else if (match[3]) { + const size = parseInt(match[3]); + assertArgument(size !== 0 && size <= 256 && size % 8 === 0, "invalid numeric width", "type", type); + } + return type; +} +var _guard2 = {}; +var internal = Symbol.for("_ethers_internal"); +var ParamTypeInternal = "_ParamTypeInternal"; +var ErrorFragmentInternal = "_ErrorInternal"; +var EventFragmentInternal = "_EventInternal"; +var ConstructorFragmentInternal = "_ConstructorInternal"; +var FallbackFragmentInternal = "_FallbackInternal"; +var FunctionFragmentInternal = "_FunctionInternal"; +var StructFragmentInternal = "_StructInternal"; +var ParamType = class _ParamType { + /** + * The local name of the parameter (or ``""`` if unbound) + */ + name; + /** + * The fully qualified type (e.g. ``"address"``, ``"tuple(address)"``, + * ``"uint256[3][]"``) + */ + type; + /** + * The base type (e.g. ``"address"``, ``"tuple"``, ``"array"``) + */ + baseType; + /** + * True if the parameters is indexed. + * + * For non-indexable types this is ``null``. + */ + indexed; + /** + * The components for the tuple. + * + * For non-tuple types this is ``null``. + */ + components; + /** + * The array length, or ``-1`` for dynamic-lengthed arrays. + * + * For non-array types this is ``null``. + */ + arrayLength; + /** + * The type of each child in the array. + * + * For non-array types this is ``null``. + */ + arrayChildren; + /** + * @private + */ + constructor(guard, name, type, baseType, indexed, components, arrayLength, arrayChildren) { + assertPrivate(guard, _guard2, "ParamType"); + Object.defineProperty(this, internal, { value: ParamTypeInternal }); + if (components) { + components = Object.freeze(components.slice()); + } + if (baseType === "array") { + if (arrayLength == null || arrayChildren == null) { + throw new Error(""); + } + } else if (arrayLength != null || arrayChildren != null) { + throw new Error(""); + } + if (baseType === "tuple") { + if (components == null) { + throw new Error(""); + } + } else if (components != null) { + throw new Error(""); + } + defineProperties(this, { + name, + type, + baseType, + indexed, + components, + arrayLength, + arrayChildren + }); + } + /** + * Return a string representation of this type. + * + * For example, + * + * ``sighash" => "(uint256,address)"`` + * + * ``"minimal" => "tuple(uint256,address) indexed"`` + * + * ``"full" => "tuple(uint256 foo, address bar) indexed baz"`` + */ + format(format) { + if (format == null) { + format = "sighash"; + } + if (format === "json") { + const name = this.name || ""; + if (this.isArray()) { + const result3 = JSON.parse(this.arrayChildren.format("json")); + result3.name = name; + result3.type += `[${this.arrayLength < 0 ? "" : String(this.arrayLength)}]`; + return JSON.stringify(result3); + } + const result2 = { + type: this.baseType === "tuple" ? "tuple" : this.type, + name + }; + if (typeof this.indexed === "boolean") { + result2.indexed = this.indexed; + } + if (this.isTuple()) { + result2.components = this.components.map((c) => JSON.parse(c.format(format))); + } + return JSON.stringify(result2); + } + let result = ""; + if (this.isArray()) { + result += this.arrayChildren.format(format); + result += `[${this.arrayLength < 0 ? "" : String(this.arrayLength)}]`; + } else { + if (this.isTuple()) { + result += "(" + this.components.map((comp) => comp.format(format)).join(format === "full" ? ", " : ",") + ")"; + } else { + result += this.type; + } + } + if (format !== "sighash") { + if (this.indexed === true) { + result += " indexed"; + } + if (format === "full" && this.name) { + result += " " + this.name; + } + } + return result; + } + /** + * Returns true if %%this%% is an Array type. + * + * This provides a type gaurd ensuring that [[arrayChildren]] + * and [[arrayLength]] are non-null. + */ + isArray() { + return this.baseType === "array"; + } + /** + * Returns true if %%this%% is a Tuple type. + * + * This provides a type gaurd ensuring that [[components]] + * is non-null. + */ + isTuple() { + return this.baseType === "tuple"; + } + /** + * Returns true if %%this%% is an Indexable type. + * + * This provides a type gaurd ensuring that [[indexed]] + * is non-null. + */ + isIndexable() { + return this.indexed != null; + } + /** + * Walks the **ParamType** with %%value%%, calling %%process%% + * on each type, destructing the %%value%% recursively. + */ + walk(value, process2) { + if (this.isArray()) { + if (!Array.isArray(value)) { + throw new Error("invalid array value"); + } + if (this.arrayLength !== -1 && value.length !== this.arrayLength) { + throw new Error("array is wrong length"); + } + const _this = this; + return value.map((v) => _this.arrayChildren.walk(v, process2)); + } + if (this.isTuple()) { + if (!Array.isArray(value)) { + throw new Error("invalid tuple value"); + } + if (value.length !== this.components.length) { + throw new Error("array is wrong length"); + } + const _this = this; + return value.map((v, i) => _this.components[i].walk(v, process2)); + } + return process2(this.type, value); + } + #walkAsync(promises, value, process2, setValue) { + if (this.isArray()) { + if (!Array.isArray(value)) { + throw new Error("invalid array value"); + } + if (this.arrayLength !== -1 && value.length !== this.arrayLength) { + throw new Error("array is wrong length"); + } + const childType = this.arrayChildren; + const result2 = value.slice(); + result2.forEach((value2, index) => { + childType.#walkAsync(promises, value2, process2, (value3) => { + result2[index] = value3; + }); + }); + setValue(result2); + return; + } + if (this.isTuple()) { + const components = this.components; + let result2; + if (Array.isArray(value)) { + result2 = value.slice(); + } else { + if (value == null || typeof value !== "object") { + throw new Error("invalid tuple value"); + } + result2 = components.map((param) => { + if (!param.name) { + throw new Error("cannot use object value with unnamed components"); + } + if (!(param.name in value)) { + throw new Error(`missing value for component ${param.name}`); + } + return value[param.name]; + }); + } + if (result2.length !== this.components.length) { + throw new Error("array is wrong length"); + } + result2.forEach((value2, index) => { + components[index].#walkAsync(promises, value2, process2, (value3) => { + result2[index] = value3; + }); + }); + setValue(result2); + return; + } + const result = process2(this.type, value); + if (result.then) { + promises.push(async function() { + setValue(await result); + }()); + } else { + setValue(result); + } + } + /** + * Walks the **ParamType** with %%value%%, asynchronously calling + * %%process%% on each type, destructing the %%value%% recursively. + * + * This can be used to resolve ENS names by walking and resolving each + * ``"address"`` type. + */ + async walkAsync(value, process2) { + const promises = []; + const result = [value]; + this.#walkAsync(promises, value, process2, (value2) => { + result[0] = value2; + }); + if (promises.length) { + await Promise.all(promises); + } + return result[0]; + } + /** + * Creates a new **ParamType** for %%obj%%. + * + * If %%allowIndexed%% then the ``indexed`` keyword is permitted, + * otherwise the ``indexed`` keyword will throw an error. + */ + static from(obj, allowIndexed) { + if (_ParamType.isParamType(obj)) { + return obj; + } + if (typeof obj === "string") { + try { + return _ParamType.from(lex(obj), allowIndexed); + } catch (error) { + assertArgument(false, "invalid param type", "obj", obj); + } + } else if (obj instanceof TokenString) { + let type2 = "", baseType = ""; + let comps = null; + if (consumeKeywords(obj, setify(["tuple"])).has("tuple") || obj.peekType("OPEN_PAREN")) { + baseType = "tuple"; + comps = obj.popParams().map((t) => _ParamType.from(t)); + type2 = `tuple(${comps.map((c) => c.format()).join(",")})`; + } else { + type2 = verifyBasicType(obj.popType("TYPE")); + baseType = type2; + } + let arrayChildren = null; + let arrayLength = null; + while (obj.length && obj.peekType("BRACKET")) { + const bracket = obj.pop(); + arrayChildren = new _ParamType(_guard2, "", type2, baseType, null, comps, arrayLength, arrayChildren); + arrayLength = bracket.value; + type2 += bracket.text; + baseType = "array"; + comps = null; + } + let indexed2 = null; + const keywords = consumeKeywords(obj, KwModifiers); + if (keywords.has("indexed")) { + if (!allowIndexed) { + throw new Error(""); + } + indexed2 = true; + } + const name2 = obj.peekType("ID") ? obj.pop().text : ""; + if (obj.length) { + throw new Error("leftover tokens"); + } + return new _ParamType(_guard2, name2, type2, baseType, indexed2, comps, arrayLength, arrayChildren); + } + const name = obj.name; + assertArgument(!name || typeof name === "string" && name.match(regexId), "invalid name", "obj.name", name); + let indexed = obj.indexed; + if (indexed != null) { + assertArgument(allowIndexed, "parameter cannot be indexed", "obj.indexed", obj.indexed); + indexed = !!indexed; + } + let type = obj.type; + let arrayMatch = type.match(regexArrayType); + if (arrayMatch) { + const arrayLength = parseInt(arrayMatch[2] || "-1"); + const arrayChildren = _ParamType.from({ + type: arrayMatch[1], + components: obj.components + }); + return new _ParamType(_guard2, name || "", type, "array", indexed, null, arrayLength, arrayChildren); + } + if (type === "tuple" || type.startsWith( + "tuple(" + /* fix: ) */ + ) || type.startsWith( + "(" + /* fix: ) */ + )) { + const comps = obj.components != null ? obj.components.map((c) => _ParamType.from(c)) : null; + const tuple = new _ParamType(_guard2, name || "", type, "tuple", indexed, comps, null, null); + return tuple; + } + type = verifyBasicType(obj.type); + return new _ParamType(_guard2, name || "", type, type, indexed, null, null, null); + } + /** + * Returns true if %%value%% is a **ParamType**. + */ + static isParamType(value) { + return value && value[internal] === ParamTypeInternal; + } +}; +var Fragment = class _Fragment { + /** + * The type of the fragment. + */ + type; + /** + * The inputs for the fragment. + */ + inputs; + /** + * @private + */ + constructor(guard, type, inputs) { + assertPrivate(guard, _guard2, "Fragment"); + inputs = Object.freeze(inputs.slice()); + defineProperties(this, { type, inputs }); + } + /** + * Creates a new **Fragment** for %%obj%%, wich can be any supported + * ABI frgament type. + */ + static from(obj) { + if (typeof obj === "string") { + try { + _Fragment.from(JSON.parse(obj)); + } catch (e) { + } + return _Fragment.from(lex(obj)); + } + if (obj instanceof TokenString) { + const type = obj.peekKeyword(KwTypes); + switch (type) { + case "constructor": + return ConstructorFragment.from(obj); + case "error": + return ErrorFragment.from(obj); + case "event": + return EventFragment.from(obj); + case "fallback": + case "receive": + return FallbackFragment.from(obj); + case "function": + return FunctionFragment.from(obj); + case "struct": + return StructFragment.from(obj); + } + } else if (typeof obj === "object") { + switch (obj.type) { + case "constructor": + return ConstructorFragment.from(obj); + case "error": + return ErrorFragment.from(obj); + case "event": + return EventFragment.from(obj); + case "fallback": + case "receive": + return FallbackFragment.from(obj); + case "function": + return FunctionFragment.from(obj); + case "struct": + return StructFragment.from(obj); + } + assert(false, `unsupported type: ${obj.type}`, "UNSUPPORTED_OPERATION", { + operation: "Fragment.from" + }); + } + assertArgument(false, "unsupported frgament object", "obj", obj); + } + /** + * Returns true if %%value%% is a [[ConstructorFragment]]. + */ + static isConstructor(value) { + return ConstructorFragment.isFragment(value); + } + /** + * Returns true if %%value%% is an [[ErrorFragment]]. + */ + static isError(value) { + return ErrorFragment.isFragment(value); + } + /** + * Returns true if %%value%% is an [[EventFragment]]. + */ + static isEvent(value) { + return EventFragment.isFragment(value); + } + /** + * Returns true if %%value%% is a [[FunctionFragment]]. + */ + static isFunction(value) { + return FunctionFragment.isFragment(value); + } + /** + * Returns true if %%value%% is a [[StructFragment]]. + */ + static isStruct(value) { + return StructFragment.isFragment(value); + } +}; +var NamedFragment = class extends Fragment { + /** + * The name of the fragment. + */ + name; + /** + * @private + */ + constructor(guard, type, name, inputs) { + super(guard, type, inputs); + assertArgument(typeof name === "string" && name.match(regexId), "invalid identifier", "name", name); + inputs = Object.freeze(inputs.slice()); + defineProperties(this, { name }); + } +}; +function joinParams(format, params) { + return "(" + params.map((p) => p.format(format)).join(format === "full" ? ", " : ",") + ")"; +} +var ErrorFragment = class _ErrorFragment extends NamedFragment { + /** + * @private + */ + constructor(guard, name, inputs) { + super(guard, "error", name, inputs); + Object.defineProperty(this, internal, { value: ErrorFragmentInternal }); + } + /** + * The Custom Error selector. + */ + get selector() { + return id(this.format("sighash")).substring(0, 10); + } + /** + * Returns a string representation of this fragment as %%format%%. + */ + format(format) { + if (format == null) { + format = "sighash"; + } + if (format === "json") { + return JSON.stringify({ + type: "error", + name: this.name, + inputs: this.inputs.map((input) => JSON.parse(input.format(format))) + }); + } + const result = []; + if (format !== "sighash") { + result.push("error"); + } + result.push(this.name + joinParams(format, this.inputs)); + return result.join(" "); + } + /** + * Returns a new **ErrorFragment** for %%obj%%. + */ + static from(obj) { + if (_ErrorFragment.isFragment(obj)) { + return obj; + } + if (typeof obj === "string") { + return _ErrorFragment.from(lex(obj)); + } else if (obj instanceof TokenString) { + const name = consumeName("error", obj); + const inputs = consumeParams(obj); + consumeEoi(obj); + return new _ErrorFragment(_guard2, name, inputs); + } + return new _ErrorFragment(_guard2, obj.name, obj.inputs ? obj.inputs.map(ParamType.from) : []); + } + /** + * Returns ``true`` and provides a type guard if %%value%% is an + * **ErrorFragment**. + */ + static isFragment(value) { + return value && value[internal] === ErrorFragmentInternal; + } +}; +var EventFragment = class _EventFragment extends NamedFragment { + /** + * Whether this event is anonymous. + */ + anonymous; + /** + * @private + */ + constructor(guard, name, inputs, anonymous) { + super(guard, "event", name, inputs); + Object.defineProperty(this, internal, { value: EventFragmentInternal }); + defineProperties(this, { anonymous }); + } + /** + * The Event topic hash. + */ + get topicHash() { + return id(this.format("sighash")); + } + /** + * Returns a string representation of this event as %%format%%. + */ + format(format) { + if (format == null) { + format = "sighash"; + } + if (format === "json") { + return JSON.stringify({ + type: "event", + anonymous: this.anonymous, + name: this.name, + inputs: this.inputs.map((i) => JSON.parse(i.format(format))) + }); + } + const result = []; + if (format !== "sighash") { + result.push("event"); + } + result.push(this.name + joinParams(format, this.inputs)); + if (format !== "sighash" && this.anonymous) { + result.push("anonymous"); + } + return result.join(" "); + } + /** + * Return the topic hash for an event with %%name%% and %%params%%. + */ + static getTopicHash(name, params) { + params = (params || []).map((p) => ParamType.from(p)); + const fragment = new _EventFragment(_guard2, name, params, false); + return fragment.topicHash; + } + /** + * Returns a new **EventFragment** for %%obj%%. + */ + static from(obj) { + if (_EventFragment.isFragment(obj)) { + return obj; + } + if (typeof obj === "string") { + try { + return _EventFragment.from(lex(obj)); + } catch (error) { + assertArgument(false, "invalid event fragment", "obj", obj); + } + } else if (obj instanceof TokenString) { + const name = consumeName("event", obj); + const inputs = consumeParams(obj, true); + const anonymous = !!consumeKeywords(obj, setify(["anonymous"])).has("anonymous"); + consumeEoi(obj); + return new _EventFragment(_guard2, name, inputs, anonymous); + } + return new _EventFragment(_guard2, obj.name, obj.inputs ? obj.inputs.map((p) => ParamType.from(p, true)) : [], !!obj.anonymous); + } + /** + * Returns ``true`` and provides a type guard if %%value%% is an + * **EventFragment**. + */ + static isFragment(value) { + return value && value[internal] === EventFragmentInternal; + } +}; +var ConstructorFragment = class _ConstructorFragment extends Fragment { + /** + * Whether the constructor can receive an endowment. + */ + payable; + /** + * The recommended gas limit for deployment or ``null``. + */ + gas; + /** + * @private + */ + constructor(guard, type, inputs, payable, gas) { + super(guard, type, inputs); + Object.defineProperty(this, internal, { value: ConstructorFragmentInternal }); + defineProperties(this, { payable, gas }); + } + /** + * Returns a string representation of this constructor as %%format%%. + */ + format(format) { + assert(format != null && format !== "sighash", "cannot format a constructor for sighash", "UNSUPPORTED_OPERATION", { operation: "format(sighash)" }); + if (format === "json") { + return JSON.stringify({ + type: "constructor", + stateMutability: this.payable ? "payable" : "undefined", + payable: this.payable, + gas: this.gas != null ? this.gas : void 0, + inputs: this.inputs.map((i) => JSON.parse(i.format(format))) + }); + } + const result = [`constructor${joinParams(format, this.inputs)}`]; + if (this.payable) { + result.push("payable"); + } + if (this.gas != null) { + result.push(`@${this.gas.toString()}`); + } + return result.join(" "); + } + /** + * Returns a new **ConstructorFragment** for %%obj%%. + */ + static from(obj) { + if (_ConstructorFragment.isFragment(obj)) { + return obj; + } + if (typeof obj === "string") { + try { + return _ConstructorFragment.from(lex(obj)); + } catch (error) { + assertArgument(false, "invalid constuctor fragment", "obj", obj); + } + } else if (obj instanceof TokenString) { + consumeKeywords(obj, setify(["constructor"])); + const inputs = consumeParams(obj); + const payable = !!consumeKeywords(obj, KwVisibDeploy).has("payable"); + const gas = consumeGas(obj); + consumeEoi(obj); + return new _ConstructorFragment(_guard2, "constructor", inputs, payable, gas); + } + return new _ConstructorFragment(_guard2, "constructor", obj.inputs ? obj.inputs.map(ParamType.from) : [], !!obj.payable, obj.gas != null ? obj.gas : null); + } + /** + * Returns ``true`` and provides a type guard if %%value%% is a + * **ConstructorFragment**. + */ + static isFragment(value) { + return value && value[internal] === ConstructorFragmentInternal; + } +}; +var FallbackFragment = class _FallbackFragment extends Fragment { + /** + * If the function can be sent value during invocation. + */ + payable; + constructor(guard, inputs, payable) { + super(guard, "fallback", inputs); + Object.defineProperty(this, internal, { value: FallbackFragmentInternal }); + defineProperties(this, { payable }); + } + /** + * Returns a string representation of this fallback as %%format%%. + */ + format(format) { + const type = this.inputs.length === 0 ? "receive" : "fallback"; + if (format === "json") { + const stateMutability = this.payable ? "payable" : "nonpayable"; + return JSON.stringify({ type, stateMutability }); + } + return `${type}()${this.payable ? " payable" : ""}`; + } + /** + * Returns a new **FallbackFragment** for %%obj%%. + */ + static from(obj) { + if (_FallbackFragment.isFragment(obj)) { + return obj; + } + if (typeof obj === "string") { + try { + return _FallbackFragment.from(lex(obj)); + } catch (error) { + assertArgument(false, "invalid fallback fragment", "obj", obj); + } + } else if (obj instanceof TokenString) { + const errorObj = obj.toString(); + const topIsValid = obj.peekKeyword(setify(["fallback", "receive"])); + assertArgument(topIsValid, "type must be fallback or receive", "obj", errorObj); + const type = obj.popKeyword(setify(["fallback", "receive"])); + if (type === "receive") { + const inputs2 = consumeParams(obj); + assertArgument(inputs2.length === 0, `receive cannot have arguments`, "obj.inputs", inputs2); + consumeKeywords(obj, setify(["payable"])); + consumeEoi(obj); + return new _FallbackFragment(_guard2, [], true); + } + let inputs = consumeParams(obj); + if (inputs.length) { + assertArgument(inputs.length === 1 && inputs[0].type === "bytes", "invalid fallback inputs", "obj.inputs", inputs.map((i) => i.format("minimal")).join(", ")); + } else { + inputs = [ParamType.from("bytes")]; + } + const mutability = consumeMutability(obj); + assertArgument(mutability === "nonpayable" || mutability === "payable", "fallback cannot be constants", "obj.stateMutability", mutability); + if (consumeKeywords(obj, setify(["returns"])).has("returns")) { + const outputs = consumeParams(obj); + assertArgument(outputs.length === 1 && outputs[0].type === "bytes", "invalid fallback outputs", "obj.outputs", outputs.map((i) => i.format("minimal")).join(", ")); + } + consumeEoi(obj); + return new _FallbackFragment(_guard2, inputs, mutability === "payable"); + } + if (obj.type === "receive") { + return new _FallbackFragment(_guard2, [], true); + } + if (obj.type === "fallback") { + const inputs = [ParamType.from("bytes")]; + const payable = obj.stateMutability === "payable"; + return new _FallbackFragment(_guard2, inputs, payable); + } + assertArgument(false, "invalid fallback description", "obj", obj); + } + /** + * Returns ``true`` and provides a type guard if %%value%% is a + * **FallbackFragment**. + */ + static isFragment(value) { + return value && value[internal] === FallbackFragmentInternal; + } +}; +var FunctionFragment = class _FunctionFragment extends NamedFragment { + /** + * If the function is constant (e.g. ``pure`` or ``view`` functions). + */ + constant; + /** + * The returned types for the result of calling this function. + */ + outputs; + /** + * The state mutability (e.g. ``payable``, ``nonpayable``, ``view`` + * or ``pure``) + */ + stateMutability; + /** + * If the function can be sent value during invocation. + */ + payable; + /** + * The recommended gas limit to send when calling this function. + */ + gas; + /** + * @private + */ + constructor(guard, name, stateMutability, inputs, outputs, gas) { + super(guard, "function", name, inputs); + Object.defineProperty(this, internal, { value: FunctionFragmentInternal }); + outputs = Object.freeze(outputs.slice()); + const constant = stateMutability === "view" || stateMutability === "pure"; + const payable = stateMutability === "payable"; + defineProperties(this, { constant, gas, outputs, payable, stateMutability }); + } + /** + * The Function selector. + */ + get selector() { + return id(this.format("sighash")).substring(0, 10); + } + /** + * Returns a string representation of this function as %%format%%. + */ + format(format) { + if (format == null) { + format = "sighash"; + } + if (format === "json") { + return JSON.stringify({ + type: "function", + name: this.name, + constant: this.constant, + stateMutability: this.stateMutability !== "nonpayable" ? this.stateMutability : void 0, + payable: this.payable, + gas: this.gas != null ? this.gas : void 0, + inputs: this.inputs.map((i) => JSON.parse(i.format(format))), + outputs: this.outputs.map((o) => JSON.parse(o.format(format))) + }); + } + const result = []; + if (format !== "sighash") { + result.push("function"); + } + result.push(this.name + joinParams(format, this.inputs)); + if (format !== "sighash") { + if (this.stateMutability !== "nonpayable") { + result.push(this.stateMutability); + } + if (this.outputs && this.outputs.length) { + result.push("returns"); + result.push(joinParams(format, this.outputs)); + } + if (this.gas != null) { + result.push(`@${this.gas.toString()}`); + } + } + return result.join(" "); + } + /** + * Return the selector for a function with %%name%% and %%params%%. + */ + static getSelector(name, params) { + params = (params || []).map((p) => ParamType.from(p)); + const fragment = new _FunctionFragment(_guard2, name, "view", params, [], null); + return fragment.selector; + } + /** + * Returns a new **FunctionFragment** for %%obj%%. + */ + static from(obj) { + if (_FunctionFragment.isFragment(obj)) { + return obj; + } + if (typeof obj === "string") { + try { + return _FunctionFragment.from(lex(obj)); + } catch (error) { + assertArgument(false, "invalid function fragment", "obj", obj); + } + } else if (obj instanceof TokenString) { + const name = consumeName("function", obj); + const inputs = consumeParams(obj); + const mutability = consumeMutability(obj); + let outputs = []; + if (consumeKeywords(obj, setify(["returns"])).has("returns")) { + outputs = consumeParams(obj); + } + const gas = consumeGas(obj); + consumeEoi(obj); + return new _FunctionFragment(_guard2, name, mutability, inputs, outputs, gas); + } + let stateMutability = obj.stateMutability; + if (stateMutability == null) { + stateMutability = "payable"; + if (typeof obj.constant === "boolean") { + stateMutability = "view"; + if (!obj.constant) { + stateMutability = "payable"; + if (typeof obj.payable === "boolean" && !obj.payable) { + stateMutability = "nonpayable"; + } + } + } else if (typeof obj.payable === "boolean" && !obj.payable) { + stateMutability = "nonpayable"; + } + } + return new _FunctionFragment(_guard2, obj.name, stateMutability, obj.inputs ? obj.inputs.map(ParamType.from) : [], obj.outputs ? obj.outputs.map(ParamType.from) : [], obj.gas != null ? obj.gas : null); + } + /** + * Returns ``true`` and provides a type guard if %%value%% is a + * **FunctionFragment**. + */ + static isFragment(value) { + return value && value[internal] === FunctionFragmentInternal; + } +}; +var StructFragment = class _StructFragment extends NamedFragment { + /** + * @private + */ + constructor(guard, name, inputs) { + super(guard, "struct", name, inputs); + Object.defineProperty(this, internal, { value: StructFragmentInternal }); + } + /** + * Returns a string representation of this struct as %%format%%. + */ + format() { + throw new Error("@TODO"); + } + /** + * Returns a new **StructFragment** for %%obj%%. + */ + static from(obj) { + if (typeof obj === "string") { + try { + return _StructFragment.from(lex(obj)); + } catch (error) { + assertArgument(false, "invalid struct fragment", "obj", obj); + } + } else if (obj instanceof TokenString) { + const name = consumeName("struct", obj); + const inputs = consumeParams(obj); + consumeEoi(obj); + return new _StructFragment(_guard2, name, inputs); + } + return new _StructFragment(_guard2, obj.name, obj.inputs ? obj.inputs.map(ParamType.from) : []); + } + // @TODO: fix this return type + /** + * Returns ``true`` and provides a type guard if %%value%% is a + * **StructFragment**. + */ + static isFragment(value) { + return value && value[internal] === StructFragmentInternal; + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/abi-coder.js +var PanicReasons = /* @__PURE__ */ new Map(); +PanicReasons.set(0, "GENERIC_PANIC"); +PanicReasons.set(1, "ASSERT_FALSE"); +PanicReasons.set(17, "OVERFLOW"); +PanicReasons.set(18, "DIVIDE_BY_ZERO"); +PanicReasons.set(33, "ENUM_RANGE_ERROR"); +PanicReasons.set(34, "BAD_STORAGE_DATA"); +PanicReasons.set(49, "STACK_UNDERFLOW"); +PanicReasons.set(50, "ARRAY_RANGE_ERROR"); +PanicReasons.set(65, "OUT_OF_MEMORY"); +PanicReasons.set(81, "UNINITIALIZED_FUNCTION_CALL"); +var paramTypeBytes = new RegExp(/^bytes([0-9]*)$/); +var paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/); +var defaultCoder = null; +var defaultMaxInflation = 1024; +function getBuiltinCallException(action, tx, data, abiCoder) { + let message = "missing revert data"; + let reason = null; + const invocation = null; + let revert = null; + if (data) { + message = "execution reverted"; + const bytes2 = getBytes(data); + data = hexlify(data); + if (bytes2.length === 0) { + message += " (no data present; likely require(false) occurred"; + reason = "require(false)"; + } else if (bytes2.length % 32 !== 4) { + message += " (could not decode reason; invalid data length)"; + } else if (hexlify(bytes2.slice(0, 4)) === "0x08c379a0") { + try { + reason = abiCoder.decode(["string"], bytes2.slice(4))[0]; + revert = { + signature: "Error(string)", + name: "Error", + args: [reason] + }; + message += `: ${JSON.stringify(reason)}`; + } catch (error) { + message += " (could not decode reason; invalid string data)"; + } + } else if (hexlify(bytes2.slice(0, 4)) === "0x4e487b71") { + try { + const code = Number(abiCoder.decode(["uint256"], bytes2.slice(4))[0]); + revert = { + signature: "Panic(uint256)", + name: "Panic", + args: [code] + }; + reason = `Panic due to ${PanicReasons.get(code) || "UNKNOWN"}(${code})`; + message += `: ${reason}`; + } catch (error) { + message += " (could not decode panic code)"; + } + } else { + message += " (unknown custom error)"; + } + } + const transaction = { + to: tx.to ? getAddress(tx.to) : null, + data: tx.data || "0x" + }; + if (tx.from) { + transaction.from = getAddress(tx.from); + } + return makeError(message, "CALL_EXCEPTION", { + action, + data, + reason, + transaction, + invocation, + revert + }); +} +var AbiCoder = class _AbiCoder { + #getCoder(param) { + if (param.isArray()) { + return new ArrayCoder(this.#getCoder(param.arrayChildren), param.arrayLength, param.name); + } + if (param.isTuple()) { + return new TupleCoder(param.components.map((c) => this.#getCoder(c)), param.name); + } + switch (param.baseType) { + case "address": + return new AddressCoder(param.name); + case "bool": + return new BooleanCoder(param.name); + case "string": + return new StringCoder(param.name); + case "bytes": + return new BytesCoder(param.name); + case "": + return new NullCoder(param.name); + } + let match = param.type.match(paramTypeNumber); + if (match) { + let size = parseInt(match[2] || "256"); + assertArgument(size !== 0 && size <= 256 && size % 8 === 0, "invalid " + match[1] + " bit length", "param", param); + return new NumberCoder(size / 8, match[1] === "int", param.name); + } + match = param.type.match(paramTypeBytes); + if (match) { + let size = parseInt(match[1]); + assertArgument(size !== 0 && size <= 32, "invalid bytes length", "param", param); + return new FixedBytesCoder(size, param.name); + } + assertArgument(false, "invalid type", "type", param.type); + } + /** + * Get the default values for the given %%types%%. + * + * For example, a ``uint`` is by default ``0`` and ``bool`` + * is by default ``false``. + */ + getDefaultValue(types) { + const coders = types.map((type) => this.#getCoder(ParamType.from(type))); + const coder = new TupleCoder(coders, "_"); + return coder.defaultValue(); + } + /** + * Encode the %%values%% as the %%types%% into ABI data. + * + * @returns DataHexstring + */ + encode(types, values) { + assertArgumentCount(values.length, types.length, "types/values length mismatch"); + const coders = types.map((type) => this.#getCoder(ParamType.from(type))); + const coder = new TupleCoder(coders, "_"); + const writer = new Writer(); + coder.encode(writer, values); + return writer.data; + } + /** + * Decode the ABI %%data%% as the %%types%% into values. + * + * If %%loose%% decoding is enabled, then strict padding is + * not enforced. Some older versions of Solidity incorrectly + * padded event data emitted from ``external`` functions. + */ + decode(types, data, loose) { + const coders = types.map((type) => this.#getCoder(ParamType.from(type))); + const coder = new TupleCoder(coders, "_"); + return coder.decode(new Reader(data, loose, defaultMaxInflation)); + } + static _setDefaultMaxInflation(value) { + assertArgument(typeof value === "number" && Number.isInteger(value), "invalid defaultMaxInflation factor", "value", value); + defaultMaxInflation = value; + } + /** + * Returns the shared singleton instance of a default [[AbiCoder]]. + * + * On the first call, the instance is created internally. + */ + static defaultAbiCoder() { + if (defaultCoder == null) { + defaultCoder = new _AbiCoder(); + } + return defaultCoder; + } + /** + * Returns an ethers-compatible [[CallExceptionError]] Error for the given + * result %%data%% for the [[CallExceptionAction]] %%action%% against + * the Transaction %%tx%%. + */ + static getBuiltinCallException(action, tx, data) { + return getBuiltinCallException(action, tx, data, _AbiCoder.defaultAbiCoder()); + } +}; + +// node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/abi/interface.js +var LogDescription = class { + /** + * The matching fragment for the ``topic0``. + */ + fragment; + /** + * The name of the Event. + */ + name; + /** + * The full Event signature. + */ + signature; + /** + * The topic hash for the Event. + */ + topic; + /** + * The arguments passed into the Event with ``emit``. + */ + args; + /** + * @_ignore: + */ + constructor(fragment, topic, args) { + const name = fragment.name, signature = fragment.format(); + defineProperties(this, { + fragment, + name, + signature, + topic, + args + }); + } +}; +var TransactionDescription = class { + /** + * The matching fragment from the transaction ``data``. + */ + fragment; + /** + * The name of the Function from the transaction ``data``. + */ + name; + /** + * The arguments passed to the Function from the transaction ``data``. + */ + args; + /** + * The full Function signature from the transaction ``data``. + */ + signature; + /** + * The selector for the Function from the transaction ``data``. + */ + selector; + /** + * The ``value`` (in wei) from the transaction. + */ + value; + /** + * @_ignore: + */ + constructor(fragment, selector, args, value) { + const name = fragment.name, signature = fragment.format(); + defineProperties(this, { + fragment, + name, + args, + signature, + selector, + value + }); + } +}; +var ErrorDescription = class { + /** + * The matching fragment. + */ + fragment; + /** + * The name of the Error. + */ + name; + /** + * The arguments passed to the Error with ``revert``. + */ + args; + /** + * The full Error signature. + */ + signature; + /** + * The selector for the Error. + */ + selector; + /** + * @_ignore: + */ + constructor(fragment, selector, args) { + const name = fragment.name, signature = fragment.format(); + defineProperties(this, { + fragment, + name, + args, + signature, + selector + }); + } +}; +var Indexed = class { + /** + * The ``keccak256`` of the value logged. + */ + hash; + /** + * @_ignore: + */ + _isIndexed; + /** + * Returns ``true`` if %%value%% is an **Indexed**. + * + * This provides a Type Guard for property access. + */ + static isIndexed(value) { + return !!(value && value._isIndexed); + } + /** + * @_ignore: + */ + constructor(hash) { + defineProperties(this, { hash, _isIndexed: true }); + } +}; +var PanicReasons2 = { + "0": "generic panic", + "1": "assert(false)", + "17": "arithmetic overflow", + "18": "division or modulo by zero", + "33": "enum overflow", + "34": "invalid encoded storage byte array accessed", + "49": "out-of-bounds array access; popping on an empty array", + "50": "out-of-bounds access of an array or bytesN", + "65": "out of memory", + "81": "uninitialized function" +}; +var BuiltinErrors = { + "0x08c379a0": { + signature: "Error(string)", + name: "Error", + inputs: ["string"], + reason: (message) => { + return `reverted with reason string ${JSON.stringify(message)}`; + } + }, + "0x4e487b71": { + signature: "Panic(uint256)", + name: "Panic", + inputs: ["uint256"], + reason: (code) => { + let reason = "unknown panic code"; + if (code >= 0 && code <= 255 && PanicReasons2[code.toString()]) { + reason = PanicReasons2[code.toString()]; + } + return `reverted with panic code 0x${code.toString(16)} (${reason})`; + } + } +}; +var Interface = class _Interface { + /** + * All the Contract ABI members (i.e. methods, events, errors, etc). + */ + fragments; + /** + * The Contract constructor. + */ + deploy; + /** + * The Fallback method, if any. + */ + fallback; + /** + * If receiving ether is supported. + */ + receive; + #errors; + #events; + #functions; + // #structs: Map; + #abiCoder; + /** + * Create a new Interface for the %%fragments%%. + */ + constructor(fragments) { + let abi = []; + if (typeof fragments === "string") { + abi = JSON.parse(fragments); + } else { + abi = fragments; + } + this.#functions = /* @__PURE__ */ new Map(); + this.#errors = /* @__PURE__ */ new Map(); + this.#events = /* @__PURE__ */ new Map(); + const frags = []; + for (const a of abi) { + try { + frags.push(Fragment.from(a)); + } catch (error) { + console.log(`[Warning] Invalid Fragment ${JSON.stringify(a)}:`, error.message); + } + } + defineProperties(this, { + fragments: Object.freeze(frags) + }); + let fallback = null; + let receive = false; + this.#abiCoder = this.getAbiCoder(); + this.fragments.forEach((fragment, index) => { + let bucket; + switch (fragment.type) { + case "constructor": + if (this.deploy) { + console.log("duplicate definition - constructor"); + return; + } + defineProperties(this, { deploy: fragment }); + return; + case "fallback": + if (fragment.inputs.length === 0) { + receive = true; + } else { + assertArgument(!fallback || fragment.payable !== fallback.payable, "conflicting fallback fragments", `fragments[${index}]`, fragment); + fallback = fragment; + receive = fallback.payable; + } + return; + case "function": + bucket = this.#functions; + break; + case "event": + bucket = this.#events; + break; + case "error": + bucket = this.#errors; + break; + default: + return; + } + const signature = fragment.format(); + if (bucket.has(signature)) { + return; + } + bucket.set(signature, fragment); + }); + if (!this.deploy) { + defineProperties(this, { + deploy: ConstructorFragment.from("constructor()") + }); + } + defineProperties(this, { fallback, receive }); + } + /** + * Returns the entire Human-Readable ABI, as an array of + * signatures, optionally as %%minimal%% strings, which + * removes parameter names and unneceesary spaces. + */ + format(minimal) { + const format = minimal ? "minimal" : "full"; + const abi = this.fragments.map((f) => f.format(format)); + return abi; + } + /** + * Return the JSON-encoded ABI. This is the format Solidiy + * returns. + */ + formatJson() { + const abi = this.fragments.map((f) => f.format("json")); + return JSON.stringify(abi.map((j) => JSON.parse(j))); + } + /** + * The ABI coder that will be used to encode and decode binary + * data. + */ + getAbiCoder() { + return AbiCoder.defaultAbiCoder(); + } + // Find a function definition by any means necessary (unless it is ambiguous) + #getFunction(key, values, forceUnique) { + if (isHexString(key)) { + const selector = key.toLowerCase(); + for (const fragment of this.#functions.values()) { + if (selector === fragment.selector) { + return fragment; + } + } + return null; + } + if (key.indexOf("(") === -1) { + const matching = []; + for (const [name, fragment] of this.#functions) { + if (name.split( + "(" + /* fix:) */ + )[0] === key) { + matching.push(fragment); + } + } + if (values) { + const lastValue = values.length > 0 ? values[values.length - 1] : null; + let valueLength = values.length; + let allowOptions = true; + if (Typed.isTyped(lastValue) && lastValue.type === "overrides") { + allowOptions = false; + valueLength--; + } + for (let i = matching.length - 1; i >= 0; i--) { + const inputs = matching[i].inputs.length; + if (inputs !== valueLength && (!allowOptions || inputs !== valueLength - 1)) { + matching.splice(i, 1); + } + } + for (let i = matching.length - 1; i >= 0; i--) { + const inputs = matching[i].inputs; + for (let j = 0; j < values.length; j++) { + if (!Typed.isTyped(values[j])) { + continue; + } + if (j >= inputs.length) { + if (values[j].type === "overrides") { + continue; + } + matching.splice(i, 1); + break; + } + if (values[j].type !== inputs[j].baseType) { + matching.splice(i, 1); + break; + } + } + } + } + if (matching.length === 1 && values && values.length !== matching[0].inputs.length) { + const lastArg = values[values.length - 1]; + if (lastArg == null || Array.isArray(lastArg) || typeof lastArg !== "object") { + matching.splice(0, 1); + } + } + if (matching.length === 0) { + return null; + } + if (matching.length > 1 && forceUnique) { + const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", "); + assertArgument(false, `ambiguous function description (i.e. matches ${matchStr})`, "key", key); + } + return matching[0]; + } + const result = this.#functions.get(FunctionFragment.from(key).format()); + if (result) { + return result; + } + return null; + } + /** + * Get the function name for %%key%%, which may be a function selector, + * function name or function signature that belongs to the ABI. + */ + getFunctionName(key) { + const fragment = this.#getFunction(key, null, false); + assertArgument(fragment, "no matching function", "key", key); + return fragment.name; + } + /** + * Returns true if %%key%% (a function selector, function name or + * function signature) is present in the ABI. + * + * In the case of a function name, the name may be ambiguous, so + * accessing the [[FunctionFragment]] may require refinement. + */ + hasFunction(key) { + return !!this.#getFunction(key, null, false); + } + /** + * Get the [[FunctionFragment]] for %%key%%, which may be a function + * selector, function name or function signature that belongs to the ABI. + * + * If %%values%% is provided, it will use the Typed API to handle + * ambiguous cases where multiple functions match by name. + * + * If the %%key%% and %%values%% do not refine to a single function in + * the ABI, this will throw. + */ + getFunction(key, values) { + return this.#getFunction(key, values || null, true); + } + /** + * Iterate over all functions, calling %%callback%%, sorted by their name. + */ + forEachFunction(callback) { + const names = Array.from(this.#functions.keys()); + names.sort((a, b2) => a.localeCompare(b2)); + for (let i = 0; i < names.length; i++) { + const name = names[i]; + callback(this.#functions.get(name), i); + } + } + // Find an event definition by any means necessary (unless it is ambiguous) + #getEvent(key, values, forceUnique) { + if (isHexString(key)) { + const eventTopic = key.toLowerCase(); + for (const fragment of this.#events.values()) { + if (eventTopic === fragment.topicHash) { + return fragment; + } + } + return null; + } + if (key.indexOf("(") === -1) { + const matching = []; + for (const [name, fragment] of this.#events) { + if (name.split( + "(" + /* fix:) */ + )[0] === key) { + matching.push(fragment); + } + } + if (values) { + for (let i = matching.length - 1; i >= 0; i--) { + if (matching[i].inputs.length < values.length) { + matching.splice(i, 1); + } + } + for (let i = matching.length - 1; i >= 0; i--) { + const inputs = matching[i].inputs; + for (let j = 0; j < values.length; j++) { + if (!Typed.isTyped(values[j])) { + continue; + } + if (values[j].type !== inputs[j].baseType) { + matching.splice(i, 1); + break; + } + } + } + } + if (matching.length === 0) { + return null; + } + if (matching.length > 1 && forceUnique) { + const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", "); + assertArgument(false, `ambiguous event description (i.e. matches ${matchStr})`, "key", key); + } + return matching[0]; + } + const result = this.#events.get(EventFragment.from(key).format()); + if (result) { + return result; + } + return null; + } + /** + * Get the event name for %%key%%, which may be a topic hash, + * event name or event signature that belongs to the ABI. + */ + getEventName(key) { + const fragment = this.#getEvent(key, null, false); + assertArgument(fragment, "no matching event", "key", key); + return fragment.name; + } + /** + * Returns true if %%key%% (an event topic hash, event name or + * event signature) is present in the ABI. + * + * In the case of an event name, the name may be ambiguous, so + * accessing the [[EventFragment]] may require refinement. + */ + hasEvent(key) { + return !!this.#getEvent(key, null, false); + } + /** + * Get the [[EventFragment]] for %%key%%, which may be a topic hash, + * event name or event signature that belongs to the ABI. + * + * If %%values%% is provided, it will use the Typed API to handle + * ambiguous cases where multiple events match by name. + * + * If the %%key%% and %%values%% do not refine to a single event in + * the ABI, this will throw. + */ + getEvent(key, values) { + return this.#getEvent(key, values || null, true); + } + /** + * Iterate over all events, calling %%callback%%, sorted by their name. + */ + forEachEvent(callback) { + const names = Array.from(this.#events.keys()); + names.sort((a, b2) => a.localeCompare(b2)); + for (let i = 0; i < names.length; i++) { + const name = names[i]; + callback(this.#events.get(name), i); + } + } + /** + * Get the [[ErrorFragment]] for %%key%%, which may be an error + * selector, error name or error signature that belongs to the ABI. + * + * If %%values%% is provided, it will use the Typed API to handle + * ambiguous cases where multiple errors match by name. + * + * If the %%key%% and %%values%% do not refine to a single error in + * the ABI, this will throw. + */ + getError(key, values) { + if (isHexString(key)) { + const selector = key.toLowerCase(); + if (BuiltinErrors[selector]) { + return ErrorFragment.from(BuiltinErrors[selector].signature); + } + for (const fragment of this.#errors.values()) { + if (selector === fragment.selector) { + return fragment; + } + } + return null; + } + if (key.indexOf("(") === -1) { + const matching = []; + for (const [name, fragment] of this.#errors) { + if (name.split( + "(" + /* fix:) */ + )[0] === key) { + matching.push(fragment); + } + } + if (matching.length === 0) { + if (key === "Error") { + return ErrorFragment.from("error Error(string)"); + } + if (key === "Panic") { + return ErrorFragment.from("error Panic(uint256)"); + } + return null; + } else if (matching.length > 1) { + const matchStr = matching.map((m) => JSON.stringify(m.format())).join(", "); + assertArgument(false, `ambiguous error description (i.e. ${matchStr})`, "name", key); + } + return matching[0]; + } + key = ErrorFragment.from(key).format(); + if (key === "Error(string)") { + return ErrorFragment.from("error Error(string)"); + } + if (key === "Panic(uint256)") { + return ErrorFragment.from("error Panic(uint256)"); + } + const result = this.#errors.get(key); + if (result) { + return result; + } + return null; + } + /** + * Iterate over all errors, calling %%callback%%, sorted by their name. + */ + forEachError(callback) { + const names = Array.from(this.#errors.keys()); + names.sort((a, b2) => a.localeCompare(b2)); + for (let i = 0; i < names.length; i++) { + const name = names[i]; + callback(this.#errors.get(name), i); + } + } + // Get the 4-byte selector used by Solidity to identify a function + /* + getSelector(fragment: ErrorFragment | FunctionFragment): string { + if (typeof(fragment) === "string") { + const matches: Array = [ ]; + + try { matches.push(this.getFunction(fragment)); } catch (error) { } + try { matches.push(this.getError(fragment)); } catch (_) { } + + if (matches.length === 0) { + logger.throwArgumentError("unknown fragment", "key", fragment); + } else if (matches.length > 1) { + logger.throwArgumentError("ambiguous fragment matches function and error", "key", fragment); + } + + fragment = matches[0]; + } + + return dataSlice(id(fragment.format()), 0, 4); + } + */ + // Get the 32-byte topic hash used by Solidity to identify an event + /* + getEventTopic(fragment: EventFragment): string { + //if (typeof(fragment) === "string") { fragment = this.getEvent(eventFragment); } + return id(fragment.format()); + } + */ + _decodeParams(params, data) { + return this.#abiCoder.decode(params, data); + } + _encodeParams(params, values) { + return this.#abiCoder.encode(params, values); + } + /** + * Encodes a ``tx.data`` object for deploying the Contract with + * the %%values%% as the constructor arguments. + */ + encodeDeploy(values) { + return this._encodeParams(this.deploy.inputs, values || []); + } + /** + * Decodes the result %%data%% (e.g. from an ``eth_call``) for the + * specified error (see [[getError]] for valid values for + * %%key%%). + * + * Most developers should prefer the [[parseCallResult]] method instead, + * which will automatically detect a ``CALL_EXCEPTION`` and throw the + * corresponding error. + */ + decodeErrorResult(fragment, data) { + if (typeof fragment === "string") { + const f = this.getError(fragment); + assertArgument(f, "unknown error", "fragment", fragment); + fragment = f; + } + assertArgument(dataSlice(data, 0, 4) === fragment.selector, `data signature does not match error ${fragment.name}.`, "data", data); + return this._decodeParams(fragment.inputs, dataSlice(data, 4)); + } + /** + * Encodes the transaction revert data for a call result that + * reverted from the the Contract with the sepcified %%error%% + * (see [[getError]] for valid values for %%fragment%%) with the %%values%%. + * + * This is generally not used by most developers, unless trying to mock + * a result from a Contract. + */ + encodeErrorResult(fragment, values) { + if (typeof fragment === "string") { + const f = this.getError(fragment); + assertArgument(f, "unknown error", "fragment", fragment); + fragment = f; + } + return concat([ + fragment.selector, + this._encodeParams(fragment.inputs, values || []) + ]); + } + /** + * Decodes the %%data%% from a transaction ``tx.data`` for + * the function specified (see [[getFunction]] for valid values + * for %%fragment%%). + * + * Most developers should prefer the [[parseTransaction]] method + * instead, which will automatically detect the fragment. + */ + decodeFunctionData(fragment, data) { + if (typeof fragment === "string") { + const f = this.getFunction(fragment); + assertArgument(f, "unknown function", "fragment", fragment); + fragment = f; + } + assertArgument(dataSlice(data, 0, 4) === fragment.selector, `data signature does not match function ${fragment.name}.`, "data", data); + return this._decodeParams(fragment.inputs, dataSlice(data, 4)); + } + /** + * Encodes the ``tx.data`` for a transaction that calls the function + * specified (see [[getFunction]] for valid values for %%fragment%%) with + * the %%values%%. + */ + encodeFunctionData(fragment, values) { + if (typeof fragment === "string") { + const f = this.getFunction(fragment); + assertArgument(f, "unknown function", "fragment", fragment); + fragment = f; + } + return concat([ + fragment.selector, + this._encodeParams(fragment.inputs, values || []) + ]); + } + /** + * Decodes the result %%data%% (e.g. from an ``eth_call``) for the + * specified function (see [[getFunction]] for valid values for + * %%key%%). + * + * Most developers should prefer the [[parseCallResult]] method instead, + * which will automatically detect a ``CALL_EXCEPTION`` and throw the + * corresponding error. + */ + decodeFunctionResult(fragment, data) { + if (typeof fragment === "string") { + const f = this.getFunction(fragment); + assertArgument(f, "unknown function", "fragment", fragment); + fragment = f; + } + let message = "invalid length for result data"; + const bytes2 = getBytesCopy(data); + if (bytes2.length % 32 === 0) { + try { + return this.#abiCoder.decode(fragment.outputs, bytes2); + } catch (error) { + message = "could not decode result data"; + } + } + assert(false, message, "BAD_DATA", { + value: hexlify(bytes2), + info: { method: fragment.name, signature: fragment.format() } + }); + } + makeError(_data, tx) { + const data = getBytes(_data, "data"); + const error = AbiCoder.getBuiltinCallException("call", tx, data); + const customPrefix = "execution reverted (unknown custom error)"; + if (error.message.startsWith(customPrefix)) { + const selector = hexlify(data.slice(0, 4)); + const ef = this.getError(selector); + if (ef) { + try { + const args = this.#abiCoder.decode(ef.inputs, data.slice(4)); + error.revert = { + name: ef.name, + signature: ef.format(), + args + }; + error.reason = error.revert.signature; + error.message = `execution reverted: ${error.reason}`; + } catch (e) { + error.message = `execution reverted (coult not decode custom error)`; + } + } + } + const parsed = this.parseTransaction(tx); + if (parsed) { + error.invocation = { + method: parsed.name, + signature: parsed.signature, + args: parsed.args + }; + } + return error; + } + /** + * Encodes the result data (e.g. from an ``eth_call``) for the + * specified function (see [[getFunction]] for valid values + * for %%fragment%%) with %%values%%. + * + * This is generally not used by most developers, unless trying to mock + * a result from a Contract. + */ + encodeFunctionResult(fragment, values) { + if (typeof fragment === "string") { + const f = this.getFunction(fragment); + assertArgument(f, "unknown function", "fragment", fragment); + fragment = f; + } + return hexlify(this.#abiCoder.encode(fragment.outputs, values || [])); + } + /* + spelunk(inputs: Array, values: ReadonlyArray, processfunc: (type: string, value: any) => Promise): Promise> { + const promises: Array> = [ ]; + const process = function(type: ParamType, value: any): any { + if (type.baseType === "array") { + return descend(type.child + } + if (type. === "address") { + } + }; + + const descend = function (inputs: Array, values: ReadonlyArray) { + if (inputs.length !== values.length) { throw new Error("length mismatch"); } + + }; + + const result: Array = [ ]; + values.forEach((value, index) => { + if (value == null) { + topics.push(null); + } else if (param.baseType === "array" || param.baseType === "tuple") { + logger.throwArgumentError("filtering with tuples or arrays not supported", ("contract." + param.name), value); + } else if (Array.isArray(value)) { + topics.push(value.map((value) => encodeTopic(param, value))); + } else { + topics.push(encodeTopic(param, value)); + } + }); + } + */ + // Create the filter for the event with search criteria (e.g. for eth_filterLog) + encodeFilterTopics(fragment, values) { + if (typeof fragment === "string") { + const f = this.getEvent(fragment); + assertArgument(f, "unknown event", "eventFragment", fragment); + fragment = f; + } + assert(values.length <= fragment.inputs.length, `too many arguments for ${fragment.format()}`, "UNEXPECTED_ARGUMENT", { count: values.length, expectedCount: fragment.inputs.length }); + const topics = []; + if (!fragment.anonymous) { + topics.push(fragment.topicHash); + } + const encodeTopic = (param, value) => { + if (param.type === "string") { + return id(value); + } else if (param.type === "bytes") { + return keccak256(hexlify(value)); + } + if (param.type === "bool" && typeof value === "boolean") { + value = value ? "0x01" : "0x00"; + } else if (param.type.match(/^u?int/)) { + value = toBeHex(value); + } else if (param.type.match(/^bytes/)) { + value = zeroPadBytes(value, 32); + } else if (param.type === "address") { + this.#abiCoder.encode(["address"], [value]); + } + return zeroPadValue(hexlify(value), 32); + }; + values.forEach((value, index) => { + const param = fragment.inputs[index]; + if (!param.indexed) { + assertArgument(value == null, "cannot filter non-indexed parameters; must be null", "contract." + param.name, value); + return; + } + if (value == null) { + topics.push(null); + } else if (param.baseType === "array" || param.baseType === "tuple") { + assertArgument(false, "filtering with tuples or arrays not supported", "contract." + param.name, value); + } else if (Array.isArray(value)) { + topics.push(value.map((value2) => encodeTopic(param, value2))); + } else { + topics.push(encodeTopic(param, value)); + } + }); + while (topics.length && topics[topics.length - 1] === null) { + topics.pop(); + } + return topics; + } + encodeEventLog(fragment, values) { + if (typeof fragment === "string") { + const f = this.getEvent(fragment); + assertArgument(f, "unknown event", "eventFragment", fragment); + fragment = f; + } + const topics = []; + const dataTypes = []; + const dataValues = []; + if (!fragment.anonymous) { + topics.push(fragment.topicHash); + } + assertArgument(values.length === fragment.inputs.length, "event arguments/values mismatch", "values", values); + fragment.inputs.forEach((param, index) => { + const value = values[index]; + if (param.indexed) { + if (param.type === "string") { + topics.push(id(value)); + } else if (param.type === "bytes") { + topics.push(keccak256(value)); + } else if (param.baseType === "tuple" || param.baseType === "array") { + throw new Error("not implemented"); + } else { + topics.push(this.#abiCoder.encode([param.type], [value])); + } + } else { + dataTypes.push(param); + dataValues.push(value); + } + }); + return { + data: this.#abiCoder.encode(dataTypes, dataValues), + topics + }; + } + // Decode a filter for the event and the search criteria + decodeEventLog(fragment, data, topics) { + if (typeof fragment === "string") { + const f = this.getEvent(fragment); + assertArgument(f, "unknown event", "eventFragment", fragment); + fragment = f; + } + if (topics != null && !fragment.anonymous) { + const eventTopic = fragment.topicHash; + assertArgument(isHexString(topics[0], 32) && topics[0].toLowerCase() === eventTopic, "fragment/topic mismatch", "topics[0]", topics[0]); + topics = topics.slice(1); + } + const indexed = []; + const nonIndexed = []; + const dynamic = []; + fragment.inputs.forEach((param, index) => { + if (param.indexed) { + if (param.type === "string" || param.type === "bytes" || param.baseType === "tuple" || param.baseType === "array") { + indexed.push(ParamType.from({ type: "bytes32", name: param.name })); + dynamic.push(true); + } else { + indexed.push(param); + dynamic.push(false); + } + } else { + nonIndexed.push(param); + dynamic.push(false); + } + }); + const resultIndexed = topics != null ? this.#abiCoder.decode(indexed, concat(topics)) : null; + const resultNonIndexed = this.#abiCoder.decode(nonIndexed, data, true); + const values = []; + const keys = []; + let nonIndexedIndex = 0, indexedIndex = 0; + fragment.inputs.forEach((param, index) => { + let value = null; + if (param.indexed) { + if (resultIndexed == null) { + value = new Indexed(null); + } else if (dynamic[index]) { + value = new Indexed(resultIndexed[indexedIndex++]); + } else { + try { + value = resultIndexed[indexedIndex++]; + } catch (error) { + value = error; + } + } + } else { + try { + value = resultNonIndexed[nonIndexedIndex++]; + } catch (error) { + value = error; + } + } + values.push(value); + keys.push(param.name || null); + }); + return Result.fromItems(values, keys); + } + /** + * Parses a transaction, finding the matching function and extracts + * the parameter values along with other useful function details. + * + * If the matching function cannot be found, return null. + */ + parseTransaction(tx) { + const data = getBytes(tx.data, "tx.data"); + const value = getBigInt(tx.value != null ? tx.value : 0, "tx.value"); + const fragment = this.getFunction(hexlify(data.slice(0, 4))); + if (!fragment) { + return null; + } + const args = this.#abiCoder.decode(fragment.inputs, data.slice(4)); + return new TransactionDescription(fragment, fragment.selector, args, value); + } + parseCallResult(data) { + throw new Error("@TODO"); + } + /** + * Parses a receipt log, finding the matching event and extracts + * the parameter values along with other useful event details. + * + * If the matching event cannot be found, returns null. + */ + parseLog(log) { + const fragment = this.getEvent(log.topics[0]); + if (!fragment || fragment.anonymous) { + return null; + } + return new LogDescription(fragment, fragment.topicHash, this.decodeEventLog(fragment, log.data, log.topics)); + } + /** + * Parses a revert data, finding the matching error and extracts + * the parameter values along with other useful error details. + * + * If the matching error cannot be found, returns null. + */ + parseError(data) { + const hexData = hexlify(data); + const fragment = this.getError(dataSlice(hexData, 0, 4)); + if (!fragment) { + return null; + } + const args = this.#abiCoder.decode(fragment.inputs, dataSlice(hexData, 4)); + return new ErrorDescription(fragment, fragment.selector, args); + } + /** + * Creates a new [[Interface]] from the ABI %%value%%. + * + * The %%value%% may be provided as an existing [[Interface]] object, + * a JSON-encoded ABI or any Human-Readable ABI format. + */ + static from(value) { + if (value instanceof _Interface) { + return value; + } + if (typeof value === "string") { + return new _Interface(JSON.parse(value)); + } + if (typeof value.formatJson === "function") { + return new _Interface(value.formatJson()); + } + if (typeof value.format === "function") { + return new _Interface(value.format("json")); + } + return new _Interface(value); + } +}; + +// packages/contracts/src/utils/abi-extractor.ts +function extractAbiMethods(networkCache, methodNames) { + const result = {}; + networkCache.data.forEach((contractGroup) => { + const contractName = contractGroup.name; + contractGroup.contracts.forEach((contract) => { + const { address_hash: address, ABI } = contract; + ABI.forEach((abiItem) => { + if (abiItem.type === "function" && methodNames.includes(abiItem.name)) { + try { + const iface = new Interface(ABI); + let functionFragment; + if (abiItem.name === "safeTransferFrom") { + functionFragment = iface.getFunction( + "safeTransferFrom(address,address,uint256)" + ); + } else { + functionFragment = iface.getFunction(abiItem.name); + } + const functionSignature = functionFragment?.format("full"); + result[abiItem.name] = { + contractName, + address, + // signature: functionSignature, + abi: abiItem + }; + } catch (error) { + console.warn( + `Failed to parse ABI item for method ${abiItem.name}:`, + error + ); + } + } + }); + }); + }); + return result; +} + +// packages/contracts/src/custom-network-signatures.ts +function getBaseDirectory(useScriptDirectory = false, callerPath) { + if (useScriptDirectory) { + if (callerPath) { + const callerDir = dirname(fileURLToPath(callerPath)); + console.log("Using caller directory:", callerDir); + return callerDir; + } + if (typeof __filename !== "undefined") { + console.log("Using __dirname:", __dirname); + return __dirname; + } + const moduleDir = dirname(fileURLToPath(import.meta.url)); + console.log("Using module directory:", moduleDir); + return moduleDir; + } + const cwd = process.cwd(); + console.log("Using current working directory:", cwd); + return cwd; +} +function resolvePath(relativePath, baseDir, forceRelative = false) { + if (path.isAbsolute(relativePath) && !forceRelative) { + return relativePath; + } + return path.resolve(baseDir, relativePath); +} +function convertToNetworkCache(rawJson, networkName) { + const contractGroups = Object.entries(rawJson).map( + ([contractName, info]) => ({ + name: contractName, + contracts: [ + { + network: networkName, + address_hash: info.address, + inserted_at: (/* @__PURE__ */ new Date()).toISOString(), + ABI: info.abi + } + ] + }) + ); + return { + data: contractGroups + }; +} +function generateAbiSignatures(networkData) { + const methodsByContract = /* @__PURE__ */ new Map(); + METHODS_TO_EXTRACT.forEach((methodString) => { + const [contractName, methodName] = methodString.split("."); + if (!methodsByContract.has(contractName)) { + methodsByContract.set(contractName, []); + } + methodsByContract.get(contractName).push(methodName); + }); + const signatures = {}; + networkData.data.forEach((contractGroup) => { + const contractName = contractGroup.name; + if (methodsByContract.has(contractName)) { + const methods = methodsByContract.get(contractName); + const contractMethods = extractAbiMethods(networkData, methods); + if (Object.keys(contractMethods).length > 0) { + const address = contractGroup.contracts[0].address_hash; + const events = contractGroup.contracts[0].ABI.filter( + (item) => item.type === "event" + ); + signatures[contractName] = { + address, + methods: Object.fromEntries( + Object.entries(contractMethods).map(([methodName, data]) => [ + methodName, + data.abi + ]) + ), + events + }; + } + } + }); + return signatures; +} +function buildSignaturesFromContext(options) { + const { + jsonFilePath, + networkName = "custom-network", + useScriptDirectory = false, + callerPath + } = options; + if (useScriptDirectory && !callerPath) { + throw new Error( + "callerPath (import.meta.url) is required when useScriptDirectory is true" + ); + } + const baseDirectory = getBaseDirectory(useScriptDirectory, callerPath); + const resolvedJsonPath = resolvePath(jsonFilePath, baseDirectory); + console.log(`\u{1F4DD} Processing custom network context: ${resolvedJsonPath}`); + const rawJsonData = JSON.parse(fs.readFileSync(resolvedJsonPath, "utf8")); + const jsonData = convertToNetworkCache(rawJsonData, networkName); + console.log("\u{1F4CA} Generating signatures..."); + const signatures = generateAbiSignatures(jsonData); + return { + signatures, + networkName, + resolvedJsonPath, + baseDirectory + }; +} +async function generateSignaturesFromContext(options) { + try { + const { + signatures, + networkName, + resolvedJsonPath, + baseDirectory + } = buildSignaturesFromContext(options); + const outputDir = options.outputDir ?? "./dist/signatures"; + const resolvedOutputDir = resolvePath(outputDir, baseDirectory, true); + if (!fs.existsSync(resolvedOutputDir)) { + fs.mkdirSync(resolvedOutputDir, { recursive: true }); + } + console.log(`\u{1F4C1} Output directory: ${resolvedOutputDir}`); + const outputPath = path.join(resolvedOutputDir, `${networkName}.js`); + const outputPathCjs = path.join(resolvedOutputDir, `${networkName}.cjs`); + const outputPathTs = path.join(resolvedOutputDir, `${networkName}.ts`); + fs.writeFileSync( + outputPathTs, + `/** + * Generated Contract Method Signatures for ${networkName} + * This file is auto-generated. DO NOT EDIT UNLESS YOU KNOW WHAT YOU'RE DOING. + */ + +export const signatures = ${JSON.stringify(signatures, null, 2)} as const; +export type Signatures = typeof signatures; +` + ); + fs.writeFileSync( + outputPath, + `/** + * Generated Contract Method Signatures for ${networkName} + * This file is auto-generated. DO NOT EDIT UNLESS YOU KNOW WHAT YOU'RE DOING. + */ + +export const signatures = ${JSON.stringify(signatures, null, 2)}; +` + ); + fs.writeFileSync( + outputPathCjs, + `/** + * Generated Contract Method Signatures for ${networkName} + * This file is auto-generated. DO NOT EDIT UNLESS YOU KNOW WHAT YOU'RE DOING. + */ + +const signatures = ${JSON.stringify(signatures, null, 2)}; + +module.exports = { + signatures +}; +` + ); + console.log(`\u2705 Signatures successfully generated and written to:`); + console.log(` - ${outputPath}`); + console.log(` - ${outputPathCjs}`); + console.log(` - ${outputPathTs}`); + } catch (error) { + console.error("\u274C Error processing network context:", error); + throw error; + } +} +var mainScriptPath = path.resolve(process.argv[1] || ""); +var currentScriptPath = fileURLToPath(import.meta.url); +if (mainScriptPath === currentScriptPath) { + const jsonFilePath = process.argv[2]; + const networkName = process.argv[3]; + if (!jsonFilePath) { + console.error("\u274C Please provide a path to the networkContext.json file"); + console.log( + "Usage: bun run ./src/custom-network-signatures.ts path/to/networkContext.json [custom-network-name]" + ); + process.exit(1); + } + generateSignaturesFromContext({ + jsonFilePath, + networkName, + useScriptDirectory: false + // Use current working directory for CLI usage + }).catch((error) => { + console.error( + "Error in CLI execution of custom-network-signatures:", + error + ); + process.exit(1); + }); +} +export { + buildSignaturesFromContext, + generateSignaturesFromContext +}; +/*! Bundled license information: + +@noble/hashes/esm/utils.js: + (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *) +*/ diff --git a/packages/contracts/src/custom-network-signatures.ts b/packages/contracts/src/custom-network-signatures.ts index 62843cf6c..89ea2c881 100644 --- a/packages/contracts/src/custom-network-signatures.ts +++ b/packages/contracts/src/custom-network-signatures.ts @@ -34,7 +34,7 @@ interface ContractInfo { name: string; } -interface GenerateSignaturesOptions { +export interface GenerateSignaturesOptions { jsonFilePath: string; networkName?: string; outputDir?: string; @@ -42,6 +42,16 @@ interface GenerateSignaturesOptions { callerPath?: string; // The import.meta.url of the calling script } +export interface BuildSignaturesFromContextOptions + extends Omit {} + +export interface BuildSignaturesFromContextResult { + signatures: GeneratedSignatures; + networkName: string; + resolvedJsonPath: string; + baseDirectory: string; +} + /** * Gets the base directory for resolving paths * @param useScriptDirectory - Whether to use script's directory or current working directory @@ -179,6 +189,43 @@ function generateAbiSignatures(networkData: NetworkCache) { return signatures; } +export type GeneratedSignatures = ReturnType; + +export function buildSignaturesFromContext( + options: BuildSignaturesFromContextOptions +): BuildSignaturesFromContextResult { + const { + jsonFilePath, + networkName = 'custom-network', + useScriptDirectory = false, + callerPath, + } = options; + + if (useScriptDirectory && !callerPath) { + throw new Error( + 'callerPath (import.meta.url) is required when useScriptDirectory is true' + ); + } + + const baseDirectory = getBaseDirectory(useScriptDirectory, callerPath); + const resolvedJsonPath = resolvePath(jsonFilePath, baseDirectory); + + console.log(`📝 Processing custom network context: ${resolvedJsonPath}`); + + const rawJsonData = JSON.parse(fs.readFileSync(resolvedJsonPath, 'utf8')); + const jsonData = convertToNetworkCache(rawJsonData, networkName); + + console.log('📊 Generating signatures...'); + const signatures = generateAbiSignatures(jsonData); + + return { + signatures, + networkName, + resolvedJsonPath, + baseDirectory, + }; +} + /** * Generates signature files from a network context JSON file * @param options - Configuration options @@ -187,45 +234,20 @@ function generateAbiSignatures(networkData: NetworkCache) { export async function generateSignaturesFromContext( options: GenerateSignaturesOptions ): Promise { - const { - jsonFilePath, - networkName = 'custom-network', - outputDir = './dist/signatures', - useScriptDirectory = false, - callerPath, - } = options; - try { - if (useScriptDirectory && !callerPath) { - throw new Error( - 'callerPath (import.meta.url) is required when useScriptDirectory is true' - ); - } + const { signatures, networkName, resolvedJsonPath, baseDirectory } = + buildSignaturesFromContext(options); - const baseDir = getBaseDirectory(useScriptDirectory, callerPath); - // Don't force relative for jsonFilePath (allow absolute paths) - const resolvedJsonPath = resolvePath(jsonFilePath, baseDir); - // Force relative for outputDir (always relative to script) - const resolvedOutputDir = resolvePath(outputDir, baseDir, true); + const outputDir = options.outputDir ?? './dist/signatures'; + const resolvedOutputDir = resolvePath(outputDir, baseDirectory, true); // Ensure output directory exists if (!fs.existsSync(resolvedOutputDir)) { fs.mkdirSync(resolvedOutputDir, { recursive: true }); } - console.log(`📝 Processing custom network context: ${resolvedJsonPath}`); console.log(`📁 Output directory: ${resolvedOutputDir}`); - // Read and parse the JSON file - const rawJsonData = JSON.parse(fs.readFileSync(resolvedJsonPath, 'utf8')); - - // Convert to NetworkCache format - const jsonData = convertToNetworkCache(rawJsonData, networkName); - - // Generate signatures using the standard format - console.log('📊 Generating signatures...'); - const signatures = generateAbiSignatures(jsonData); - // Write signatures to file const outputPath = path.join(resolvedOutputDir, `${networkName}.js`); const outputPathCjs = path.join(resolvedOutputDir, `${networkName}.cjs`); diff --git a/packages/e2e/CHANGELOG.md b/packages/e2e/CHANGELOG.md index b4c25847b..2409d7f8e 100644 --- a/packages/e2e/CHANGELOG.md +++ b/packages/e2e/CHANGELOG.md @@ -21,22 +21,3 @@ ## 3.0.0 ### Minor Changes - -- 4d339d1: introduce `litClient.utils.getDerivedKeyId` - a little helper to resolve the Lit Action public key outside of the Action runtime - -### Patch Changes - -- Updated dependencies [aedfa59] -- Updated dependencies [4d339d1] - - @lit-protocol/lit-client@8.2.0 - - @lit-protocol/networks@8.2.0 - -## 2.0.0 - -### Patch Changes - -- Updated dependencies [3179020] -- Updated dependencies [9d60bfa] - - @lit-protocol/auth@8.1.0 - - @lit-protocol/lit-client@8.1.0 - - @lit-protocol/networks@8.1.0 diff --git a/packages/e2e/README.md b/packages/e2e/README.md index 1656e567f..8d6b986f9 100644 --- a/packages/e2e/README.md +++ b/packages/e2e/README.md @@ -1,104 +1,118 @@ -# @litprotocol/e2e +# @lit-protocol/e2e -A comprehensive end-to-end testing package for Lit Protocol integrations. This package allows you to programmatically run the full suite of Lit Protocol tests across different authentication methods and network configurations. +Utilities and ready-made specs for Lit Protocol end-to-end testing. This package now ships the canonical Jest suite we run in-repo, plus helpers (state initialisers, Shiva client, etc.) so QA teams can execute the same coverage or layer on additional `.spec.ts` files without cloning this repository. ## Installation ```bash -pnpm add @litprotocol/e2e +pnpm add -D @lit-protocol/e2e ``` -## Environment Variables +The CLI bundles Jest, Babel presets, and all required helpers. Install any additional project-specific tooling (for example `ts-node` if you prefer to author specs in TypeScript directly). -**Required** - Set these environment variables before running tests: +## Required Environment + +Set the same environment variables the in-repo test harness expects **before** running any specs: ```bash -# For live networks (naga-dev, naga-staging) +# Accounts that sponsor users on live and local networks LIVE_MASTER_ACCOUNT=0x... - -# For local network (naga-local) LOCAL_MASTER_ACCOUNT=0x... -# Optional - can also be passed as parameters -NETWORK=naga-dev +# General configuration (can also be passed to init()) +NETWORK=naga-local # or naga-dev / naga-staging / naga-test LOG_LEVEL=info + +# Optional local overrides +NAGA_LOCAL_CONTEXT_PATH=./lit-assets/blockchain/contracts/networkContext.json +LIT_YELLOWSTONE_PRIVATE_RPC_URL=http://127.0.0.1:8545 ``` -## Quick Start +Make sure the referenced network (local Naga cluster, Shiva-managed testnet, or live subnet) is running and reachable from your test machine. -```typescript -import { runLitE2eTests } from '@litprotocol/e2e'; +## Run the Canonical Suite -// Run all tests on naga-dev network -const results = await runLitE2eTests({ - network: 'naga-dev', -}); +The published suite now imports everything from the package entrypoint, so you can execute it directly through Jest without wiring up helper paths manually. -console.log(`Tests completed: ${results.passed}/${results.totalTests} passed`); +```bash +pnpm exec jest \ + --config node_modules/@lit-protocol/e2e/jest.e2e.package.config.cjs \ + --runTestsByPath node_modules/@lit-protocol/e2e/src/e2e.spec.ts \ + --runInBand ``` -## Configuration Options - -```typescript -const results = await runLitE2eTests({ - network: 'naga-dev', // Required: 'naga-dev' | 'naga-local' | 'naga-staging' - logLevel: 'info', // Optional: 'silent' | 'info' | 'debug' - testTimeout: 30000, // Optional: timeout per test in milliseconds - selectedTests: [ - // Optional: run specific tests only - 'pkpSign', - 'executeJs', - 'viemSignMessage', - ], -}); +Prefer local config files? Run `pnpm lit-e2e init` once to scaffold `jest.e2e.local.cjs` and `babel.config.cjs`, then: + +```bash +pnpm exec jest \ + --config jest.e2e.local.cjs \ + --runTestsByPath node_modules/@lit-protocol/e2e/src/e2e.spec.ts \ + --runInBand ``` -## Available Tests +That is the only CLI command most teams need; all other helpers are available via imports. -### Endpoint Tests +## Author Your Own Specs -- `pkpSign` - PKP signing functionality -- `executeJs` - Lit Actions execution -- `viewPKPsByAddress` - PKP lookup by address -- `viewPKPsByAuthData` - PKP lookup by auth data -- `pkpEncryptDecrypt` - PKP-based encryption/decryption -- `encryptDecryptFlow` - Full encryption/decryption workflow -- `pkpPermissionsManagerFlow` - PKP permissions management -- `eoaNativeAuthFlow` - EOA native authentication and PKP minting +All helper utilities are exported from `@lit-protocol/e2e`. This includes the environment `init` routine, auth-context builders, and the new Shiva client wrapper. -### Integration Tests +```ts +import { init, createShivaClient } from '@lit-protocol/e2e'; -- `viemSignMessage` - Viem integration for message signing -- `viemSignTransaction` - Viem integration for transaction signing -- `viemSignTypedData` - Viem integration for typed data signing +describe('Epoch rollover', () => { + it('advances when Shiva triggers a transition', async () => { + const ctx = await init('naga-local'); + const shiva = await createShivaClient(ctx.litClient, { + baseUrl: 'http://localhost:8000', + }); -## Test Results + const before = await shiva.inspectEpoch(); + await shiva.transitionEpochAndWait(); + const after = await shiva.waitForEpochChange({ + baselineEpoch: before.epoch, + }); -```typescript -const results = await runLitE2eTests({ network: 'naga-dev' }); + expect(after.epoch).not.toEqual(before.epoch); + }); +}); +``` -console.log(`Total: ${results.totalTests}`); -console.log(`Passed: ${results.passed}`); -console.log(`Failed: ${results.failed}`); -console.log(`Duration: ${results.duration}ms`); +Execute custom specs with the same packaged config: -// Check for failures -if (results.failed > 0) { - const failedTests = results.results.filter((r) => r.status === 'failed'); - failedTests.forEach((test) => { - console.log(`Failed: ${test.name} - ${test.error}`); - }); -} +```bash +pnpm exec jest --config node_modules/@lit-protocol/e2e/jest.e2e.package.config.cjs qa-epoch.spec.ts ``` -## Examples +## Bundled APIs + +## Optional Local Scaffolding + +Prefer to maintain project-local configs? Let the CLI create them for you: + +```bash +pnpm exec lit-e2e init +``` + +This generates: + +- `jest.e2e.local.cjs` – a wrapper that runs the packaged suite and your own specs +- `babel.config.cjs` – delegates to the package’s Babel presets + +Update your Jest scripts to reference `jest.e2e.local.cjs` if you take this route. + +Key exports now available from the package: + +- `init(network?, logLevel?)` – prepares Lit Client, Auth Manager, PKPs, and funded accounts across local or live environments. +- `createShivaClient(litClient, { baseUrl, testnetId?, createRequest? })` – talks to the Shiva testnet manager (epoch transitions, node control, epoch inspection helpers). +- Auth context helpers (EOA, PKP, Custom auth) under `@lit-protocol/e2e/helper/auth-contexts`. +- Payment funding utilities, PKP helpers, and assorted testing primitives. -See `example.js` for detailed usage examples. +Refer to the source under `packages/e2e/src/helper` for additional exported functions. -## Networks +## Troubleshooting -- **naga-dev** - Development network (requires LIVE_MASTER_ACCOUNT) -- **naga-local** - Local development network (requires LOCAL_MASTER_ACCOUNT) -- **naga-staging** - Staging network (requires LIVE_MASTER_ACCOUNT) +- **Jest not found** – install it locally (`pnpm add -D jest`). The CLI wrapper will exit with a helpful message if the dependency is missing. +- **Missing signatures on naga-local** – provide `NAGA_LOCAL_CONTEXT_PATH` so the init routine calls `nagaLocal.withLocalContext`. +- **RPC connectivity** – when pointing at a private RPC, set `LIT_YELLOWSTONE_PRIVATE_RPC_URL` so the Lit Client bypasses defaults. -## License +With these additions, QA can stay in sync with the canonical Lit Protocol E2E coverage while extending it with custom assertions tailored to fast-epoch or failure scenarios. diff --git a/packages/e2e/babel.config.cjs b/packages/e2e/babel.config.cjs new file mode 100644 index 000000000..4cd1b6e8f --- /dev/null +++ b/packages/e2e/babel.config.cjs @@ -0,0 +1,9 @@ +module.exports = { + presets: [ + [ + '@babel/preset-env', + { targets: { node: 'current' }, modules: 'commonjs' }, + ], + ['@babel/preset-typescript', { allowDeclareFields: true }], + ], +}; diff --git a/packages/e2e/bin/jest.export-wrapper.cjs b/packages/e2e/bin/jest.export-wrapper.cjs new file mode 100644 index 000000000..bc5ba3fd2 --- /dev/null +++ b/packages/e2e/bin/jest.export-wrapper.cjs @@ -0,0 +1,14 @@ +const path = require('path'); +const baseConfig = require('@lit-protocol/e2e/jest-config'); +const packageRoot = path.dirname(require.resolve('@lit-protocol/e2e')); + +module.exports = { + ...baseConfig, + rootDir: __dirname, + roots: Array.from(new Set([__dirname, packageRoot])), + testMatch: [ + ...baseConfig.testMatch, + path.join(__dirname, 'specs/**/*.spec.ts'), + path.join(__dirname, '**/*.spec.ts'), + ], +}; diff --git a/packages/e2e/bin/run-e2e.cjs b/packages/e2e/bin/run-e2e.cjs new file mode 100644 index 000000000..47cde861c --- /dev/null +++ b/packages/e2e/bin/run-e2e.cjs @@ -0,0 +1,43 @@ +#!/usr/bin/env node + +const fs = require('fs'); +const path = require('path'); + +const PACKAGE_ROOT = path.resolve(__dirname, '..'); +const WRAPPER_PATH = path.join(__dirname, 'jest.export-wrapper.cjs'); +const BABEL_CONFIG_SRC = path.join(PACKAGE_ROOT, 'babel.config.cjs'); + +function createLocalWrapper() { + const cwd = process.cwd(); + const jestDest = path.join(cwd, 'jest.e2e.local.cjs'); + const babelDest = path.join(cwd, 'babel.config.cjs'); + + if (!fs.existsSync(jestDest)) { + fs.copyFileSync(WRAPPER_PATH, jestDest); + console.log(`✅ Created ${path.relative(cwd, jestDest)}`); + } else { + console.warn(`⚠️ ${path.relative(cwd, jestDest)} already exists, skipping`); + } + + if (!fs.existsSync(babelDest)) { + fs.copyFileSync(BABEL_CONFIG_SRC, babelDest); + console.log(`✅ Created ${path.relative(cwd, babelDest)}`); + } else { + console.warn( + `⚠️ ${path.relative(cwd, babelDest)} already exists, skipping` + ); + } + + console.log( + '✨ Local scaffolding complete. Point Jest at jest.e2e.local.cjs to run from this project.' + ); +} + +const [, , command] = process.argv; + +if (command === 'init') { + createLocalWrapper(); +} else { + console.log('Usage: lit-e2e init'); + process.exit(command ? 1 : 0); +} diff --git a/packages/e2e/jest.e2e.package.config.cjs b/packages/e2e/jest.e2e.package.config.cjs new file mode 100644 index 000000000..447a6ccec --- /dev/null +++ b/packages/e2e/jest.e2e.package.config.cjs @@ -0,0 +1,26 @@ +/** + * Packaged Jest configuration for consumers of @lit-protocol/e2e. + * Resolves the bundled specs and maps helpers so QA can run the suite without + * writing local config or Babel presets manually. + */ +const path = require('path'); + +const srcEntry = require.resolve('@lit-protocol/e2e'); +const srcDir = path.dirname(srcEntry); +const packageRoot = path.dirname(srcDir); +module.exports = { + testEnvironment: 'node', + rootDir: packageRoot, + roots: [packageRoot], + testMatch: ['/specs/**/*.spec.ts'], + transform: { + '^.+\\.(ts|tsx|js|mjs)$': 'babel-jest', + }, + transformIgnorePatterns: [], + moduleFileExtensions: ['ts', 'tsx', 'js', 'mjs', 'cjs', 'json'], + testPathIgnorePatterns: [], + moduleNameMapper: { + '^@lit-protocol/e2e/(.*)$': path.join(srcDir, '$1'), + '^@lit-protocol/e2e$': path.join(srcDir, 'index.js'), + }, +}; diff --git a/packages/e2e/package.json b/packages/e2e/package.json index 9e24eacd6..6b6a67aec 100644 --- a/packages/e2e/package.json +++ b/packages/e2e/package.json @@ -2,22 +2,42 @@ "name": "@lit-protocol/e2e", "version": "3.0.2", "description": "Lit Protocol E2E testing package for running comprehensive integration tests", - "main": "dist/index.js", - "module": "dist/index.mjs", + "main": "src/index.js", "type": "commonjs", - "types": "dist/index.d.ts", + "types": "src/index.d.ts", + "bin": { + "lit-e2e": "bin/run-e2e.cjs" + }, "exports": { ".": { - "import": "./dist/index.mjs", - "require": "./dist/index.js" - } + "types": "./src/index.d.ts", + "default": "./src/index.js" + }, + "./specs/e2e": { + "types": "./src/index.d.ts", + "default": "./specs/e2e.spec.ts" + }, + "./jest-config": { + "default": "./jest.e2e.package.config.cjs" + }, + "./cli": { + "default": "./bin/run-e2e.cjs" + }, + "./babel-config": { + "default": "./babel.config.cjs" + }, + "./babel.config.cjs": "./babel.config.cjs" }, "files": [ - "dist", + "bin", + "src", + "specs", + "babel.config.cjs", + "jest.e2e.package.config.cjs", + "CHANGELOG.md", "README.md", "example.js" ], - "scripts": {}, "keywords": [ "lit-protocol", "e2e", @@ -30,6 +50,35 @@ "author": "Lit Protocol", "license": "MIT", "dependencies": { + "@babel/core": "7.28.5", + "@babel/preset-env": "7.28.3", + "@babel/preset-typescript": "7.27.1", + "@ethersproject/transactions": "5.7.0", + "@lit-protocol/nacl": "7.1.1", + "@lit-protocol/uint8arrays": "7.1.1", + "@noble/curves": "^1.8.1", + "@noble/hashes": "1.8.0", + "@openagenda/verror": "^3.1.4", + "@simplewebauthn/browser": "^7.2.0", + "@simplewebauthn/typescript-types": "^7.0.0", + "@t3-oss/env-core": "0.13.8", + "@typechain/ethers-v6": "0.5.1", + "@wagmi/core": "^2.17.1", + "babel-jest": "30.2.0", + "base64url": "^3.0.1", + "bs58": "^6.0.0", + "cbor-web": "^9.0.2", + "depd": "^2.0.0", + "ethers": "^5.7.1", + "jose": "^4.14.4", + "pako": "^2.1.0", + "pino": "^9.6.0", + "pino-caller": "^4.0.0", + "siwe": "^2.3.2", + "siwe-recap": "0.0.2-alpha.0", + "stytch": "^12.4.0", + "tslib": "^2.8.1", + "typechain": "8.3.2", "zod": "3.24.3" }, "devDependencies": { @@ -38,11 +87,21 @@ }, "peerDependencies": { "@lit-protocol/access-control-conditions": "workspace:*", + "@lit-protocol/access-control-conditions-schemas": "workspace:*", "@lit-protocol/auth": "workspace:*", + "@lit-protocol/auth-helpers": "workspace:*", + "@lit-protocol/constants": "workspace:*", + "@lit-protocol/contracts": "workspace:*", + "@lit-protocol/crypto": "workspace:*", + "@lit-protocol/logger": "workspace:*", "@lit-protocol/lit-client": "workspace:*", "@lit-protocol/networks": "workspace:*", "@lit-protocol/schemas": "workspace:*", - "viem": "2.38.x" + "@lit-protocol/types": "workspace:*", + "@lit-protocol/wasm": "workspace:*", + "jest": "30.2.0", + "viem": "2.38.x", + "@types/jest": "30.0.0" }, "engines": { "node": ">=18.0.0" diff --git a/packages/e2e/project.json b/packages/e2e/project.json index 6e7efa7cb..6c8be7daf 100644 --- a/packages/e2e/project.json +++ b/packages/e2e/project.json @@ -11,7 +11,22 @@ "outputPath": "dist/packages/e2e", "main": "packages/e2e/src/index.ts", "tsConfig": "packages/e2e/tsconfig.lib.json", - "assets": ["packages/e2e/*.md", "packages/e2e/example.js"], + "assets": [ + "packages/e2e/*.md", + "packages/e2e/example.js", + "packages/e2e/babel.config.cjs", + "packages/e2e/jest.e2e.package.config.cjs", + { + "input": "packages/e2e/src", + "glob": "e2e.spec.ts", + "output": "specs" + }, + { + "input": "packages/e2e/bin", + "glob": "**/*.cjs", + "output": "bin" + } + ], "updateBuildableProjectDepsInPackageJson": true }, "dependsOn": ["^build"] diff --git a/packages/e2e/src/e2e.spec.ts b/packages/e2e/src/e2e.spec.ts index bf8387355..f3b2a98e0 100644 --- a/packages/e2e/src/e2e.spec.ts +++ b/packages/e2e/src/e2e.spec.ts @@ -1,24 +1,21 @@ import { createCustomAuthContext, - createPkpAuthContext, -} from './helper/auth-contexts'; -import { + createEncryptDecryptFlowTest, + createEoaNativeAuthFlowTest, createExecuteJsTest, - createPkpSignTest, + createPaymentDelegationFlowTest, + createPaymentManagerFlowTest, createPkpEncryptDecryptTest, - createEncryptDecryptFlowTest, createPkpPermissionsManagerFlowTest, - createEoaNativeAuthFlowTest, + createPkpSignTest, createViemSignMessageTest, createViemSignTransactionTest, createViemSignTypedDataTest, createViewPKPsByAddressTest, createViewPKPsByAuthDataTest, - createPaymentManagerFlowTest, - createPaymentDelegationFlowTest, -} from './helper/tests'; -import { init } from './init'; -import { AuthContext } from './types'; + init, +} from '@lit-protocol/e2e'; +import type { AuthContext } from '@lit-protocol/e2e'; const RPC_OVERRIDE = process.env['LIT_YELLOWSTONE_PRIVATE_RPC_URL']; if (RPC_OVERRIDE) { diff --git a/packages/e2e/src/guides/add-permitted-address-guide.ts b/packages/e2e/src/guides/add-permitted-address-guide.ts index cd21399df..b5e883a89 100644 --- a/packages/e2e/src/guides/add-permitted-address-guide.ts +++ b/packages/e2e/src/guides/add-permitted-address-guide.ts @@ -39,7 +39,7 @@ console.log('✅ aliceViemAccountAuthData:', aliceViemAccountAuthData); try { await fundAccount(aliceViemAccount, localMasterAccount, nagaLocal, { ifLessThan: LOCAL_NETWORK_FUNDING_AMOUNT, - thenFundWith: LOCAL_NETWORK_FUNDING_AMOUNT, + thenFund: LOCAL_NETWORK_FUNDING_AMOUNT, }); console.log('✅ Account Funded.'); } catch (e) { @@ -143,7 +143,7 @@ const pkpViemAccount = await litClient.getPkpViemAccount({ await fundAccount(pkpViemAccount, localMasterAccount, nagaLocal, { ifLessThan: LOCAL_NETWORK_FUNDING_AMOUNT, - thenFundWith: LOCAL_NETWORK_FUNDING_AMOUNT, + thenFund: LOCAL_NETWORK_FUNDING_AMOUNT, }); const pkpViemAccountPermissionsManager = diff --git a/packages/e2e/src/health/health-init.ts b/packages/e2e/src/health/health-init.ts index 9b404a52e..f25e7b97e 100644 --- a/packages/e2e/src/health/health-init.ts +++ b/packages/e2e/src/health/health-init.ts @@ -149,7 +149,7 @@ export const initHealthCheck = async ( */ await fundAccount(aliceViemAccount, masterAccount, _networkModule, { ifLessThan: LIVE_NETWORK_FUNDING_AMOUNT, - thenFundWith: LIVE_NETWORK_FUNDING_AMOUNT, + thenFund: LIVE_NETWORK_FUNDING_AMOUNT, }); /** diff --git a/packages/e2e/src/helper/createEnvVars.ts b/packages/e2e/src/helper/createEnvVars.ts new file mode 100644 index 000000000..1e2c0bb38 --- /dev/null +++ b/packages/e2e/src/helper/createEnvVars.ts @@ -0,0 +1,97 @@ +const supportedNetworks = ['naga-local', 'naga-test', 'naga-dev'] as const; +type EnvName = 'local' | 'live'; + +export type EnvVars = { + network: string; + privateKey: `0x${string}`; + rpcUrl?: string | undefined; + localContextPath?: string; +}; + +// -- configure +const testEnv: Record< + EnvName, + { type: EnvName; key: 'LOCAL_MASTER_ACCOUNT' | 'LIVE_MASTER_ACCOUNT' } +> = { + local: { type: 'local', key: 'LOCAL_MASTER_ACCOUNT' }, + live: { type: 'live', key: 'LIVE_MASTER_ACCOUNT' }, +}; + +export function createEnvVars(): EnvVars { + // 1. Get network string + const network = process.env['NETWORK']!!; + + if (!network || !supportedNetworks.includes(network as any)) { + throw new Error( + `❌ NETWORK env var is not set or not supported. Found. ${network}` + ); + } + + const selectedNetwork = network.includes('local') ? 'local' : 'live'; + + // 2. Get private key + let privateKey: `0x${string}`; + if (network.includes('local')) { + Object.assign(testEnv.local, { type: 'local' }); + privateKey = process.env[testEnv.local.key]!! as `0x${string}`; + } else { + Object.assign(testEnv.live, { type: 'live' }); + privateKey = process.env[testEnv.live.key]!! as `0x${string}`; + } + + if (!privateKey) { + throw new Error( + `❌ You are on "${selectedNetwork}" environment, network ${network}. We are expecting ` + ); + } + + // 3. Get RPC URL + let rpcUrl: string | undefined; + let localContextPath: string | undefined; + + // -- local network + if (network === 'naga-local') { + localContextPath = process.env['NAGA_LOCAL_CONTEXT_PATH']; + const localRpcUrl = process.env['LOCAL_RPC_URL']!!; + const defaultRpcUrl = 'http://127.0.0.1:8545'; + + if (!localContextPath) { + throw new Error( + `NAGA_LOCAL_CONTEXT_PATH is not set for naga-local network. Received ${localContextPath}` + ); + } + + if (!localRpcUrl) { + console.error( + `⚠️ LOCAL_RPC_URL is not set for naga-local network. Default to ${defaultRpcUrl}` + ); + } + + rpcUrl = localRpcUrl || defaultRpcUrl; + } + + // -- live networks + if (network === 'naga-dev' || network === 'naga-test') { + const liveRpcUrl = process.env['LIT_YELLOWSTONE_PRIVATE_RPC_URL']; + + if (liveRpcUrl) { + rpcUrl = liveRpcUrl; + } + } + + const result = { + network, + privateKey, + rpcUrl, + localContextPath, + }; + + const clone = Object.freeze({ + ...result, + privateKey: (privateKey.slice(0, 6) + '...') as `0x${string}`, + }); + + console.log('✅ Env Vars:', clone); + + return result; +} diff --git a/packages/e2e/src/helper/createTestAccount.ts b/packages/e2e/src/helper/createTestAccount.ts new file mode 100644 index 000000000..eb847d45d --- /dev/null +++ b/packages/e2e/src/helper/createTestAccount.ts @@ -0,0 +1,213 @@ +import { ViemAccountAuthenticator } from '@lit-protocol/auth'; +import { PKPData } from '@lit-protocol/schemas'; +import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts'; +import { AuthContext } from '../types'; +import { TestEnv } from './createTestEnv'; +import { fundAccount } from './fundAccount'; +import { getOrCreatePkp } from './pkp-utils'; + +type CreateTestAccountOpts = { + label: string; + fundAccount: boolean; + fundLedger: boolean; + hasEoaAuthContext?: boolean; + hasPKP: boolean; + fundPKP: boolean; + fundPKPLedger: boolean; + hasPKPAuthContext?: boolean; + sponsor?: { + restrictions: { + /** + * This price will be divided by threshold to get per-request price + * Make sure to keep your Ledger Balance high enough to cover this! + */ + totalMaxPriceInWei: string; + requestsPerPeriod: string; + periodSeconds: string; + }; + userAddresses: string[] | `0x${string}`[]; + }; +}; + +export type CreateTestAccountResult = { + account: ReturnType; + pkp?: PKPData; + eoaAuthContext?: AuthContext; + pkpAuthContext?: AuthContext; + pkpViemAccount?: Awaited< + ReturnType + >; + paymentManager?: Awaited< + ReturnType + >; +}; + +export async function createTestAccount( + testEnv: TestEnv, + opts: CreateTestAccountOpts +): Promise { + console.log(`--- ${`[${opts.label}]`} Creating test account ---`); + // 1. store result + let person: CreateTestAccountResult = { + account: privateKeyToAccount(generatePrivateKey()), + pkp: undefined, + eoaAuthContext: undefined, + pkpAuthContext: undefined, + pkpViemAccount: undefined, + paymentManager: undefined, + }; + + const personAccountAuthData = await ViemAccountAuthenticator.authenticate( + person.account + ); + console.log(`Address`, person.account.address); + console.log(`opts:`, opts); + + // 3. fund it + if (opts.fundAccount) { + await fundAccount( + person.account, + testEnv.masterAccount, + testEnv.networkModule, + { + label: 'owner', + ifLessThan: testEnv.config.nativeFundingAmount, + thenFund: testEnv.config.nativeFundingAmount, + } + ); + + // -- create EOA auth context + if (opts.hasEoaAuthContext) { + person.eoaAuthContext = await testEnv.authManager.createEoaAuthContext({ + config: { + account: person.account, + }, + authConfig: { + statement: 'I authorize the Lit Protocol to execute this Lit Action.', + domain: 'example.com', + resources: [ + ['lit-action-execution', '*'], + ['pkp-signing', '*'], + ['access-control-condition-decryption', '*'], + ], + expiration: new Date(Date.now() + 1000 * 60 * 15).toISOString(), + }, + litClient: testEnv.litClient, + }); + } + } // ... end if fundAccount + + // 4. also fund the ledger + if (opts.fundLedger) { + await testEnv.masterPaymentManager.depositForUser({ + userAddress: person.account.address, + amountInEth: testEnv.config.ledgerDepositAmount, + }); + } + + // 5. create PKP + if (opts.hasPKP) { + person.pkp = await getOrCreatePkp( + testEnv.litClient, + personAccountAuthData, + person.account + ); + + // 7. fund the PKP + if (opts.fundPKP) { + await fundAccount( + person.pkp.ethAddress as `0x${string}`, + testEnv.masterAccount, + testEnv.networkModule, + { + label: 'PKP', + ifLessThan: testEnv.config.nativeFundingAmount, + thenFund: testEnv.config.nativeFundingAmount, + } + ); + } + + // 8. also fund PKP Ledger + if (opts.fundPKPLedger) { + await testEnv.masterPaymentManager.depositForUser({ + userAddress: person.pkp.ethAddress as `0x${string}`, + amountInEth: testEnv.config.ledgerDepositAmount, + }); + } + + // -- Create PKP auth context + if (opts.hasPKPAuthContext) { + person.pkpAuthContext = await testEnv.authManager.createPkpAuthContext({ + authData: personAccountAuthData, + pkpPublicKey: person.pkp.pubkey, + authConfig: { + resources: [ + ['pkp-signing', '*'], + ['lit-action-execution', '*'], + ['access-control-condition-decryption', '*'], + ], + // 30m expiration + expiration: new Date(Date.now() + 1000 * 60 * 30).toISOString(), + }, + litClient: testEnv.litClient, + }); + } + + // Create PKP viem account + person.pkpViemAccount = await testEnv.litClient.getPkpViemAccount({ + pkpPublicKey: person.pkp.pubkey, + authContext: person.pkpAuthContext, + chainConfig: testEnv.networkModule.getChainConfig(), + }); + } // ... end if hasPKP + + if (opts.sponsor) { + // 1. get payment manager + person.paymentManager = await testEnv.litClient.getPaymentManager({ + account: person.account, + }); + + // 2. Set Restrictions + + // Convert to Wei using Viem + // const wei = parseEther(opts.sponsor.restrictions.totalMaxPriceInEth); + + // console.log(`- Setting sponsorship restrictions:`, { + // totalMaxPriceInEth: opts.sponsor.restrictions.totalMaxPriceInEth, + // totalMaxPriceInWei: wei.toString(), + // requestsPerPeriod: opts.sponsor.restrictions.requestsPerPeriod, + // periodSeconds: opts.sponsor.restrictions.periodSeconds, + // }); + try { + const tx = await person.paymentManager.setRestriction({ + // totalMaxPrice: wei.toString(), + totalMaxPrice: opts.sponsor.restrictions.totalMaxPriceInWei, + requestsPerPeriod: opts.sponsor.restrictions.requestsPerPeriod, + periodSeconds: opts.sponsor.restrictions.periodSeconds, + }); + console.log(`- [setRestriction] TX Hash: ${tx.hash}`); + } catch (e) { + throw new Error(`❌ Failed to set sponsorship restrictions: ${e}`); + } + + // 3. Sponsor users + const userAddresses = opts.sponsor.userAddresses; + if (!userAddresses || userAddresses.length === 0) { + throw new Error( + '❌ User addresses are required for the sponsor to fund.' + ); + } + + try { + console.log(`- Sponsoring users:`, userAddresses); + const tx = await person.paymentManager.delegatePaymentsBatch({ + userAddresses: userAddresses, + }); + console.log(`[delegatePaymentsBatch] TX Hash: ${tx.hash}`); + } catch (e) { + throw new Error(`❌ Failed to delegate sponsorship to users: ${e}`); + } + } + + return person; +} diff --git a/packages/e2e/src/helper/createTestEnv.ts b/packages/e2e/src/helper/createTestEnv.ts new file mode 100644 index 000000000..598744cb7 --- /dev/null +++ b/packages/e2e/src/helper/createTestEnv.ts @@ -0,0 +1,111 @@ +import { + LitNetworkModule, + nagaDev, + nagaLocal, + nagaTest, + PaymentManager, +} from '@lit-protocol/networks'; +import { EnvVars } from './createEnvVars'; +import { createLitClient } from '@lit-protocol/lit-client'; +import { createAuthManager, storagePlugins } from '@lit-protocol/auth'; +import { privateKeyToAccount } from 'viem/accounts'; + +export const CONFIG = { + LOCAL: { + nativeFundingAmount: '1', + ledgerDepositAmount: '2', + }, + LIVE: { + nativeFundingAmount: '0.01', + ledgerDepositAmount: '0.01', + }, +}; + +export type TestEnvs = { + address: `0x${string}`; + networkModule: LitNetworkModule; +}; + +export type TestEnv = { + masterAccount: ReturnType; + masterPaymentManager: PaymentManager; + networkModule: LitNetworkModule; + litClient: Awaited>; + authManager: ReturnType; + config: { + nativeFundingAmount: string; + ledgerDepositAmount: string; + }; +}; + +export const createTestEnv = async (envVars: EnvVars): Promise => { + // -- 1. Create network module + let networkModule: LitNetworkModule; + let config = { + nativeFundingAmount: '', + ledgerDepositAmount: '', + }; + + if (envVars.network === 'naga-local') { + networkModule = nagaLocal + .withLocalContext({ + networkContextPath: envVars.localContextPath, + networkName: 'naga-local', + }) + .withOverrides({ + rpcUrl: envVars.rpcUrl, + }); + config = CONFIG.LOCAL; + } else if ( + envVars.network === 'naga-dev' || + envVars.network === 'naga-test' + ) { + if (envVars.network === 'naga-dev') { + networkModule = nagaDev; + } else if (envVars.network === 'naga-test') { + networkModule = nagaTest; + } + + if (envVars.rpcUrl) { + console.log( + `🔧 Overriding RPC URL for ${envVars.network} to ${envVars.rpcUrl}` + ); + networkModule = networkModule.withOverrides({ + rpcUrl: envVars.rpcUrl, + }); + } + + config = CONFIG.LIVE; + } + + // 2. Create Lit Client + const litClient = await createLitClient({ + network: networkModule, + }); + + // 3. Create auth manager + const authManager = createAuthManager({ + storage: storagePlugins.localStorageNode({ + appName: `my-${envVars.network}-e2e-test-app`, + networkName: `${envVars.network}-e2e-tests`, + storagePath: './.e2e/e2e-tests-storage', + }), + }); + + // 4. Create master account + const masterAccount = privateKeyToAccount(envVars.privateKey); + + // 5. Create master payer account + const masterPaymentManager = await litClient.getPaymentManager({ + account: masterAccount, + }); + + return { + masterAccount: privateKeyToAccount(envVars.privateKey), + masterPaymentManager, + networkModule, + litClient, + authManager, + config, + }; +}; diff --git a/packages/e2e/src/helper/fundAccount.ts b/packages/e2e/src/helper/fundAccount.ts index b725b8683..1d0129694 100644 --- a/packages/e2e/src/helper/fundAccount.ts +++ b/packages/e2e/src/helper/fundAccount.ts @@ -32,7 +32,7 @@ async function getNextNonce( globalNonceManager.set(accountAddress, nextNonce + 1); console.log( - `🔢 Using nonce ${nextNonce} for ${accountAddress} (network: ${networkNonce}, cached: ${ + `- Using nonce ${nextNonce} for ${accountAddress} (network: ${networkNonce}, cached: ${ cachedNextNonce ?? 'unset' })` ); @@ -78,14 +78,30 @@ async function sendTransactionWithRetry( } export const fundAccount = async ( - recipientAccount: Account, + recipientAccount: Account | `0x${string}`, sponsorAccount: Account, networkModule: any, options?: { ifLessThan?: string; - thenFundWith?: string; + thenFund?: string; + label?: string; } ) => { + console.log( + `--- Funding ${ + options.label === undefined ? '' : options.label + } account ---` + ); + let recipientAddress: `0x${string}`; + + if (recipientAccount.hasOwnProperty('address')) { + recipientAccount = recipientAccount as Account; + recipientAddress = recipientAccount.address; + } else { + recipientAccount = recipientAccount as `0x${string}`; + recipientAddress = recipientAccount; + } + const defaultRpcUrl = networkModule.getChainConfig().rpcUrls.default.http[0]; const isLocalNetwork = defaultRpcUrl.includes('127.0.0.1'); const customRpcUrl = isLocalNetwork @@ -93,11 +109,11 @@ export const fundAccount = async ( : process.env['LIT_YELLOWSTONE_PRIVATE_RPC_URL']; if (customRpcUrl) { - console.log(`🔧 Using custom E2E RPC URL: ***${customRpcUrl.slice(-6)}`); + console.log(`- Using custom E2E RPC URL:`, `***${customRpcUrl.slice(-6)}`); } else if (isLocalNetwork) { - console.log(`🔧 Using local Anvil RPC URL: ${defaultRpcUrl}`); + console.log(`- Using local Anvil RPC URL:`, defaultRpcUrl); } else { - console.log(`🔧 Using default network RPC URL: ${defaultRpcUrl}`); + console.log(`- Using default network RPC URL:`, defaultRpcUrl); } // check account balance @@ -107,12 +123,12 @@ export const fundAccount = async ( }); const balance = await publicClient.getBalance({ - address: recipientAccount.address, + address: recipientAddress, }); // If balance is less than 1 ETH, fund the account with 0.001 ETH if (balance <= parseEther(options?.ifLessThan || '0.001')) { - console.log('💰 Funding account with', options?.thenFundWith, 'ETH'); + console.log(`- Funding ${recipientAddress} with ${options?.thenFund} ETH`); const walletClient = createWalletClient({ account: sponsorAccount, @@ -123,8 +139,8 @@ export const fundAccount = async ( const nonce = await getNextNonce(publicClient, sponsorAccount.address); const transactionRequest = { - to: recipientAccount.address, - value: parseEther(options?.thenFundWith || '1'), + to: recipientAddress, + value: parseEther(options?.thenFund || '1'), chain: networkModule.getChainConfig(), nonce, account: sponsorAccount, // Add account for retry logic @@ -136,8 +152,12 @@ export const fundAccount = async ( publicClient ); - console.log('✅ Topped up account with', options?.thenFundWith, 'ETH'); + console.log( + `- Topped up account ${recipientAddress} with`, + options?.thenFund, + 'ETH\n' + ); } else { - console.log('✅ Account has enough balance'); + console.log(`- Account ${recipientAddress} has enough balance\n`); } }; diff --git a/packages/e2e/src/helper/shiva-client.ts b/packages/e2e/src/helper/shiva-client.ts new file mode 100644 index 000000000..b8357531c --- /dev/null +++ b/packages/e2e/src/helper/shiva-client.ts @@ -0,0 +1,307 @@ +import type { LitClientInstance } from '../types'; + +/** + * Options used when Shiva spins up a brand-new testnet instance. + * Values mirror the Rust manager contract; all fields are optional for our wrapper. + */ +type TestNetCreateRequest = { + nodeCount: number; + pollingInterval: string; + epochLength: number; + customBuildPath?: string | null; + litActionServerCustomBuildPath?: string | null; + existingConfigPath?: string | null; + which?: string | null; + ecdsaRoundTimeout?: string | null; + enableRateLimiting?: string | null; +}; + +type TestNetResponse = { + testnet_id: string; + command: string; + was_canceled: boolean; + body: T | null; + last_state_observed: string | null; + messages: string[] | null; + errors: string[] | null; +}; + +type TestNetState = 'Busy' | 'Active' | 'Mutating' | 'Shutdown' | 'UNKNOWN'; + +/** + * Configuration accepted by {@link createShivaClient}. + */ +type CreateShivaClientOptions = { + baseUrl: string; + testnetId?: string; + createRequest?: TestNetCreateRequest; +}; + +type FetchOptions = { + method?: 'GET' | 'POST'; + body?: unknown; +}; + +/** + * Snapshot returned from {@link ShivaClient.inspectEpoch} and {@link ShivaClient.waitForEpochChange}. + */ +type EpochSnapshot = { + epoch: number | undefined; + nodeEpochs: Array<{ url: string; epoch: number | undefined }>; + threshold: number | undefined; + connectedCount: number | undefined; + latestBlockhash: string | undefined; + rawContext: any; +}; + +/** + * Options for {@link ShivaClient.waitForEpochChange}. + */ +type WaitForEpochOptions = { + baselineEpoch: number | undefined; + timeoutMs?: number; + intervalMs?: number; +}; + +/** + * High-level interface surfaced by {@link createShivaClient}. + */ +export type ShivaClient = { + baseUrl: string; + testnetId: string; + /** Fetch a one-off snapshot of the Lit context and per-node epochs. */ + inspectEpoch: () => Promise; + /** + * Poll the Lit client until it reports an epoch different from {@link WaitForEpochOptions.baselineEpoch}. + * Useful immediately after triggering an epoch change via Shiva. + */ + waitForEpochChange: (options: WaitForEpochOptions) => Promise; + /** Invoke Shiva's `/test/action/transition/epoch/wait/` and wait for completion. */ + transitionEpochAndWait: () => Promise; + /** Stop a random node and wait for the subsequent epoch change. */ + stopRandomNodeAndWait: () => Promise; + /** Query the current state of the managed testnet (Busy, Active, etc.). */ + pollTestnetState: () => Promise; + /** Retrieve the full testnet configuration (contract ABIs, RPC URL, etc.). */ + getTestnetInfo: () => Promise; + /** Shut down the underlying testnet through the Shiva manager. */ + deleteTestnet: () => Promise; +}; + +const DEFAULT_POLL_INTERVAL = 2000; +const DEFAULT_TIMEOUT = 60_000; + +const normaliseBaseUrl = (baseUrl: string) => { + return baseUrl.endsWith('/') ? baseUrl.slice(0, -1) : baseUrl; +}; + +const toJson = async (response: Response): Promise => { + const text = await response.text(); + try { + return JSON.parse(text) as T; + } catch (error) { + throw new Error( + `Failed to parse Shiva response as JSON (status ${response.status}): ${text}` + ); + } +}; + +const fetchShiva = async ( + baseUrl: string, + path: string, + options: FetchOptions = {} +): Promise> => { + const url = `${normaliseBaseUrl(baseUrl)}${ + path.startsWith('/') ? '' : '/' + }${path}`; + + const response = await fetch(url, { + method: options.method ?? 'GET', + headers: + options.method === 'POST' + ? { + 'Content-Type': 'application/json', + } + : undefined, + body: + options.method === 'POST' && options.body + ? JSON.stringify(options.body) + : undefined, + }); + + const parsed = await toJson>(response); + + if (!response.ok || (parsed.errors && parsed.errors.length > 0)) { + const message = + parsed.errors?.join('; ') ?? + `Shiva request failed with status ${response.status}`; + throw new Error(message); + } + + return parsed; +}; + +const getTestnetIds = async (baseUrl: string): Promise => { + const url = `${normaliseBaseUrl(baseUrl)}/test/get/testnets`; + const response = await fetch(url); + if (!response.ok) { + const body = await response.text(); + throw new Error( + `Failed to fetch testnets from Shiva (status ${response.status}): ${body}` + ); + } + return (await response.json()) as string[]; +}; + +const ensureTestnetId = async ( + baseUrl: string, + providedId?: string, + createRequest?: TestNetCreateRequest +): Promise => { + if (providedId) { + return providedId; + } + + const existing = await getTestnetIds(baseUrl); + if (existing.length > 0) { + return existing[0]; + } + + if (!createRequest) { + throw new Error( + 'No Shiva testnet is running. Provide a testnetId or a createRequest to start one.' + ); + } + + const response = await fetchShiva(baseUrl, '/test/create/testnet', { + method: 'POST', + body: createRequest, + }); + + if (!response.testnet_id) { + throw new Error('Shiva create testnet response did not include testnet_id'); + } + + return response.testnet_id; +}; + +const buildEpochSnapshot = (ctx: any): EpochSnapshot => { + const nodeEpochEntries = Object.entries( + ctx?.handshakeResult?.serverKeys ?? {} + ); + const nodeEpochs = nodeEpochEntries.map(([url, data]: [string, any]) => ({ + url, + epoch: data?.epoch, + })); + + const connected = ctx?.handshakeResult?.connectedNodes; + const connectedCount = + typeof connected?.size === 'number' + ? connected.size + : Array.isArray(connected) + ? connected.length + : undefined; + + return { + epoch: ctx?.latestConnectionInfo?.epochInfo?.number, + nodeEpochs, + threshold: ctx?.handshakeResult?.threshold, + connectedCount, + latestBlockhash: ctx?.latestBlockhash, + rawContext: ctx, + }; +}; + +/** + * Creates a Shiva client wrapper for the provided Lit client instance. + * The wrapper talks to the Shiva manager REST endpoints, auto-discovers (or optionally creates) a testnet, + * and exposes helpers for triggering and validating epoch transitions. + */ +export const createShivaClient = async ( + litClient: LitClientInstance, + options: CreateShivaClientOptions +): Promise => { + const baseUrl = normaliseBaseUrl(options.baseUrl); + const testnetId = await ensureTestnetId( + baseUrl, + options.testnetId, + options.createRequest + ); + + const inspectEpoch = async () => { + const ctx = await litClient.getContext(); + return buildEpochSnapshot(ctx); + }; + + const waitForEpochChange = async ({ + baselineEpoch, + timeoutMs = DEFAULT_TIMEOUT, + intervalMs = DEFAULT_POLL_INTERVAL, + }: WaitForEpochOptions) => { + const deadline = Date.now() + timeoutMs; + + while (Date.now() < deadline) { + await new Promise((resolve) => setTimeout(resolve, intervalMs)); + const snapshot = await inspectEpoch(); + if (snapshot.epoch !== baselineEpoch) { + return snapshot; + } + } + + throw new Error( + `Epoch did not change from ${baselineEpoch} within ${timeoutMs}ms` + ); + }; + + const transitionEpochAndWait = async () => { + const response = await fetchShiva( + baseUrl, + `/test/action/transition/epoch/wait/${testnetId}` + ); + return Boolean(response.body); + }; + + const stopRandomNodeAndWait = async () => { + const response = await fetchShiva( + baseUrl, + `/test/action/stop/random/wait/${testnetId}` + ); + return Boolean(response.body); + }; + + const pollTestnetState = async () => { + const response = await fetchShiva( + baseUrl, + `/test/poll/testnet/${testnetId}` + ); + return (response.body ?? 'UNKNOWN') as TestNetState; + }; + + const getTestnetInfo = async () => { + const response = await fetchShiva( + baseUrl, + `/test/get/info/testnet/${testnetId}` + ); + return response.body; + }; + + const deleteTestnet = async () => { + const response = await fetchShiva( + baseUrl, + `/test/delete/testnet/${testnetId}` + ); + return Boolean(response.body); + }; + + return { + baseUrl, + testnetId, + inspectEpoch, + waitForEpochChange, + transitionEpochAndWait, + stopRandomNodeAndWait, + pollTestnetState, + getTestnetInfo, + deleteTestnet, + }; +}; diff --git a/packages/e2e/src/index.ts b/packages/e2e/src/index.ts index 5062abee8..77331ae10 100644 --- a/packages/e2e/src/index.ts +++ b/packages/e2e/src/index.ts @@ -6,3 +6,5 @@ export * from './helper/NetworkManager'; export { printAligned } from './helper/utils'; export { getOrCreatePkp } from './helper/pkp-utils'; +export { createShivaClient } from './helper/shiva-client'; +export type { AuthContext } from './types'; diff --git a/packages/e2e/src/init.ts b/packages/e2e/src/init.ts index 97f20c34e..4b2b0998a 100644 --- a/packages/e2e/src/init.ts +++ b/packages/e2e/src/init.ts @@ -4,6 +4,7 @@ import { ViemAccountAuthenticator, } from '@lit-protocol/auth'; import { createLitClient, utils as litUtils } from '@lit-protocol/lit-client'; +import type { NagaLocalModule } from '@lit-protocol/networks'; import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts'; import { z } from 'zod'; import { fundAccount } from './helper/fundAccount'; @@ -125,7 +126,38 @@ export const init = async ( // Dynamic import of network module const networksModule = await import('@lit-protocol/networks'); - const _baseNetworkModule = networksModule[config.importName]; + let _baseNetworkModule = networksModule[config.importName]; + + if (_network === 'naga-local') { + const localContextPath = process.env['NAGA_LOCAL_CONTEXT_PATH']; + if (localContextPath) { + // Type guard: verify the module exposes withLocalContext so TypeScript narrows it to NagaLocal. + const isNagaLocalModule = (module: unknown): module is NagaLocalModule => + !!module && + typeof (module as { withLocalContext?: unknown }).withLocalContext === + 'function'; + + if (isNagaLocalModule(_baseNetworkModule)) { + const localContextName = process.env['NETWORK']; + + console.log( + '✅ Loading naga-local signatures from NAGA_LOCAL_CONTEXT_PATH:', + localContextPath + ); + + const nagaLocalModule: NagaLocalModule = _baseNetworkModule; + + _baseNetworkModule = await nagaLocalModule.withLocalContext({ + networkContextPath: localContextPath, + networkName: localContextName, + }); + } else { + console.warn( + '⚠️ NAGA_LOCAL_CONTEXT_PATH is set but nagaLocal.withLocalContext is unavailable in the current networks build.' + ); + } + } + } // Optional RPC override from env const rpcOverride = process.env['LIT_YELLOWSTONE_PRIVATE_RPC_URL']; @@ -162,17 +194,17 @@ export const init = async ( // Fund accounts sequentially to avoid nonce conflicts with same sponsor await fundAccount(aliceViemAccount, masterAccount, _networkModule, { ifLessThan: fundingAmount, - thenFundWith: fundingAmount, + thenFund: fundingAmount, }); await fundAccount(bobViemAccount, masterAccount, _networkModule, { ifLessThan: fundingAmount, - thenFundWith: fundingAmount, + thenFund: fundingAmount, }); await fundAccount(eveViemAccount, masterAccount, _networkModule, { ifLessThan: fundingAmount, - thenFundWith: fundingAmount, + thenFund: fundingAmount, }); /** @@ -309,7 +341,7 @@ export const init = async ( await fundAccount(alicePkpViemAccount, masterAccount, _networkModule, { ifLessThan: LOCAL_NETWORK_FUNDING_AMOUNT, - thenFundWith: LOCAL_NETWORK_FUNDING_AMOUNT, + thenFund: LOCAL_NETWORK_FUNDING_AMOUNT, }); /** diff --git a/packages/e2e/src/tickets/delegation.spec.ts b/packages/e2e/src/tickets/delegation.spec.ts new file mode 100644 index 000000000..1a907e97f --- /dev/null +++ b/packages/e2e/src/tickets/delegation.spec.ts @@ -0,0 +1,112 @@ +import { createEnvVars } from '../helper/createEnvVars'; +import { + createTestAccount, + CreateTestAccountResult, +} from '../helper/createTestAccount'; +import { createTestEnv } from '../helper/createTestEnv'; + +describe('payment delegation test', () => { + let envVars: ReturnType; + let testEnv: Awaited>; + let alice: CreateTestAccountResult; + let bobAccount: CreateTestAccountResult; + + beforeAll(async () => { + envVars = createEnvVars(); + testEnv = await createTestEnv(envVars); + }); + + it("should allow Bob to use Alice's sponsorship to pay for PKP execution", async () => { + // 1. First, create Bob + bobAccount = await createTestAccount(testEnv, { + label: 'Bob', + fundAccount: true, + hasEoaAuthContext: true, + fundLedger: false, + hasPKP: true, + fundPKP: false, + hasPKPAuthContext: false, + fundPKPLedger: false, + }); + + console.log('bobAccount:', bobAccount); + + if (!bobAccount.pkp?.ethAddress) { + throw new Error("Bob's PKP does not have an ethAddress"); + } + + // 2. Next, create Alice, who will sponsor Bob + alice = await createTestAccount(testEnv, { + label: 'Alice', + fundAccount: true, + fundLedger: true, + hasPKP: true, + fundPKP: true, + fundPKPLedger: true, + sponsor: { + restrictions: { + totalMaxPriceInWei: '1000000000000000000', + requestsPerPeriod: '100', + periodSeconds: '5', + }, + userAddresses: [bobAccount.account.address], + }, + }); + + // 3. Take a snapshot of Alice's Ledger balance before Bob's request + const aliceBeforeBalance = await testEnv.masterPaymentManager.getBalance({ + userAddress: alice.account.address, + }); + + console.log( + "[BEFORE] Alice's Ledger balance before Bob's request:", + aliceBeforeBalance + ); + + // 3. Now, Bob tries to sign with his PKP using Alice's sponsorship + await testEnv.litClient.chain.ethereum.pkpSign({ + authContext: bobAccount.eoaAuthContext!, + pubKey: bobAccount.pkp?.pubkey!, + toSign: 'Hello, world!', + userMaxPrice: 200000000000000000n, // 0.2 ETH in Wei + }); + + // 4. Finally, check that Alice's Ledger balance has decreased + const aliceBalanceAfter = await testEnv.masterPaymentManager.getBalance({ + userAddress: alice.account.address, + }); + + console.log( + "[AFTER] Alice's Ledger balance after Bob's request:", + aliceBalanceAfter + ); + + expect(BigInt(aliceBalanceAfter.raw.availableBalance)).toBeLessThan( + BigInt(aliceBeforeBalance.raw.availableBalance) + ); + + // 5. Now, Alice removes Bob from her sponsorship + await alice.paymentManager!.undelegatePaymentsBatch({ + userAddresses: [bobAccount.account.address], + }); + + // 6. Bob should now fail to sign with his PKP due to lack of sponsorship + let didFail = false; + try { + await testEnv.litClient.chain.ethereum.pkpSign({ + authContext: bobAccount.eoaAuthContext!, + pubKey: bobAccount.pkp?.pubkey!, + toSign: 'Hello again, world!', + userMaxPrice: 200000000000000000n, // 0.2 ETH in Wei + }); + } catch (e) { + didFail = true; + console.log( + "As expected, Bob's PKP sign failed after Alice removed sponsorship:", + e + ); + } + + expect(didFail).toBe(true); + }); +}); diff --git a/packages/e2e/src/tickets/jss11.spec.ts b/packages/e2e/src/tickets/jss11.spec.ts index 048e56b79..0a6d7c061 100644 --- a/packages/e2e/src/tickets/jss11.spec.ts +++ b/packages/e2e/src/tickets/jss11.spec.ts @@ -24,7 +24,7 @@ describe('JSS-11: PKP Management and Pagination', () => { await fundAccount(randomViemAccount, masterViemAccount, NETWORK_MODULE, { ifLessThan: '0', - thenFundWith: LIVE_NETWORK_FUNDING_AMOUNT, + thenFund: LIVE_NETWORK_FUNDING_AMOUNT, }); viemAccountAuthData = await ViemAccountAuthenticator.authenticate( diff --git a/packages/e2e/tsconfig.spec.build.json b/packages/e2e/tsconfig.spec.build.json new file mode 100644 index 000000000..7b09c2999 --- /dev/null +++ b/packages/e2e/tsconfig.spec.build.json @@ -0,0 +1,16 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "rootDir": "src", + "outDir": "../../dist/packages/e2e/specs", + "module": "CommonJS", + "target": "ES2022", + "declaration": false, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "resolveJsonModule": true, + "types": ["jest"] + }, + "include": ["src/**/*.spec.ts"], + "exclude": [] +} diff --git a/packages/networks/src/networks/vNaga/envs/naga-local/index.ts b/packages/networks/src/networks/vNaga/envs/naga-local/index.ts index fc5194b85..97ee2878a 100644 --- a/packages/networks/src/networks/vNaga/envs/naga-local/index.ts +++ b/packages/networks/src/networks/vNaga/envs/naga-local/index.ts @@ -1 +1,2 @@ export { nagaLocal } from './naga-local.module'; +export type { NagaLocal, NagaLocalContextOptions } from './naga-local.module'; diff --git a/packages/networks/src/networks/vNaga/envs/naga-local/naga-local.env.ts b/packages/networks/src/networks/vNaga/envs/naga-local/naga-local.env.ts index bd69227f1..ee53c4f67 100644 --- a/packages/networks/src/networks/vNaga/envs/naga-local/naga-local.env.ts +++ b/packages/networks/src/networks/vNaga/envs/naga-local/naga-local.env.ts @@ -3,7 +3,7 @@ import * as chainInfo from '../../../../chains/Anvil'; import { NAGA_ENDPOINT } from '../../shared/managers/endpoints-manager/endpoints'; import type { NagaEndpointsType } from '../../shared/managers/endpoints-manager/endpoints'; import { BaseNetworkEnvironment } from '../base/BaseNetworkEnvironment'; -import { signatures } from './generated/naga-develop'; +import { signatures as defaultSignatures } from './generated/naga-develop'; const NETWORK = 'custom'; const PROTOCOL = 'http://'; // Note: Different from dev/staging @@ -15,16 +15,20 @@ export interface NagaLocalSpecificConfigs { privateKey?: Hex; // Note: Local has private key config } -export type NagaLocalSignatures = typeof signatures; +export type NagaLocalSignatures = typeof defaultSignatures; export class NagaLocalEnvironment extends BaseNetworkEnvironment< NagaLocalSignatures, NagaLocalSpecificConfigs > { - constructor(options?: { rpcUrlOverride?: string }) { + constructor(options?: { + rpcUrlOverride?: string; + signatures?: NagaLocalSignatures; + }) { + const resolvedSignatures = options?.signatures ?? defaultSignatures; super({ network: NETWORK, - abiSignatures: signatures, // Note: Uses locally generated signatures + abiSignatures: resolvedSignatures, // Note: Uses locally generated signatures networkSpecificConfigs: { realmId: DEFAULT_REALM_ID, privateKey: chainInfo.DEV_PRIVATE_KEY, // Note: Includes private key diff --git a/packages/networks/src/networks/vNaga/envs/naga-local/naga-local.module.ts b/packages/networks/src/networks/vNaga/envs/naga-local/naga-local.module.ts index 56a15798d..4b4e2cf1d 100644 --- a/packages/networks/src/networks/vNaga/envs/naga-local/naga-local.module.ts +++ b/packages/networks/src/networks/vNaga/envs/naga-local/naga-local.module.ts @@ -1,21 +1,102 @@ +import { buildSignaturesFromContext } from '@lit-protocol/contracts/custom-network-signatures'; import { createBaseModule } from '../../shared/factories/BaseModuleFactory'; -import { createChainManager } from './chain-manager/createChainManager'; -import { nagaLocalEnvironment } from './naga-local.env'; +import { createChainManagerFactory } from '../../shared/factories/BaseChainManagerFactory'; +import { + NagaLocalEnvironment, + nagaLocalEnvironment, + type NagaLocalSignatures, +} from './naga-local.env'; +import { signatures as defaultSignatures } from './generated/naga-develop'; import type { ExpectedAccountOrWalletClient } from '../../shared/managers/contract-manager/createContractsManager'; -const baseModule = createBaseModule({ - networkConfig: nagaLocalEnvironment.getConfig(), - moduleName: nagaLocalEnvironment.getNetworkName(), - createChainManager: (account: ExpectedAccountOrWalletClient) => - createChainManager(account), -}); - -// Add local-specific methods and maintain backward compatibility -const nagaLocal = { - ...baseModule, - // Local environment specific getter for private key - getPrivateKey: () => nagaLocalEnvironment.getPrivateKey(), +type NagaLocalContextOptions = { + networkContextPath: string; + networkName?: string; + rpcUrlOverride?: string; }; -export type NagaLocal = typeof nagaLocal; +const REQUIRED_SIGNATURE_KEYS = Object.keys( + defaultSignatures +) as (keyof NagaLocalSignatures)[]; + +function assertIsNagaLocalSignatures( + value: unknown +): asserts value is NagaLocalSignatures { + if (typeof value !== 'object' || value === null) { + throw new Error('Generated signatures is not an object'); + } + + for (const key of REQUIRED_SIGNATURE_KEYS) { + const contract = (value as Record)[key]; + if ( + typeof contract !== 'object' || + contract === null || + typeof (contract as { address?: unknown }).address !== 'string' || + typeof (contract as { methods?: unknown }).methods !== 'object' + ) { + throw new Error( + `Generated signatures missing required contract metadata for ${ + key as string + }` + ); + } + } +} + +const createChainManager = ( + env: NagaLocalEnvironment, + account: ExpectedAccountOrWalletClient +) => createChainManagerFactory(env.getConfig(), account); + +const buildModule = (env: NagaLocalEnvironment) => { + const base = createBaseModule({ + networkConfig: env.getConfig(), + moduleName: env.getNetworkName(), + createChainManager: (account: ExpectedAccountOrWalletClient) => + createChainManager(env, account), + }); + + const createWithEnv = (nextEnv: NagaLocalEnvironment) => buildModule(nextEnv); + + const withOverrides = (overrides: { rpcUrl?: string }) => { + const resolvedRpc = overrides.rpcUrl ?? env.getConfig().rpcUrl; + + return createWithEnv( + new NagaLocalEnvironment({ + rpcUrlOverride: resolvedRpc, + signatures: env.getConfig().abiSignatures, + }) + ); + }; + + const withLocalContext = (options: NagaLocalContextOptions) => { + const { networkContextPath, networkName, rpcUrlOverride } = options; + + const { signatures } = buildSignaturesFromContext({ + jsonFilePath: networkContextPath, + networkName: networkName ?? 'naga-develop', + }); + + assertIsNagaLocalSignatures(signatures); + + return createWithEnv( + new NagaLocalEnvironment({ + rpcUrlOverride: rpcUrlOverride ?? env.getConfig().rpcUrl, + signatures, + }) + ); + }; + + return { + ...base, + getPrivateKey: () => env.getPrivateKey(), + withOverrides, + withLocalContext, + }; +}; + +const nagaLocal = buildModule(nagaLocalEnvironment); + +export type NagaLocal = ReturnType; +export type { NagaLocalContextOptions }; export { nagaLocal }; diff --git a/packages/networks/src/networks/vNaga/index.ts b/packages/networks/src/networks/vNaga/index.ts index 7cbd9f11a..1be7049fe 100644 --- a/packages/networks/src/networks/vNaga/index.ts +++ b/packages/networks/src/networks/vNaga/index.ts @@ -1,6 +1,9 @@ // Naga Local export { nagaLocal } from './envs/naga-local'; -export type { NagaLocal as NagaLocalModule } from './envs/naga-local/naga-local.module'; +export type { + NagaLocal as NagaLocalModule, + NagaLocalContextOptions, +} from './envs/naga-local/naga-local.module'; // Naga Dev export { nagaDev } from './envs/naga-dev'; diff --git a/packages/networks/src/networks/vNaga/shared/managers/session-manager/issueSessionFromContext.ts b/packages/networks/src/networks/vNaga/shared/managers/session-manager/issueSessionFromContext.ts index dcb66633b..d77c0a926 100644 --- a/packages/networks/src/networks/vNaga/shared/managers/session-manager/issueSessionFromContext.ts +++ b/packages/networks/src/networks/vNaga/shared/managers/session-manager/issueSessionFromContext.ts @@ -97,10 +97,19 @@ export const issueSessionFromContext = async (params: { // console.log('🔄 _userMaxPrices', _userMaxPrices); _userMaxPrices.forEach(({ url: nodeAddress, price }) => { + // ❗️❗️ TEMPORARY FIX: Convert to hex client-side so the node sees the + // intended wei cap until it supports decimal parsing. + // Reason: the node deserialises via `serde_json` into + // `ethers::types::U256`, which treats bare strings as hex. Sending our + // decimal bigint (e.g. "250000000000000000") therefore turns into the much + // larger 0x2500... amount. + const priceInWei = price; + const maxPriceHex = `0x${priceInWei.toString(16)}`; + const toSign: SessionSigningTemplate = { ...sessionSigningTemplate, nodeAddress, - maxPrice: price.toString(), + maxPrice: maxPriceHex, }; // console.log(`Setting maxprice for ${nodeAddress} to `, price.toString()); diff --git a/packages/wasm/package.json b/packages/wasm/package.json index 896463dc2..4aebdaf06 100644 --- a/packages/wasm/package.json +++ b/packages/wasm/package.json @@ -25,9 +25,9 @@ "universal" ], "scripts": { - "rust:build": "wasm-pack build ./rust --target web --release --out-name wasm-internal && yarn rust:postbuild", + "rust:build": "wasm-pack build ./rust --target web --release --out-name wasm-internal && pnpm run rust:postbuild", "rust:postbuild": "node scripts/copyWasmBinary.mjs && rm -rf src/pkg && mkdir src/pkg && mv rust/pkg/wasm-internal.js src/pkg && mv rust/pkg/wasm-internal.d.ts src/pkg", - "rust:build:debug": "wasm-pack build ./rust --target web --dev --out-name wasm-internal && yarn rust:postbuild" + "rust:build:debug": "wasm-pack build ./rust --target web --dev --out-name wasm-internal && pnpm run rust:postbuild" }, "main": "./src/index.js", "typings": "./src/index.d.ts", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 748922cc2..d5872519a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,16 +9,16 @@ importers: dependencies: '@babel/core': specifier: ^7.28.4 - version: 7.28.4 + version: 7.28.5 '@babel/preset-env': specifier: ^7.28.3 - version: 7.28.3(@babel/core@7.28.4) + version: 7.28.5(@babel/core@7.28.5) '@babel/preset-typescript': specifier: ^7.27.1 - version: 7.27.1(@babel/core@7.28.4) + version: 7.28.5(@babel/core@7.28.5) '@dotenvx/dotenvx': specifier: ^1.6.4 - version: 1.49.0 + version: 1.51.0 '@ethersproject/contracts': specifier: 5.8.0 version: 5.8.0 @@ -36,7 +36,7 @@ importers: version: 5.0.2 '@noble/curves': specifier: ^1.8.1 - version: 1.9.7 + version: 1.8.1 '@openagenda/verror': specifier: ^3.1.4 version: 3.1.4 @@ -48,13 +48,13 @@ importers: version: 7.4.0 '@wagmi/core': specifier: ^2.17.1 - version: 2.20.3(@tanstack/query-core@5.87.4)(@types/react@19.1.13)(react@19.1.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)) + version: 2.22.1(@tanstack/query-core@5.90.5)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)) ajv: specifier: ^8.12.0 version: 8.17.1 babel-jest: specifier: ^29 - version: 29.7.0(@babel/core@7.28.4) + version: 29.7.0(@babel/core@7.28.5) base64url: specifier: ^3.0.1 version: 3.0.1 @@ -66,7 +66,7 @@ importers: version: 9.0.2 cross-fetch: specifier: 3.1.8 - version: 3.1.8(encoding@0.1.13) + version: 3.1.8 depcheck: specifier: ^1.4.7 version: 1.4.7 @@ -84,7 +84,7 @@ importers: version: 2.1.0 pino: specifier: ^9.6.0 - version: 9.9.5 + version: 9.14.0 pino-caller: specifier: ^4.0.0 version: 4.0.0 @@ -96,7 +96,7 @@ importers: version: 0.0.2-alpha.0(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)) stytch: specifier: ^12.4.0 - version: 12.35.0 + version: 12.42.1 tslib: specifier: ^2.8.1 version: 2.8.1 @@ -105,10 +105,10 @@ importers: version: 4.0.10 viem: specifier: 2.38.x - version: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + version: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) wagmi: specifier: ^2.15.4 - version: 2.16.9(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@tanstack/query-core@5.87.4)(@tanstack/react-query@5.87.4(react@19.1.1))(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))(zod@3.24.3) + version: 2.18.2(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@tanstack/query-core@5.90.5)(@tanstack/react-query@5.90.5(react@18.3.1))(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))(zod@3.24.3) zod: specifier: 3.24.3 version: 3.24.3 @@ -118,28 +118,28 @@ importers: devDependencies: '@changesets/cli': specifier: ^2.29.4 - version: 2.29.7(@types/node@20.19.13) + version: 2.29.7(@types/node@20.0.0) '@nx/esbuild': specifier: 21.2.1 - version: 21.2.1(@babel/traverse@7.28.4)(esbuild@0.19.12)(nx@21.2.1) + version: 21.2.1(@babel/traverse@7.28.5)(esbuild@0.19.12)(nx@21.2.1) '@nx/eslint-plugin': specifier: 21.2.1 - version: 21.2.1(@babel/traverse@7.28.4)(@typescript-eslint/parser@6.21.0(eslint@9.34.0)(typescript@5.8.3))(eslint-config-prettier@9.1.0(eslint@9.34.0))(eslint@9.34.0)(nx@21.2.1)(typescript@5.8.3) + version: 21.2.1(@babel/traverse@7.28.5)(@typescript-eslint/parser@6.21.0(eslint@9.34.0)(typescript@5.8.3))(eslint-config-prettier@9.1.0(eslint@9.34.0))(eslint@9.34.0)(nx@21.2.1)(typescript@5.8.3) '@nx/jest': specifier: 21.2.1 - version: 21.2.1(@babel/traverse@7.28.4)(@types/node@20.19.13)(babel-plugin-macros@3.1.0)(nx@21.2.1)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3))(typescript@5.8.3) + version: 21.2.1(@babel/traverse@7.28.5)(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(nx@21.2.1)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3))(typescript@5.8.3) '@nx/js': specifier: 21.2.1 - version: 21.2.1(@babel/traverse@7.28.4)(nx@21.2.1) + version: 21.2.1(@babel/traverse@7.28.5)(nx@21.2.1) '@nx/node': specifier: 21.2.1 - version: 21.2.1(@babel/traverse@7.28.4)(@types/node@20.19.13)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.34.0)(nx@21.2.1)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3))(typescript@5.8.3) + version: 21.2.1(@babel/traverse@7.28.5)(@types/node@20.0.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.34.0)(nx@21.2.1)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3))(typescript@5.8.3) '@nx/plugin': specifier: 21.2.1 - version: 21.2.1(@babel/traverse@7.28.4)(@types/node@20.19.13)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.34.0)(nx@21.2.1)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3))(typescript@5.8.3) + version: 21.2.1(@babel/traverse@7.28.5)(@types/node@20.0.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.34.0)(nx@21.2.1)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3))(typescript@5.8.3) '@solana/web3.js': specifier: 1.95.3 - version: 1.95.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + version: 1.95.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@types/depd': specifier: ^1.1.36 version: 1.1.37 @@ -154,13 +154,13 @@ importers: version: 27.4.1 '@types/node': specifier: '20' - version: 20.19.13 + version: 20.0.0 '@types/node-localstorage': specifier: ^1.3.3 version: 1.3.3 '@types/secp256k1': specifier: ^4.0.6 - version: 4.0.6 + version: 4.0.7 '@typescript-eslint/eslint-plugin': specifier: 6.21.0 version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.34.0)(typescript@5.8.3))(eslint@9.34.0)(typescript@5.8.3) @@ -169,10 +169,10 @@ importers: version: 6.21.0(eslint@9.34.0)(typescript@5.8.3) artillery: specifier: ^2.0.23 - version: 2.0.24(@types/node@20.19.13)(bufferutil@4.0.9)(utf-8-validate@5.0.10) + version: 2.0.26(@types/node@20.0.0)(bufferutil@4.0.9)(utf-8-validate@5.0.10) axios: specifier: ^1.6.0 - version: 1.12.0(debug@4.4.1) + version: 1.12.2 esbuild: specifier: ^0.19.2 version: 0.19.12 @@ -202,16 +202,16 @@ importers: version: 6.9.0(eslint@9.34.0) ipfs-unixfs-importer: specifier: 12.0.1 - version: 12.0.1(encoding@0.1.13) + version: 12.0.1 jest: specifier: ^29.2.2 - version: 29.7.0(@types/node@20.19.13)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3)) + version: 29.7.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) node-fetch: specifier: ^2.6.1 - version: 2.7.0(encoding@0.1.13) + version: 2.7.0 node-localstorage: specifier: ^3.0.5 version: 3.0.5 @@ -223,7 +223,7 @@ importers: version: 0.12.7 pino-pretty: specifier: ^13.0.0 - version: 13.1.1 + version: 13.1.2 prettier: specifier: ^2.6.2 version: 2.8.8 @@ -232,16 +232,16 @@ importers: version: 6.0.1 ts-jest: specifier: 29.2.5 - version: 29.2.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.19.12)(jest@29.7.0(@types/node@20.19.13)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3)))(typescript@5.8.3) + version: 29.2.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.19.12)(jest@29.7.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)))(typescript@5.8.3) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.19.13)(typescript@5.8.3) + version: 10.9.2(@types/node@20.0.0)(typescript@5.8.3) tsx: specifier: ^4.20.5 - version: 4.20.5 + version: 4.20.6 typedoc: specifier: ^0.28.12 - version: 0.28.12(typescript@5.8.3) + version: 0.28.14(typescript@5.8.3) typescript: specifier: 5.8.3 version: 5.8.3 @@ -273,7 +273,7 @@ importers: version: link:../../dist/packages/e2e artillery: specifier: ^2.0.23 - version: 2.0.24(@types/node@20.19.13)(bufferutil@4.0.9)(utf-8-validate@5.0.10) + version: 2.0.26(@types/node@20.0.0)(bufferutil@4.0.9)(utf-8-validate@5.0.10) packages/auth: dependencies: @@ -291,7 +291,7 @@ importers: version: 7.4.0 '@wagmi/core': specifier: ^2.17.1 - version: 2.20.3(@tanstack/query-core@5.87.4)(@types/react@19.1.13)(react@19.1.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)) + version: 2.22.1(@tanstack/query-core@5.90.5)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)) base64url: specifier: ^3.0.1 version: 3.0.1 @@ -312,13 +312,13 @@ importers: version: 2.3.2(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)) stytch: specifier: ^12.4.0 - version: 12.35.0 + version: 12.42.1 tslib: specifier: ^2.3.0 version: 2.8.1 viem: specifier: 2.38.x - version: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + version: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) zod: specifier: 3.24.3 version: 3.24.3 @@ -331,7 +331,7 @@ importers: version: 5.7.0 '@wagmi/core': specifier: ^2.17.1 - version: 2.20.3(@tanstack/query-core@5.87.4)(@types/react@19.1.13)(react@19.1.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)) + version: 2.22.1(@tanstack/query-core@5.90.5)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)) ethers: specifier: ^5.7.1 version: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -343,7 +343,7 @@ importers: version: 0.0.2-alpha.0(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)) viem: specifier: 2.38.x - version: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + version: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) zod: specifier: 3.24.3 version: 3.24.3 @@ -359,7 +359,7 @@ importers: version: link:../../dist/packages/logger '@simplewebauthn/server': specifier: 6.2.1 - version: 6.2.1(encoding@0.1.13) + version: 6.2.1 '@t3-oss/env-core': specifier: 0.13.8 version: 0.13.8(typescript@5.8.3)(zod@3.24.3) @@ -368,7 +368,7 @@ importers: version: 6.0.0 bullmq: specifier: ^5.52.3 - version: 5.58.5 + version: 5.61.2 cbor-web: specifier: ^9.0.2 version: 9.0.2 @@ -389,7 +389,7 @@ importers: version: 8.1.0(express@5.1.0) google-auth-library: specifier: ^9.15.1 - version: 9.15.1(encoding@0.1.13) + version: 9.15.1 helmet: specifier: ^8.1.0 version: 8.1.0 @@ -404,16 +404,16 @@ importers: version: 4.7.1 stytch: specifier: ^12.4.0 - version: 12.35.0 + version: 12.42.1 tslib: specifier: ^2.8.1 version: 2.8.1 viem: specifier: 2.38.x - version: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + version: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) wagmi: specifier: ^2.14.11 - version: 2.16.9(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@tanstack/query-core@5.87.4)(@tanstack/react-query@5.87.4(react@19.1.1))(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))(zod@3.24.3) + version: 2.18.2(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@tanstack/query-core@5.90.5)(@tanstack/react-query@5.90.5(react@18.3.1))(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))(zod@3.24.3) zod: specifier: ^3.24.3 version: 3.24.3 @@ -432,7 +432,7 @@ importers: version: 9.2.1 tsx: specifier: ^4.20.5 - version: 4.20.5 + version: 4.20.6 publishDirectory: ../../dist/packages/auth-services packages/constants: @@ -467,7 +467,7 @@ importers: version: 6.15.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) tsx: specifier: ^4.20.5 - version: 4.20.5 + version: 4.20.6 typechain: specifier: ^8.3.2 version: 8.3.2(typescript@5.8.3) @@ -476,7 +476,7 @@ importers: version: 5.8.3 viem: specifier: 2.38.x - version: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + version: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) zod: specifier: ^3.24.3 version: 3.24.3 @@ -492,7 +492,7 @@ importers: version: 7.1.1(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) '@noble/curves': specifier: ^1.8.1 - version: 1.9.7 + version: 1.8.1 '@noble/hashes': specifier: ^1.8.0 version: 1.8.0 @@ -509,24 +509,141 @@ importers: packages/e2e: dependencies: + '@babel/core': + specifier: 7.28.5 + version: 7.28.5 + '@babel/preset-env': + specifier: 7.28.3 + version: 7.28.3(@babel/core@7.28.5) + '@babel/preset-typescript': + specifier: 7.27.1 + version: 7.27.1(@babel/core@7.28.5) + '@ethersproject/transactions': + specifier: 5.7.0 + version: 5.7.0 '@lit-protocol/access-control-conditions': specifier: workspace:* version: link:../../dist/packages/access-control-conditions + '@lit-protocol/access-control-conditions-schemas': + specifier: workspace:* + version: link:../../dist/packages/access-control-conditions-schemas '@lit-protocol/auth': specifier: workspace:* version: link:../../dist/packages/auth + '@lit-protocol/auth-helpers': + specifier: workspace:* + version: link:../../dist/packages/auth-helpers + '@lit-protocol/constants': + specifier: workspace:* + version: link:../../dist/packages/constants + '@lit-protocol/contracts': + specifier: workspace:* + version: link:../../dist/packages/contracts + '@lit-protocol/crypto': + specifier: workspace:* + version: link:../../dist/packages/crypto '@lit-protocol/lit-client': specifier: workspace:* version: link:../../dist/packages/lit-client + '@lit-protocol/logger': + specifier: workspace:* + version: link:../../dist/packages/logger + '@lit-protocol/nacl': + specifier: 7.1.1 + version: 7.1.1 '@lit-protocol/networks': specifier: workspace:* version: link:../../dist/packages/networks '@lit-protocol/schemas': specifier: workspace:* version: link:../../dist/packages/schemas + '@lit-protocol/types': + specifier: workspace:* + version: link:../../dist/packages/types + '@lit-protocol/uint8arrays': + specifier: 7.1.1 + version: 7.1.1(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) + '@lit-protocol/wasm': + specifier: workspace:* + version: link:../../dist/packages/wasm + '@noble/curves': + specifier: ^1.8.1 + version: 1.8.1 + '@noble/hashes': + specifier: 1.8.0 + version: 1.8.0 + '@openagenda/verror': + specifier: ^3.1.4 + version: 3.1.4 + '@simplewebauthn/browser': + specifier: ^7.2.0 + version: 7.4.0 + '@simplewebauthn/typescript-types': + specifier: ^7.0.0 + version: 7.4.0 + '@t3-oss/env-core': + specifier: 0.13.8 + version: 0.13.8(typescript@5.8.3)(zod@3.24.3) + '@typechain/ethers-v6': + specifier: 0.5.1 + version: 0.5.1(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3) + '@types/jest': + specifier: 30.0.0 + version: 30.0.0 + '@wagmi/core': + specifier: ^2.17.1 + version: 2.22.1(@tanstack/query-core@5.90.5)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)) + babel-jest: + specifier: 30.2.0 + version: 30.2.0(@babel/core@7.28.5) + base64url: + specifier: ^3.0.1 + version: 3.0.1 + bs58: + specifier: ^6.0.0 + version: 6.0.0 + cbor-web: + specifier: ^9.0.2 + version: 9.0.2 + depd: + specifier: ^2.0.0 + version: 2.0.0 + ethers: + specifier: ^5.7.1 + version: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + jest: + specifier: 30.2.0 + version: 30.2.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)) + jose: + specifier: ^4.14.4 + version: 4.15.9 + pako: + specifier: ^2.1.0 + version: 2.1.0 + pino: + specifier: ^9.6.0 + version: 9.14.0 + pino-caller: + specifier: ^4.0.0 + version: 4.0.0 + siwe: + specifier: ^2.3.2 + version: 2.3.2(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + siwe-recap: + specifier: 0.0.2-alpha.0 + version: 0.0.2-alpha.0(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + stytch: + specifier: ^12.4.0 + version: 12.42.1 + tslib: + specifier: ^2.8.1 + version: 2.8.1 + typechain: + specifier: 8.3.2 + version: 8.3.2(typescript@5.8.3) viem: specifier: 2.38.x - version: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + version: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) zod: specifier: 3.24.3 version: 3.24.3 @@ -549,10 +666,10 @@ importers: version: 6.0.0 typestub-ipfs-only-hash: specifier: ^4.0.0 - version: 4.0.0(encoding@0.1.13) + version: 4.0.0 viem: specifier: 2.38.x - version: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + version: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) zod: specifier: 3.24.3 version: 3.24.3 @@ -562,7 +679,7 @@ importers: dependencies: pino: specifier: ^9.6.0 - version: 9.9.5 + version: 9.14.0 publishDirectory: ../../dist/packages/logger packages/networks: @@ -575,13 +692,13 @@ importers: version: 7.1.1 '@noble/curves': specifier: ^1.8.1 - version: 1.9.7 + version: 1.8.1 '@noble/hashes': specifier: ^1.8.0 version: 1.8.0 '@wagmi/core': specifier: ^2.17.1 - version: 2.20.3(@tanstack/query-core@5.87.4)(@types/react@19.1.13)(react@19.1.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)) + version: 2.22.1(@tanstack/query-core@5.90.5)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)) bs58: specifier: ^6.0.0 version: 6.0.0 @@ -593,13 +710,13 @@ importers: version: 3.0.5 pino: specifier: ^9.6.0 - version: 9.9.5 + version: 9.14.0 pino-caller: specifier: ^4.0.0 version: 4.0.0 viem: specifier: 2.38.x - version: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + version: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) zod: specifier: 3.24.3 version: 3.24.3 @@ -654,22 +771,22 @@ packages: integrity: sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==, } - '@adraffy/ens-normalize@1.11.0': + '@adraffy/ens-normalize@1.11.1': resolution: { - integrity: sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==, + integrity: sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==, } - '@artilleryio/int-commons@2.15.0': + '@artilleryio/int-commons@2.17.0': resolution: { - integrity: sha512-LokZpxXEoyXcVs0gH5s3sQu69qUdIR0MrhxOT9Hiix305IuXOb9IvfvfHzSHwv0TeYdpadtfKg9paSXYMJIxqQ==, + integrity: sha512-FUPsfFRValc/XTKw9kInKGmN6j4lnyFfhOpvNfy1jUC5pPjZjtez9JyrxqSsdjlhY+FeUb/YrEOFPK0m9Da51w==, } - '@artilleryio/int-core@2.19.0': + '@artilleryio/int-core@2.21.0': resolution: { - integrity: sha512-ieIt4EZcZ5Bj6HFAQxujHaneUuOSZnkTnjJU56bkVrZQFN0HG1BMQOiWoyzayf9+1GDRS6NLSUdbTO9hs2uLMQ==, + integrity: sha512-QKfDJIopNHrrwaXhfSAM5aJ+/dhwD1x3EHNmp7XR4jUuCOgZnsJ9d8+oFJgbrYjqnLUtALDxDxSdHTuhdSAUcg==, } '@artilleryio/sketches-js@2.1.1': @@ -684,6 +801,25 @@ packages: integrity: sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA==, } + '@aws-crypto/crc32@5.2.0': + resolution: + { + integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==, + } + engines: { node: '>=16.0.0' } + + '@aws-crypto/crc32c@5.2.0': + resolution: + { + integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==, + } + + '@aws-crypto/sha1-browser@5.2.0': + resolution: + { + integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==, + } + '@aws-crypto/sha256-browser@5.2.0': resolution: { @@ -709,177 +845,317 @@ packages: integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==, } - '@aws-sdk/client-cloudwatch@3.887.0': + '@aws-sdk/client-cloudwatch-logs@3.916.0': + resolution: + { + integrity: sha512-UVix/MFWAF1QKgCi2Z/D5S5XsAldvVB7Wab41qXZJnjlO8uyavyOOYs8/wdm2oq1nEPfC66eaRNj8egqhkpTEw==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/client-cloudwatch@3.916.0': + resolution: + { + integrity: sha512-h9InEKeLTRm0rmImjpst45xT/nvxIivsQa8ysAfLawcTFEYnZ93wKtPke7hEGgBwBlqAlAG3hHpViS4i5F6SnQ==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/client-cognito-identity@3.916.0': + resolution: + { + integrity: sha512-MGpWcn350e/liZrsh8gdJMcBKwE4/pcNvSr3Dw+tB+ZVZlVFdHGFyeQVaknz8UWZXrfUK5KCbvahotmaQOs1pg==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/client-ec2@3.916.0': + resolution: + { + integrity: sha512-ko2OpwmTKQDSL7xywRuftURNq40hHyl2D3A7mw5q/WX+bw0KVFKron2PzIiA+icxtMMQVz87pjiwaE3RHrLkRQ==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/client-ecs@3.916.0': + resolution: + { + integrity: sha512-VMO8LMWturIIuxdypCZQrkelM3YvwgqpObykSoEy0/vxBI+QJXaCY3zTuayexHOtvCXtlo0xYca93m9ZLE0l6Q==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/client-iam@3.916.0': + resolution: + { + integrity: sha512-N0eqFFE0YusJseO7bHZj6HwGPSuZQRKiqCPx3KNoAbq99QX6LabC0BuBAbxWZ6SOtBIt5tIbRT9JhsMWuzko5w==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/client-lambda@3.916.0': + resolution: + { + integrity: sha512-d1OqP/+qtCbmPit2GarvcpQJwPJro4ZPs1Krx4re+L2Hud0mZGV18YviKYhsRY77eYa3WTNYRI7dSlSq+f/5cQ==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/client-s3@3.916.0': + resolution: + { + integrity: sha512-myfO8UkJzF3wxLUV1cKzzxI1oVOe+tsEyUypFt8yrs0WT0usNfjpUOmA4XNjp/wRClpImkEHT0XC1p6xQCuktQ==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/client-sqs@3.916.0': + resolution: + { + integrity: sha512-ZqIZwr6/n7NrC/94ZX0mIbgA5X6hD6iberFKykHu53VbrdY7w4o3RqxnN549xzSaq7+mhKjZfepEGB21/uVbFg==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/client-ssm@3.916.0': + resolution: + { + integrity: sha512-owXbToP0OWbFb+Pwrw6XW4WrKQHkqJVIIZu7e2oSw9VTxawS/ECA8ynj6HSm1HHzWTh8sKpzPXsidcSJ1Y2N+Q==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/client-sso@3.916.0': + resolution: + { + integrity: sha512-Eu4PtEUL1MyRvboQnoq5YKg0Z9vAni3ccebykJy615xokVZUdA3di2YxHM/hykDQX7lcUC62q9fVIvh0+UNk/w==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/client-sts@3.916.0': + resolution: + { + integrity: sha512-BvEtcl58TQLZH5vkUK6Zi2RMWwlkw0cZ9MCoSlw5Bum2XHOh721YofeAvgH5PtEvPVocGzO9PSKCiMM9JQqMWg==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/core@3.916.0': + resolution: + { + integrity: sha512-1JHE5s6MD5PKGovmx/F1e01hUbds/1y3X8rD+Gvi/gWVfdg5noO7ZCerpRsWgfzgvCMZC9VicopBqNHCKLykZA==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/credential-provider-cognito-identity@3.916.0': + resolution: + { + integrity: sha512-B0KoCIzEb5e98qaIF6PyXVBEvbi7yyInSoSSpP7ZmlRxanB4an/h54q5QwHPN+zGBqrGBiXbz9HvOLP2c29yww==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/credential-provider-env@3.916.0': + resolution: + { + integrity: sha512-3gDeqOXcBRXGHScc6xb7358Lyf64NRG2P08g6Bu5mv1Vbg9PKDyCAZvhKLkG7hkdfAM8Yc6UJNhbFxr1ud/tCQ==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/credential-provider-http@3.916.0': + resolution: + { + integrity: sha512-NmooA5Z4/kPFJdsyoJgDxuqXC1C6oPMmreJjbOPqcwo6E/h2jxaG8utlQFgXe5F9FeJsMx668dtxVxSYnAAqHQ==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/credential-provider-ini@3.916.0': + resolution: + { + integrity: sha512-iR0FofvdPs87o6MhfNPv0F6WzB4VZ9kx1hbvmR7bSFCk7l0gc7G4fHJOg4xg2lsCptuETboX3O/78OQ2Djeakw==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/credential-provider-node@3.916.0': + resolution: + { + integrity: sha512-8TrMpHqct0zTalf2CP2uODiN/PH9LPdBC6JDgPVK0POELTT4ITHerMxIhYGEiKN+6E4oRwSjM/xVTHCD4nMcrQ==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/credential-provider-process@3.916.0': + resolution: + { + integrity: sha512-SXDyDvpJ1+WbotZDLJW1lqP6gYGaXfZJrgFSXIuZjHb75fKeNRgPkQX/wZDdUvCwdrscvxmtyJorp2sVYkMcvA==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/credential-provider-sso@3.916.0': + resolution: + { + integrity: sha512-gu9D+c+U/Dp1AKBcVxYHNNoZF9uD4wjAKYCjgSN37j4tDsazwMEylbbZLuRNuxfbXtizbo4/TiaxBXDbWM7AkQ==, + } + engines: { node: '>=18.0.0' } + + '@aws-sdk/credential-provider-web-identity@3.916.0': resolution: { - integrity: sha512-+us9tLAIbZ5CCmWycWfaGKXgaz+ODmlBUzDoXCvHiMod3r5LrW5pfDEkuUKppdhtupyhUhsboOcgC979AnM1Nw==, + integrity: sha512-VFnL1EjHiwqi2kR19MLXjEgYBuWViCuAKLGSFGSzfFF/+kSpamVrOSFbqsTk8xwHan8PyNnQg4BNuusXwwLoIw==, } engines: { node: '>=18.0.0' } - '@aws-sdk/client-cognito-identity@3.887.0': + '@aws-sdk/credential-providers@3.916.0': resolution: { - integrity: sha512-Y/xcFWEFcroEkn0S75RANAq/5ZoE2tLNcTKUzLP9OjmJM+wEkwgNe3iGR4K5KKVQ13BH3YmSXqOPKC5EYPASZg==, + integrity: sha512-wazu2awF69ohF3AaDlYkD+tanaqwJ309o9GawNg3o1oW7orhdcvh6P8BftSjuIzuAMiauvQquxcUrNTLxHtvOA==, } engines: { node: '>=18.0.0' } - '@aws-sdk/client-sso@3.887.0': + '@aws-sdk/middleware-bucket-endpoint@3.914.0': resolution: { - integrity: sha512-ZKN8BxkRdC6vK6wlnuLSYBhj7uufg14GP5bxqiRaDEooN1y2WcuY95GP13I3brLvM0uboFGbObIVpVrbeHifng==, + integrity: sha512-mHLsVnPPp4iq3gL2oEBamfpeETFV0qzxRHmcnCfEP3hualV8YF8jbXGmwPCPopUPQDpbYDBHYtXaoClZikCWPQ==, } engines: { node: '>=18.0.0' } - '@aws-sdk/core@3.887.0': + '@aws-sdk/middleware-expect-continue@3.916.0': resolution: { - integrity: sha512-oiBsWhuuj1Lzh+FHY+gE0PyYuiDxqFf98F9Pd2WruY5Gu/+/xvDFEPEkIEOae8gWRaLZ5Eh8u+OY9LS4DXZhuQ==, + integrity: sha512-p7TMLZZ/j5NbC7/cz7xNgxLz/OHYuh91MeCZdCedJiyh3rx6gunFtl9eiDtrh+Y8hjs0EwR0zYIuhd6pL1O8zg==, } engines: { node: '>=18.0.0' } - '@aws-sdk/credential-provider-cognito-identity@3.887.0': + '@aws-sdk/middleware-flexible-checksums@3.916.0': resolution: { - integrity: sha512-T3IX39UefOOBWG+Jf/PuYjsI4XgX7nr0pSxYbLQq73/KILur+XZlhDssIaNjy+MoTs3ULNw63zlAcngVCykuOw==, + integrity: sha512-CBRRg6slHHBYAm26AWY/pECHK0vVO/peDoNhZiAzUNt4jV6VftotjszEJ904pKGOr7/86CfZxtCnP3CCs3lQjA==, } engines: { node: '>=18.0.0' } - '@aws-sdk/credential-provider-env@3.887.0': + '@aws-sdk/middleware-host-header@3.914.0': resolution: { - integrity: sha512-kv7L5E8mxlWTMhCK639wrQnFEmwUDfKvKzTMDo2OboXZ0iSbD+hBPoT0gkb49qHNetYnsl63BVOxc0VNiOA04w==, + integrity: sha512-7r9ToySQ15+iIgXMF/h616PcQStByylVkCshmQqcdeynD/lCn2l667ynckxW4+ql0Q+Bo/URljuhJRxVJzydNA==, } engines: { node: '>=18.0.0' } - '@aws-sdk/credential-provider-http@3.887.0': + '@aws-sdk/middleware-location-constraint@3.914.0': resolution: { - integrity: sha512-siLttHxSFgJ5caDgS+BHYs9GBDX7J3pgge4OmJvIQeGO+KaJC12TerBNPJOp+qRaRC3yuVw3T9RpSZa8mmaiyA==, + integrity: sha512-Mpd0Sm9+GN7TBqGnZg1+dO5QZ/EOYEcDTo7KfvoyrXScMlxvYm9fdrUVMmLdPn/lntweZGV3uNrs+huasGOOTA==, } engines: { node: '>=18.0.0' } - '@aws-sdk/credential-provider-ini@3.887.0': + '@aws-sdk/middleware-logger@3.914.0': resolution: { - integrity: sha512-Na9IjKdPuSNU/mBcCQ49HiIgomq/O7kZAuRyGwAXiRPbf86AacKv4dsUyPZY6lCgVIvVniRWgYlVaPgq22EIig==, + integrity: sha512-/gaW2VENS5vKvJbcE1umV4Ag3NuiVzpsANxtrqISxT3ovyro29o1RezW/Avz/6oJqjnmgz8soe9J1t65jJdiNg==, } engines: { node: '>=18.0.0' } - '@aws-sdk/credential-provider-node@3.887.0': + '@aws-sdk/middleware-recursion-detection@3.914.0': resolution: { - integrity: sha512-iJdCq/brBWYpJzJcXY2UhEoW7aA28ixIpvLKjxh5QUBfjCj19cImpj1gGwTIs6/fVcjVUw1tNveTBfn1ziTzVg==, + integrity: sha512-yiAjQKs5S2JKYc+GrkvGMwkUvhepXDigEXpSJqUseR/IrqHhvGNuOxDxq+8LbDhM4ajEW81wkiBbU+Jl9G82yQ==, } engines: { node: '>=18.0.0' } - '@aws-sdk/credential-provider-process@3.887.0': + '@aws-sdk/middleware-sdk-ec2@3.916.0': resolution: { - integrity: sha512-J5TIrQ/DUiyR65gXt1j3TEbLUwMcgYVB/G68/AVgBptPvb9kj+6zFG67bJJHwxtqJxRLVLTtTi9u/YDXTqGBpQ==, + integrity: sha512-FjOEVh6jLcpV38Bfvt10MK4JqT1dmiw3wPzs3mfPuWfOT4hNBE7WS7Brad1UsBdd6tDVh5lkAGqJFG10ARN3GA==, } engines: { node: '>=18.0.0' } - '@aws-sdk/credential-provider-sso@3.887.0': + '@aws-sdk/middleware-sdk-s3@3.916.0': resolution: { - integrity: sha512-Bv9wUActLu6Kn0MK2s72bgbbNxSLPVop/If4MVbCyJ3n+prJnm5RsTF3isoWQVyyXA5g4tIrS8mE5FpejSbyPQ==, + integrity: sha512-pjmzzjkEkpJObzmTthqJPq/P13KoNFuEi/x5PISlzJtHofCNcyXeVAQ90yvY2dQ6UXHf511Rh1/ytiKy2A8M0g==, } engines: { node: '>=18.0.0' } - '@aws-sdk/credential-provider-web-identity@3.887.0': + '@aws-sdk/middleware-sdk-sqs@3.916.0': resolution: { - integrity: sha512-PRh0KRukY2euN9xvvQ3cqhCAlEkMDJIWDLIfxQ1hTbv7JA3hrcLVrV+Jg5FRWsStDhweHIvD/VzruSkhJQS80g==, + integrity: sha512-fbHITbaItLVsg3HKVyh2yUAQQsOyIdbI9/uDTXqLB/vNdL14BOdmgtvo6MzWb+/FoX05fF2+4KH6SFU3mYEziQ==, } engines: { node: '>=18.0.0' } - '@aws-sdk/credential-providers@3.887.0': + '@aws-sdk/middleware-ssec@3.914.0': resolution: { - integrity: sha512-srs1S6zBjFYJvf5+ye+GnW2szApybV6jkNgVZ8LEJ7Xh5ucycHujK2qQHLRR8Wwrjg2+gq1K8jCfSGEDsaFo8A==, + integrity: sha512-V1Oae/oLVbpNb9uWs+v80GKylZCdsbqs2c2Xb1FsAUPtYeSnxFuAWsF3/2AEMSSpFe0dTC5KyWr/eKl2aim9VQ==, } engines: { node: '>=18.0.0' } - '@aws-sdk/middleware-host-header@3.887.0': + '@aws-sdk/middleware-user-agent@3.916.0': resolution: { - integrity: sha512-ulzqXv6NNqdu/kr0sgBYupWmahISHY+azpJidtK6ZwQIC+vBUk9NdZeqQpy7KVhIk2xd4+5Oq9rxapPwPI21CA==, + integrity: sha512-mzF5AdrpQXc2SOmAoaQeHpDFsK2GE6EGcEACeNuoESluPI2uYMpuuNMYrUufdnIAIyqgKlis0NVxiahA5jG42w==, } engines: { node: '>=18.0.0' } - '@aws-sdk/middleware-logger@3.887.0': + '@aws-sdk/nested-clients@3.916.0': resolution: { - integrity: sha512-YbbgLI6jKp2qSoAcHnXrQ5jcuc5EYAmGLVFgMVdk8dfCfJLfGGSaOLxF4CXC7QYhO50s+mPPkhBYejCik02Kug==, + integrity: sha512-tgg8e8AnVAer0rcgeWucFJ/uNN67TbTiDHfD+zIOPKep0Z61mrHEoeT/X8WxGIOkEn4W6nMpmS4ii8P42rNtnA==, } engines: { node: '>=18.0.0' } - '@aws-sdk/middleware-recursion-detection@3.887.0': + '@aws-sdk/region-config-resolver@3.914.0': resolution: { - integrity: sha512-tjrUXFtQnFLo+qwMveq5faxP5MQakoLArXtqieHphSqZTXm21wDJM73hgT4/PQQGTwgYjDKqnqsE1hvk0hcfDw==, + integrity: sha512-KlmHhRbn1qdwXUdsdrJ7S/MAkkC1jLpQ11n+XvxUUUCGAJd1gjC7AjxPZUM7ieQ2zcb8bfEzIU7al+Q3ZT0u7Q==, } engines: { node: '>=18.0.0' } - '@aws-sdk/middleware-user-agent@3.887.0': + '@aws-sdk/signature-v4-multi-region@3.916.0': resolution: { - integrity: sha512-YjBz2J4l3uCeMv2g1natat5YSMRZYdEpEg60g3d7q6hoHUD10SmWy8M+Ca8djF0is70vPmF3Icm2cArK3mtoNA==, + integrity: sha512-fuzUMo6xU7e0NBzBA6TQ4FUf1gqNbg4woBSvYfxRRsIfKmSMn9/elXXn4sAE5UKvlwVQmYnb6p7dpVRPyFvnQA==, } engines: { node: '>=18.0.0' } - '@aws-sdk/nested-clients@3.887.0': + '@aws-sdk/token-providers@3.916.0': resolution: { - integrity: sha512-h6/dHuAJhJnhSDihcQd0wfJBZoPmPajASVqGk8qDxYDBWxIU9/mYcKvM+kTrKw3f9Wf3S/eR5B/rYHHuxFheSw==, + integrity: sha512-13GGOEgq5etbXulFCmYqhWtpcEQ6WI6U53dvXbheW0guut8fDFJZmEv7tKMTJgiybxh7JHd0rWcL9JQND8DwoQ==, } engines: { node: '>=18.0.0' } - '@aws-sdk/region-config-resolver@3.887.0': + '@aws-sdk/types@3.914.0': resolution: { - integrity: sha512-VdSMrIqJ3yjJb/fY+YAxrH/lCVv0iL8uA+lbMNfQGtO5tB3Zx6SU9LEpUwBNX8fPK1tUpI65CNE4w42+MY/7Mg==, + integrity: sha512-kQWPsRDmom4yvAfyG6L1lMmlwnTzm1XwMHOU+G5IFlsP4YEaMtXidDzW/wiivY0QFrhfCz/4TVmu0a2aPU57ug==, } engines: { node: '>=18.0.0' } - '@aws-sdk/token-providers@3.887.0': + '@aws-sdk/util-arn-parser@3.893.0': resolution: { - integrity: sha512-3e5fTPMPeJ5DphZ+OSqzw4ymCgDf8SQVBgrlKVo4Bch9ZwmmAoOHbuQrXVa9xQHklEHJg1Gz2pkjxNaIgx7quA==, + integrity: sha512-u8H4f2Zsi19DGnwj5FSZzDMhytYF/bCh37vAtBsn3cNDL3YG578X5oc+wSX54pM3tOxS+NY7tvOAo52SW7koUA==, } engines: { node: '>=18.0.0' } - '@aws-sdk/types@3.887.0': + '@aws-sdk/util-endpoints@3.916.0': resolution: { - integrity: sha512-fmTEJpUhsPsovQ12vZSpVTEP/IaRoJAMBGQXlQNjtCpkBp6Iq3KQDa/HDaPINE+3xxo6XvTdtibsNOd5zJLV9A==, + integrity: sha512-bAgUQwvixdsiGNcuZSDAOWbyHlnPtg8G8TyHD6DTfTmKTHUW6tAn+af/ZYJPXEzXhhpwgJqi58vWnsiDhmr7NQ==, } engines: { node: '>=18.0.0' } - '@aws-sdk/util-endpoints@3.887.0': + '@aws-sdk/util-format-url@3.914.0': resolution: { - integrity: sha512-kpegvT53KT33BMeIcGLPA65CQVxLUL/C3gTz9AzlU/SDmeusBHX4nRApAicNzI/ltQ5lxZXbQn18UczzBuwF1w==, + integrity: sha512-QpdkoQjvPaYyzZwgk41vFyHQM5s0DsrsbQ8IoPUggQt4HaJUvmL1ShwMcSldbgdzwiRMqXUK8q7jrqUvkYkY6w==, } engines: { node: '>=18.0.0' } - '@aws-sdk/util-locate-window@3.873.0': + '@aws-sdk/util-locate-window@3.893.0': resolution: { - integrity: sha512-xcVhZF6svjM5Rj89T1WzkjQmrTF6dpR2UvIHPMTnSZoNe6CixejPZ6f0JJ2kAhO8H+dUHwNBlsUgOTIKiK/Syg==, + integrity: sha512-T89pFfgat6c8nMmpI8eKjBcDcgJq36+m9oiXbcUzeU55MP9ZuGgBomGjGnHaEyF36jenW9gmg3NfZDm0AO2XPg==, } engines: { node: '>=18.0.0' } - '@aws-sdk/util-user-agent-browser@3.887.0': + '@aws-sdk/util-user-agent-browser@3.914.0': resolution: { - integrity: sha512-X71UmVsYc6ZTH4KU6hA5urOzYowSXc3qvroagJNLJYU1ilgZ529lP4J9XOYfEvTXkLR1hPFSRxa43SrwgelMjA==, + integrity: sha512-rMQUrM1ECH4kmIwlGl9UB0BtbHy6ZuKdWFrIknu8yGTRI/saAucqNTh5EI1vWBxZ0ElhK5+g7zOnUuhSmVQYUA==, } - '@aws-sdk/util-user-agent-node@3.887.0': + '@aws-sdk/util-user-agent-node@3.916.0': resolution: { - integrity: sha512-eqnx2FWAf40Nw6EyhXWjVT5WYYMz0rLrKEhZR3GdRQyOFzgnnEfq74TtG2Xji9k/ODqkcKqkiI52RYDEcdh8Jg==, + integrity: sha512-CwfWV2ch6UdjuSV75ZU99N03seEUb31FIUrXBnwa6oONqj/xqXwrxtlUMLx6WH3OJEE4zI3zt5PjlTdGcVwf4g==, } engines: { node: '>=18.0.0' } peerDependencies: @@ -888,10 +1164,10 @@ packages: aws-crt: optional: true - '@aws-sdk/xml-builder@3.887.0': + '@aws-sdk/xml-builder@3.914.0': resolution: { - integrity: sha512-lMwgWK1kNgUhHGfBvO/5uLe7TKhycwOn3eRCqsKPT9aPCx/HWuTlpcQp8oW2pCRGLS7qzcxqpQulcD+bbUL7XQ==, + integrity: sha512-k75evsBD5TcIjedycYS7QXQ98AmOtbnxRJOPtCo0IwYRmy7UvqgS/gBL5SmrIqeV6FDSYRQMgdBxSMp6MLmdew==, } engines: { node: '>=18.0.0' } @@ -986,10 +1262,10 @@ packages: } engines: { node: '>=20.0.0' } - '@azure/identity@4.12.0': + '@azure/identity@4.13.0': resolution: { - integrity: sha512-6vuh2R3Cte6SD6azNalLCjIDoryGdcvDVEV7IDRPtm5lHX5ffkDlIalaoOp5YJU08e4ipjJENel20kSMDLAcug==, + integrity: sha512-uWC0fssc+hs1TGGVkkghiaFkkS7NkTxfnCH+Hdg+yTehTpMcehpok4PgUKKdyCH+9ldu6FhiHRv84Ntqj1vVcw==, } engines: { node: '>=20.0.0' } @@ -1000,45 +1276,45 @@ packages: } engines: { node: '>=20.0.0' } - '@azure/msal-browser@4.22.1': + '@azure/msal-browser@4.25.1': resolution: { - integrity: sha512-/I76rBJpt5ZVfFXk+GkKxD4w1DZEbVpNn0aQjvRgnDnTYo3L/f8Oeo3R1O9eL/ccg5j1537iRLr7UwVhwnHtyg==, + integrity: sha512-kAdOSNjvMbeBmEyd5WnddGmIpKCbAAGj4Gg/1iURtF+nHmIfS0+QUBBO3uaHl7CBB2R1SEAbpOgxycEwrHOkFA==, } engines: { node: '>=0.8.0' } - '@azure/msal-common@15.12.0': + '@azure/msal-common@15.13.0': resolution: { - integrity: sha512-4ucXbjVw8KJ5QBgnGJUeA07c8iznwlk5ioHIhI4ASXcXgcf2yRFhWzYOyWg/cI49LC9ekpFJeQtO3zjDTbl6TQ==, + integrity: sha512-8oF6nj02qX7eE/6+wFT5NluXRHc05AgdCC3fJnkjiJooq8u7BcLmxaYYSwc2AfEkWRMRi6Eyvvbeqk4U4412Ag==, } engines: { node: '>=0.8.0' } - '@azure/msal-node@3.7.3': + '@azure/msal-node@3.8.0': resolution: { - integrity: sha512-MoJxkKM/YpChfq4g2o36tElyzNUMG8mfD6u8NbuaPAsqfGpaw249khAcJYNoIOigUzRw45OjXCOrexE6ImdUxg==, + integrity: sha512-23BXm82Mp5XnRhrcd4mrHa0xuUNRp96ivu3nRatrfdAqjoeWAGyD0eEAafxAOHAEWWmdlyFK4ELFcdziXyw2sA==, } engines: { node: '>=16' } - '@azure/storage-blob@12.28.0': + '@azure/storage-blob@12.29.1': resolution: { - integrity: sha512-VhQHITXXO03SURhDiGuHhvc/k/sD2WvJUS7hqhiVNbErVCuQoLtWql7r97fleBlIRKHJaa9R7DpBjfE0pfLYcA==, + integrity: sha512-7ktyY0rfTM0vo7HvtK6E3UvYnI9qfd6Oz6z/+92VhGRveWng3kJwMKeUpqmW/NmwcDNbxHpSlldG+vsUnRFnBg==, } engines: { node: '>=20.0.0' } - '@azure/storage-common@12.0.0': + '@azure/storage-common@12.1.1': resolution: { - integrity: sha512-QyEWXgi4kdRo0wc1rHum9/KnaWZKCdQGZK1BjU4fFL6Jtedp7KLbQihgTTVxldFy1z1ZPtuDPx8mQ5l3huPPbA==, + integrity: sha512-eIOH1pqFwI6UmVNnDQvmFeSg0XppuzDLFeUNO/Xht7ODAzRLgGDh7h550pSxoA+lPDxBl1+D2m/KG3jWzCUjTg==, } engines: { node: '>=20.0.0' } - '@azure/storage-queue@12.27.0': + '@azure/storage-queue@12.28.1': resolution: { - integrity: sha512-GoviVZrJ1BkYCmsam0gOZFqAjH7bKbnbBIEVPkgzCz3RzsB/C05jumQep+3GavZoWw7Yw4iaCNPSyyS1lbN1Gg==, + integrity: sha512-mAw7a8Asi2tcqzUAWHKrUHQHkD1rZj0kTt3DC+2ZgnDoZj2gPp3yGjaeNiONiSdDOdIhnEK4/IlAolinrMxs7A==, } engines: { node: '>=20.0.0' } @@ -1049,24 +1325,24 @@ packages: } engines: { node: '>=6.9.0' } - '@babel/compat-data@7.28.4': + '@babel/compat-data@7.28.5': resolution: { - integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==, + integrity: sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==, } engines: { node: '>=6.9.0' } - '@babel/core@7.28.4': + '@babel/core@7.28.5': resolution: { - integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==, + integrity: sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==, } engines: { node: '>=6.9.0' } - '@babel/generator@7.28.3': + '@babel/generator@7.28.5': resolution: { - integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==, + integrity: sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==, } engines: { node: '>=6.9.0' } @@ -1084,19 +1360,19 @@ packages: } engines: { node: '>=6.9.0' } - '@babel/helper-create-class-features-plugin@7.28.3': + '@babel/helper-create-class-features-plugin@7.28.5': resolution: { - integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==, + integrity: sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==, } engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-create-regexp-features-plugin@7.27.1': + '@babel/helper-create-regexp-features-plugin@7.28.5': resolution: { - integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==, + integrity: sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==, } engines: { node: '>=6.9.0' } peerDependencies: @@ -1117,10 +1393,10 @@ packages: } engines: { node: '>=6.9.0' } - '@babel/helper-member-expression-to-functions@7.27.1': + '@babel/helper-member-expression-to-functions@7.28.5': resolution: { - integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==, + integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==, } engines: { node: '>=6.9.0' } @@ -1186,10 +1462,10 @@ packages: } engines: { node: '>=6.9.0' } - '@babel/helper-validator-identifier@7.27.1': + '@babel/helper-validator-identifier@7.28.5': resolution: { - integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==, + integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==, } engines: { node: '>=6.9.0' } @@ -1214,18 +1490,18 @@ packages: } engines: { node: '>=6.9.0' } - '@babel/parser@7.28.4': + '@babel/parser@7.28.5': resolution: { - integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==, + integrity: sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==, } engines: { node: '>=6.0.0' } hasBin: true - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5': resolution: { - integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==, + integrity: sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==, } engines: { node: '>=6.9.0' } peerDependencies: @@ -1490,10 +1766,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.28.4': + '@babel/plugin-transform-block-scoping@7.28.5': resolution: { - integrity: sha512-1yxmvN0MJHOhPVmAsmoW5liWwoILobu/d/ShymZmj867bAdxGbehIrew1DuLpw2Ukv+qDSSPQdYW1dLNE7t11A==, + integrity: sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==, } engines: { node: '>=6.9.0' } peerDependencies: @@ -1535,10 +1811,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.28.0': + '@babel/plugin-transform-destructuring@7.28.5': resolution: { - integrity: sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==, + integrity: sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==, } engines: { node: '>=6.9.0' } peerDependencies: @@ -1589,10 +1865,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-exponentiation-operator@7.27.1': + '@babel/plugin-transform-exponentiation-operator@7.28.5': resolution: { - integrity: sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==, + integrity: sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==, } engines: { node: '>=6.9.0' } peerDependencies: @@ -1643,10 +1919,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-logical-assignment-operators@7.27.1': + '@babel/plugin-transform-logical-assignment-operators@7.28.5': resolution: { - integrity: sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==, + integrity: sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==, } engines: { node: '>=6.9.0' } peerDependencies: @@ -1679,10 +1955,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-systemjs@7.27.1': + '@babel/plugin-transform-modules-systemjs@7.28.5': resolution: { - integrity: sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==, + integrity: sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==, } engines: { node: '>=6.9.0' } peerDependencies: @@ -1760,10 +2036,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-optional-chaining@7.27.1': + '@babel/plugin-transform-optional-chaining@7.28.5': resolution: { - integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==, + integrity: sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==, } engines: { node: '>=6.9.0' } peerDependencies: @@ -1832,10 +2108,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-runtime@7.28.3': + '@babel/plugin-transform-runtime@7.28.5': resolution: { - integrity: sha512-Y6ab1kGqZ0u42Zv/4a7l0l72n9DKP/MKoKWaUSBylrhNZO2prYuqFOLbn5aW5SIFXwSH93yfjbgllL8lxuGKLg==, + integrity: sha512-20NUVgOrinudkIBzQ2bNxP08YpKprUkRTiRSd2/Z5GOdPImJGkoN4Z7IQe1T5AdyKI1i5L6RBmluqdSzvaq9/w==, } engines: { node: '>=6.9.0' } peerDependencies: @@ -1886,10 +2162,10 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-typescript@7.28.0': + '@babel/plugin-transform-typescript@7.28.5': resolution: { - integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==, + integrity: sha512-x2Qa+v/CuEoX7Dr31iAfr0IhInrVOWZU/2vJMJ00FOR/2nM0BcBEclpaf9sWCDc+v5e9dMrhSH8/atq/kX7+bA==, } engines: { node: '>=6.9.0' } peerDependencies: @@ -1940,6 +2216,15 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/preset-env@7.28.5': + resolution: + { + integrity: sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/preset-modules@0.1.6-no-external-plugins': resolution: { @@ -1957,6 +2242,15 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/preset-typescript@7.28.5': + resolution: + { + integrity: sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==, + } + engines: { node: '>=6.9.0' } + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/runtime@7.28.4': resolution: { @@ -1971,17 +2265,17 @@ packages: } engines: { node: '>=6.9.0' } - '@babel/traverse@7.28.4': + '@babel/traverse@7.28.5': resolution: { - integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==, + integrity: sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==, } engines: { node: '>=6.9.0' } - '@babel/types@7.28.4': + '@babel/types@7.28.5': resolution: { - integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==, + integrity: sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==, } engines: { node: '>=6.9.0' } @@ -2132,17 +2426,17 @@ packages: } engines: { node: '>=12' } - '@dependents/detective-less@4.1.0': + '@dependents/detective-less@5.0.1': resolution: { - integrity: sha512-KrkT6qO5NxqNfy68sBl6CTSoJ4SNDIS5iQArkibhlbGU4LaDukZ3q2HIkh8aUKDio6o4itU4xDR7t82Y2eP1Bg==, + integrity: sha512-Y6+WUMsTFWE5jb20IFP4YGa5IrGY/+a/FbOSjDF/wz9gepU2hwCYSXRHP/vPwBvwcY3SVMASt4yXxbXNXigmZQ==, } - engines: { node: '>=14' } + engines: { node: '>=18' } - '@dotenvx/dotenvx@1.49.0': + '@dotenvx/dotenvx@1.51.0': resolution: { - integrity: sha512-M1cyP6YstFQCjih54SAxCqHLMMi8QqV8tenpgGE48RTXWD7vfMYJiw/6xcCDpS2h28AcLpTsFCZA863Ge9yxzA==, + integrity: sha512-CbMGzyOYSyFF7d4uaeYwO9gpSBzLTnMmSmTVpCZjvpJFV69qYbjYPpzNnCz1mb2wIvEhjWjRwQWuBzTO0jITww==, } hasBin: true @@ -2155,16 +2449,16 @@ packages: peerDependencies: '@noble/ciphers': ^1.0.0 - '@emnapi/core@1.5.0': + '@emnapi/core@1.6.0': resolution: { - integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==, + integrity: sha512-zq/ay+9fNIJJtJiZxdTnXS20PllcYMX3OE23ESc4HK/bdYu3cOWYVhsOhVnXALfU/uqJIxn5NBPd9z4v+SfoSg==, } - '@emnapi/runtime@1.5.0': + '@emnapi/runtime@1.6.0': resolution: { - integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==, + integrity: sha512-obtUmAHTMjll499P+D9A3axeJFlhdjOWdKUNs/U6QIGT7V5RjcUW1xToAzjvmgTSQhDbYn/NwfTRoJcQ2rNBxA==, } '@emnapi/wasi-threads@1.1.0': @@ -2182,10 +2476,10 @@ packages: cpu: [ppc64] os: [aix] - '@esbuild/aix-ppc64@0.25.9': + '@esbuild/aix-ppc64@0.25.11': resolution: { - integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==, + integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==, } engines: { node: '>=18' } cpu: [ppc64] @@ -2200,10 +2494,10 @@ packages: cpu: [arm64] os: [android] - '@esbuild/android-arm64@0.25.9': + '@esbuild/android-arm64@0.25.11': resolution: { - integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==, + integrity: sha512-9slpyFBc4FPPz48+f6jyiXOx/Y4v34TUeDDXJpZqAWQn/08lKGeD8aDp9TMn9jDz2CiEuHwfhRmGBvpnd/PWIQ==, } engines: { node: '>=18' } cpu: [arm64] @@ -2218,10 +2512,10 @@ packages: cpu: [arm] os: [android] - '@esbuild/android-arm@0.25.9': + '@esbuild/android-arm@0.25.11': resolution: { - integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==, + integrity: sha512-uoa7dU+Dt3HYsethkJ1k6Z9YdcHjTrSb5NUy66ZfZaSV8hEYGD5ZHbEMXnqLFlbBflLsl89Zke7CAdDJ4JI+Gg==, } engines: { node: '>=18' } cpu: [arm] @@ -2236,10 +2530,10 @@ packages: cpu: [x64] os: [android] - '@esbuild/android-x64@0.25.9': + '@esbuild/android-x64@0.25.11': resolution: { - integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==, + integrity: sha512-Sgiab4xBjPU1QoPEIqS3Xx+R2lezu0LKIEcYe6pftr56PqPygbB7+szVnzoShbx64MUupqoE0KyRlN7gezbl8g==, } engines: { node: '>=18' } cpu: [x64] @@ -2254,10 +2548,10 @@ packages: cpu: [arm64] os: [darwin] - '@esbuild/darwin-arm64@0.25.9': + '@esbuild/darwin-arm64@0.25.11': resolution: { - integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==, + integrity: sha512-VekY0PBCukppoQrycFxUqkCojnTQhdec0vevUL/EDOCnXd9LKWqD/bHwMPzigIJXPhC59Vd1WFIL57SKs2mg4w==, } engines: { node: '>=18' } cpu: [arm64] @@ -2272,10 +2566,10 @@ packages: cpu: [x64] os: [darwin] - '@esbuild/darwin-x64@0.25.9': + '@esbuild/darwin-x64@0.25.11': resolution: { - integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==, + integrity: sha512-+hfp3yfBalNEpTGp9loYgbknjR695HkqtY3d3/JjSRUyPg/xd6q+mQqIb5qdywnDxRZykIHs3axEqU6l1+oWEQ==, } engines: { node: '>=18' } cpu: [x64] @@ -2290,10 +2584,10 @@ packages: cpu: [arm64] os: [freebsd] - '@esbuild/freebsd-arm64@0.25.9': + '@esbuild/freebsd-arm64@0.25.11': resolution: { - integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==, + integrity: sha512-CmKjrnayyTJF2eVuO//uSjl/K3KsMIeYeyN7FyDBjsR3lnSJHaXlVoAK8DZa7lXWChbuOk7NjAc7ygAwrnPBhA==, } engines: { node: '>=18' } cpu: [arm64] @@ -2308,10 +2602,10 @@ packages: cpu: [x64] os: [freebsd] - '@esbuild/freebsd-x64@0.25.9': + '@esbuild/freebsd-x64@0.25.11': resolution: { - integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==, + integrity: sha512-Dyq+5oscTJvMaYPvW3x3FLpi2+gSZTCE/1ffdwuM6G1ARang/mb3jvjxs0mw6n3Lsw84ocfo9CrNMqc5lTfGOw==, } engines: { node: '>=18' } cpu: [x64] @@ -2326,10 +2620,10 @@ packages: cpu: [arm64] os: [linux] - '@esbuild/linux-arm64@0.25.9': + '@esbuild/linux-arm64@0.25.11': resolution: { - integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==, + integrity: sha512-Qr8AzcplUhGvdyUF08A1kHU3Vr2O88xxP0Tm8GcdVOUm25XYcMPp2YqSVHbLuXzYQMf9Bh/iKx7YPqECs6ffLA==, } engines: { node: '>=18' } cpu: [arm64] @@ -2344,10 +2638,10 @@ packages: cpu: [arm] os: [linux] - '@esbuild/linux-arm@0.25.9': + '@esbuild/linux-arm@0.25.11': resolution: { - integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==, + integrity: sha512-TBMv6B4kCfrGJ8cUPo7vd6NECZH/8hPpBHHlYI3qzoYFvWu2AdTvZNuU/7hsbKWqu/COU7NIK12dHAAqBLLXgw==, } engines: { node: '>=18' } cpu: [arm] @@ -2362,10 +2656,10 @@ packages: cpu: [ia32] os: [linux] - '@esbuild/linux-ia32@0.25.9': + '@esbuild/linux-ia32@0.25.11': resolution: { - integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==, + integrity: sha512-TmnJg8BMGPehs5JKrCLqyWTVAvielc615jbkOirATQvWWB1NMXY77oLMzsUjRLa0+ngecEmDGqt5jiDC6bfvOw==, } engines: { node: '>=18' } cpu: [ia32] @@ -2380,10 +2674,10 @@ packages: cpu: [loong64] os: [linux] - '@esbuild/linux-loong64@0.25.9': + '@esbuild/linux-loong64@0.25.11': resolution: { - integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==, + integrity: sha512-DIGXL2+gvDaXlaq8xruNXUJdT5tF+SBbJQKbWy/0J7OhU8gOHOzKmGIlfTTl6nHaCOoipxQbuJi7O++ldrxgMw==, } engines: { node: '>=18' } cpu: [loong64] @@ -2398,10 +2692,10 @@ packages: cpu: [mips64el] os: [linux] - '@esbuild/linux-mips64el@0.25.9': + '@esbuild/linux-mips64el@0.25.11': resolution: { - integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==, + integrity: sha512-Osx1nALUJu4pU43o9OyjSCXokFkFbyzjXb6VhGIJZQ5JZi8ylCQ9/LFagolPsHtgw6himDSyb5ETSfmp4rpiKQ==, } engines: { node: '>=18' } cpu: [mips64el] @@ -2416,10 +2710,10 @@ packages: cpu: [ppc64] os: [linux] - '@esbuild/linux-ppc64@0.25.9': + '@esbuild/linux-ppc64@0.25.11': resolution: { - integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==, + integrity: sha512-nbLFgsQQEsBa8XSgSTSlrnBSrpoWh7ioFDUmwo158gIm5NNP+17IYmNWzaIzWmgCxq56vfr34xGkOcZ7jX6CPw==, } engines: { node: '>=18' } cpu: [ppc64] @@ -2434,10 +2728,10 @@ packages: cpu: [riscv64] os: [linux] - '@esbuild/linux-riscv64@0.25.9': + '@esbuild/linux-riscv64@0.25.11': resolution: { - integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==, + integrity: sha512-HfyAmqZi9uBAbgKYP1yGuI7tSREXwIb438q0nqvlpxAOs3XnZ8RsisRfmVsgV486NdjD7Mw2UrFSw51lzUk1ww==, } engines: { node: '>=18' } cpu: [riscv64] @@ -2452,10 +2746,10 @@ packages: cpu: [s390x] os: [linux] - '@esbuild/linux-s390x@0.25.9': + '@esbuild/linux-s390x@0.25.11': resolution: { - integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==, + integrity: sha512-HjLqVgSSYnVXRisyfmzsH6mXqyvj0SA7pG5g+9W7ESgwA70AXYNpfKBqh1KbTxmQVaYxpzA/SvlB9oclGPbApw==, } engines: { node: '>=18' } cpu: [s390x] @@ -2470,19 +2764,19 @@ packages: cpu: [x64] os: [linux] - '@esbuild/linux-x64@0.25.9': + '@esbuild/linux-x64@0.25.11': resolution: { - integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==, + integrity: sha512-HSFAT4+WYjIhrHxKBwGmOOSpphjYkcswF449j6EjsjbinTZbp8PJtjsVK1XFJStdzXdy/jaddAep2FGY+wyFAQ==, } engines: { node: '>=18' } cpu: [x64] os: [linux] - '@esbuild/netbsd-arm64@0.25.9': + '@esbuild/netbsd-arm64@0.25.11': resolution: { - integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==, + integrity: sha512-hr9Oxj1Fa4r04dNpWr3P8QKVVsjQhqrMSUzZzf+LZcYjZNqhA3IAfPQdEh1FLVUJSiu6sgAwp3OmwBfbFgG2Xg==, } engines: { node: '>=18' } cpu: [arm64] @@ -2497,19 +2791,19 @@ packages: cpu: [x64] os: [netbsd] - '@esbuild/netbsd-x64@0.25.9': + '@esbuild/netbsd-x64@0.25.11': resolution: { - integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==, + integrity: sha512-u7tKA+qbzBydyj0vgpu+5h5AeudxOAGncb8N6C9Kh1N4n7wU1Xw1JDApsRjpShRpXRQlJLb9wY28ELpwdPcZ7A==, } engines: { node: '>=18' } cpu: [x64] os: [netbsd] - '@esbuild/openbsd-arm64@0.25.9': + '@esbuild/openbsd-arm64@0.25.11': resolution: { - integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==, + integrity: sha512-Qq6YHhayieor3DxFOoYM1q0q1uMFYb7cSpLD2qzDSvK1NAvqFi8Xgivv0cFC6J+hWVw2teCYltyy9/m/14ryHg==, } engines: { node: '>=18' } cpu: [arm64] @@ -2524,19 +2818,19 @@ packages: cpu: [x64] os: [openbsd] - '@esbuild/openbsd-x64@0.25.9': + '@esbuild/openbsd-x64@0.25.11': resolution: { - integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==, + integrity: sha512-CN+7c++kkbrckTOz5hrehxWN7uIhFFlmS/hqziSFVWpAzpWrQoAG4chH+nN3Be+Kzv/uuo7zhX716x3Sn2Jduw==, } engines: { node: '>=18' } cpu: [x64] os: [openbsd] - '@esbuild/openharmony-arm64@0.25.9': + '@esbuild/openharmony-arm64@0.25.11': resolution: { - integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==, + integrity: sha512-rOREuNIQgaiR+9QuNkbkxubbp8MSO9rONmwP5nKncnWJ9v5jQ4JxFnLu4zDSRPf3x4u+2VN4pM4RdyIzDty/wQ==, } engines: { node: '>=18' } cpu: [arm64] @@ -2551,10 +2845,10 @@ packages: cpu: [x64] os: [sunos] - '@esbuild/sunos-x64@0.25.9': + '@esbuild/sunos-x64@0.25.11': resolution: { - integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==, + integrity: sha512-nq2xdYaWxyg9DcIyXkZhcYulC6pQ2FuCgem3LI92IwMgIZ69KHeY8T4Y88pcwoLIjbed8n36CyKoYRDygNSGhA==, } engines: { node: '>=18' } cpu: [x64] @@ -2569,10 +2863,10 @@ packages: cpu: [arm64] os: [win32] - '@esbuild/win32-arm64@0.25.9': + '@esbuild/win32-arm64@0.25.11': resolution: { - integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==, + integrity: sha512-3XxECOWJq1qMZ3MN8srCJ/QfoLpL+VaxD/WfNRm1O3B4+AZ/BnLVgFbUV3eiRYDMXetciH16dwPbbHqwe1uU0Q==, } engines: { node: '>=18' } cpu: [arm64] @@ -2587,10 +2881,10 @@ packages: cpu: [ia32] os: [win32] - '@esbuild/win32-ia32@0.25.9': + '@esbuild/win32-ia32@0.25.11': resolution: { - integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==, + integrity: sha512-3ukss6gb9XZ8TlRyJlgLn17ecsK4NSQTmdIXRASVsiS2sQ6zPPZklNJT5GR5tE/MUarymmy8kCEf5xPCNCqVOA==, } engines: { node: '>=18' } cpu: [ia32] @@ -2605,10 +2899,10 @@ packages: cpu: [x64] os: [win32] - '@esbuild/win32-x64@0.25.9': + '@esbuild/win32-x64@0.25.11': resolution: { - integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==, + integrity: sha512-D7Hpz6A2L4hzsRpPaCYkQnGOotdUpDzSGRIv9I+1ITdHROSFUWW95ZPZWQmGka1Fg7W3zFJowyn9WGwMJ0+KPA==, } engines: { node: '>=18' } cpu: [x64] @@ -2623,17 +2917,17 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.12.1': + '@eslint-community/regexpp@4.12.2': resolution: { - integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==, + integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==, } engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } - '@eslint/config-array@0.21.0': + '@eslint/config-array@0.21.1': resolution: { - integrity: sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==, + integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } @@ -2665,10 +2959,10 @@ packages: } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - '@eslint/object-schema@2.1.6': + '@eslint/object-schema@2.1.7': resolution: { - integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==, + integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } @@ -2773,6 +3067,12 @@ packages: integrity: sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==, } + '@ethersproject/basex@5.8.0': + resolution: + { + integrity: sha512-PIgTszMlDRmNwW9nhS6iqtVfdTAKosA7llYXNmGPw4YAI1PUyMv28988wAb41/gHF/WqGdoLv0erHaRcHRKW2Q==, + } + '@ethersproject/bignumber@5.7.0': resolution: { @@ -2917,6 +3217,12 @@ packages: integrity: sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==, } + '@ethersproject/random@5.8.0': + resolution: + { + integrity: sha512-E4I5TDl7SVqyg4/kkA/qTfuLWAQGXmSOgYyO01So8hLfwgKvYK5snIlzxJMk72IFdG/7oh8yuSqY2KX7MMwg+A==, + } + '@ethersproject/rlp@5.7.0': resolution: { @@ -2935,6 +3241,12 @@ packages: integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==, } + '@ethersproject/sha2@5.8.0': + resolution: + { + integrity: sha512-dDOUrXr9wF/YFltgTBYS0tKslPEKr6AekjqDW2dbn1L1xmjGR+9GiKu4ajxovnrDbwxAKdHjW8jNcwfz8PAz4A==, + } + '@ethersproject/signing-key@5.7.0': resolution: { @@ -3015,34 +3327,26 @@ packages: peerDependencies: viem: '>=2.0.0' - '@gerrit0/mini-shiki@3.12.2': + '@gerrit0/mini-shiki@3.13.1': resolution: { - integrity: sha512-HKZPmO8OSSAAo20H2B3xgJdxZaLTwtlMwxg0967scnrDlPwe6j5+ULGHyIqwgTbFCn9yv/ff8CmfWZLE9YKBzA==, + integrity: sha512-fDWM5QQc70jwBIt/WYMybdyXdyBmoJe7r1hpM+V/bHnyla79sygVDK2/LlVxIPc4n5FA3B5Wzt7AQH2+psNphg==, } - '@google-cloud/monitoring@5.3.0': + '@google-cloud/monitoring@5.3.1': resolution: { - integrity: sha512-jAx0ASRcRqr+TZIgMTS3gFQR/FqkYzd4usCD0Y/QOkWt4vTT0SgYMaXn62gtuuEmY66VNBVROhpzOMeasgHuKw==, + integrity: sha512-f88LJn4PrzhiDaK0VH5KPxEXZfzJ7X8AGfYnK3KTfZEfH3cyxlvCnpgQQaScNTPhv+zX2MrdW/lJHDOpLsm71Q==, } engines: { node: '>=18' } - '@grpc/grpc-js@1.13.4': + '@grpc/grpc-js@1.14.0': resolution: { - integrity: sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==, + integrity: sha512-N8Jx6PaYzcTRNzirReJCtADVoq4z7+1KQ4E70jTg/koQiMoUSN1kbNjPOqpPbhMFhfU1/l7ixspPl8dNY+FoUg==, } engines: { node: '>=12.10.0' } - '@grpc/proto-loader@0.7.15': - resolution: - { - integrity: sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==, - } - engines: { node: '>=6' } - hasBin: true - '@grpc/proto-loader@0.8.0': resolution: { @@ -3091,10 +3395,17 @@ packages: } engines: { node: '>=18.18' } - '@inquirer/checkbox@4.2.2': + '@inquirer/ansi@1.0.1': + resolution: + { + integrity: sha512-yqq0aJW/5XPhi5xOAL1xRCpe1eh8UFVgYFpFsjEqmIR8rKLyP+HINvFXwUaxYICflJrVlxnp7lLN6As735kVpw==, + } + engines: { node: '>=18' } + + '@inquirer/checkbox@4.3.0': resolution: { - integrity: sha512-E+KExNurKcUJJdxmjglTl141EwxWyAHplvsYJQgSwXf8qiNWkTxTuCCqmhFEmbIXd4zLaGMfQFJ6WrZ7fSeV3g==, + integrity: sha512-5+Q3PKH35YsnoPTh75LucALdAxom6xh5D1oeY561x4cqBuH24ZFVyFREPe14xgnrtmGu3EEt1dIi60wRVSnGCw==, } engines: { node: '>=18' } peerDependencies: @@ -3103,10 +3414,10 @@ packages: '@types/node': optional: true - '@inquirer/confirm@5.1.16': + '@inquirer/confirm@5.1.19': resolution: { - integrity: sha512-j1a5VstaK5KQy8Mu8cHmuQvN1Zc62TbLhjJxwHvKPPKEoowSF6h/0UdOpA9DNdWZ+9Inq73+puRq1df6OJ8Sag==, + integrity: sha512-wQNz9cfcxrtEnUyG5PndC8g3gZ7lGDBzmWiXZkX8ot3vfZ+/BLjR8EvyGX4YzQLeVqtAlY/YScZpW7CW8qMoDQ==, } engines: { node: '>=18' } peerDependencies: @@ -3115,10 +3426,10 @@ packages: '@types/node': optional: true - '@inquirer/core@10.2.0': + '@inquirer/core@10.3.0': resolution: { - integrity: sha512-NyDSjPqhSvpZEMZrLCYUquWNl+XC/moEcVFqS55IEYIYsY0a1cUCevSqk7ctOlnm/RaSBU5psFryNlxcmGrjaA==, + integrity: sha512-Uv2aPPPSK5jeCplQmQ9xadnFx2Zhj9b5Dj7bU6ZeCdDNNY11nhYy4btcSdtDguHqCT2h5oNeQTcUNSGGLA7NTA==, } engines: { node: '>=18' } peerDependencies: @@ -3127,10 +3438,10 @@ packages: '@types/node': optional: true - '@inquirer/editor@4.2.18': + '@inquirer/editor@4.2.21': resolution: { - integrity: sha512-yeQN3AXjCm7+Hmq5L6Dm2wEDeBRdAZuyZ4I7tWSSanbxDzqM0KqzoDbKM7p4ebllAYdoQuPJS6N71/3L281i6w==, + integrity: sha512-MjtjOGjr0Kh4BciaFShYpZ1s9400idOdvQ5D7u7lE6VztPFoyLcVNE5dXBmEEIQq5zi4B9h2kU+q7AVBxJMAkQ==, } engines: { node: '>=18' } peerDependencies: @@ -3139,10 +3450,10 @@ packages: '@types/node': optional: true - '@inquirer/expand@4.0.18': + '@inquirer/expand@4.0.21': resolution: { - integrity: sha512-xUjteYtavH7HwDMzq4Cn2X4Qsh5NozoDHCJTdoXg9HfZ4w3R6mxV1B9tL7DGJX2eq/zqtsFjhm0/RJIMGlh3ag==, + integrity: sha512-+mScLhIcbPFmuvU3tAGBed78XvYHSvCl6dBiYMlzCLhpr0bzGzd8tfivMMeqND6XZiaZ1tgusbUHJEfc6YzOdA==, } engines: { node: '>=18' } peerDependencies: @@ -3151,10 +3462,10 @@ packages: '@types/node': optional: true - '@inquirer/external-editor@1.0.1': + '@inquirer/external-editor@1.0.2': resolution: { - integrity: sha512-Oau4yL24d2B5IL4ma4UpbQigkVhzPDXLoqy1ggK4gnHg/stmkffJE4oOXHXF3uz0UEpywG68KcyXsyYpA1Re/Q==, + integrity: sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==, } engines: { node: '>=18' } peerDependencies: @@ -3163,17 +3474,17 @@ packages: '@types/node': optional: true - '@inquirer/figures@1.0.13': + '@inquirer/figures@1.0.14': resolution: { - integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==, + integrity: sha512-DbFgdt+9/OZYFM+19dbpXOSeAstPy884FPy1KjDu4anWwymZeOYhMY1mdFri172htv6mvc/uvIAAi7b7tvjJBQ==, } engines: { node: '>=18' } - '@inquirer/input@4.2.2': + '@inquirer/input@4.2.5': resolution: { - integrity: sha512-hqOvBZj/MhQCpHUuD3MVq18SSoDNHy7wEnQ8mtvs71K8OPZVXJinOzcvQna33dNYLYE4LkA9BlhAhK6MJcsVbw==, + integrity: sha512-7GoWev7P6s7t0oJbenH0eQ0ThNdDJbEAEtVt9vsrYZ9FulIokvd823yLyhQlWHJPGce1wzP53ttfdCZmonMHyA==, } engines: { node: '>=18' } peerDependencies: @@ -3182,10 +3493,10 @@ packages: '@types/node': optional: true - '@inquirer/number@3.0.18': + '@inquirer/number@3.0.21': resolution: { - integrity: sha512-7exgBm52WXZRczsydCVftozFTrrwbG5ySE0GqUd2zLNSBXyIucs2Wnm7ZKLe/aUu6NUg9dg7Q80QIHCdZJiY4A==, + integrity: sha512-5QWs0KGaNMlhbdhOSCFfKsW+/dcAVC2g4wT/z2MCiZM47uLgatC5N20kpkDQf7dHx+XFct/MJvvNGy6aYJn4Pw==, } engines: { node: '>=18' } peerDependencies: @@ -3194,10 +3505,10 @@ packages: '@types/node': optional: true - '@inquirer/password@4.0.18': + '@inquirer/password@4.0.21': resolution: { - integrity: sha512-zXvzAGxPQTNk/SbT3carAD4Iqi6A2JS2qtcqQjsL22uvD+JfQzUrDEtPjLL7PLn8zlSNyPdY02IiQjzoL9TStA==, + integrity: sha512-xxeW1V5SbNFNig2pLfetsDb0svWlKuhmr7MPJZMYuDnCTkpVBI+X/doudg4pznc1/U+yYmWFFOi4hNvGgUo7EA==, } engines: { node: '>=18' } peerDependencies: @@ -3206,10 +3517,10 @@ packages: '@types/node': optional: true - '@inquirer/prompts@7.8.4': + '@inquirer/prompts@7.9.0': resolution: { - integrity: sha512-MuxVZ1en1g5oGamXV3DWP89GEkdD54alcfhHd7InUW5BifAdKQEK9SLFa/5hlWbvuhMPlobF0WAx7Okq988Jxg==, + integrity: sha512-X7/+dG9SLpSzRkwgG5/xiIzW0oMrV3C0HOa7YHG1WnrLK+vCQHfte4k/T80059YBdei29RBC3s+pSMvPJDU9/A==, } engines: { node: '>=18' } peerDependencies: @@ -3218,10 +3529,10 @@ packages: '@types/node': optional: true - '@inquirer/rawlist@4.1.6': + '@inquirer/rawlist@4.1.9': resolution: { - integrity: sha512-KOZqa3QNr3f0pMnufzL7K+nweFFCCBs6LCXZzXDrVGTyssjLeudn5ySktZYv1XiSqobyHRYYK0c6QsOxJEhXKA==, + integrity: sha512-AWpxB7MuJrRiSfTKGJ7Y68imYt8P9N3Gaa7ySdkFj1iWjr6WfbGAhdZvw/UnhFXTHITJzxGUI9k8IX7akAEBCg==, } engines: { node: '>=18' } peerDependencies: @@ -3230,10 +3541,10 @@ packages: '@types/node': optional: true - '@inquirer/search@3.1.1': + '@inquirer/search@3.2.0': resolution: { - integrity: sha512-TkMUY+A2p2EYVY3GCTItYGvqT6LiLzHBnqsU1rJbrpXUijFfM6zvUx0R4civofVwFCmJZcKqOVwwWAjplKkhxA==, + integrity: sha512-a5SzB/qrXafDX1Z4AZW3CsVoiNxcIYCzYP7r9RzrfMpaLpB+yWi5U8BWagZyLmwR0pKbbL5umnGRd0RzGVI8bQ==, } engines: { node: '>=18' } peerDependencies: @@ -3242,10 +3553,10 @@ packages: '@types/node': optional: true - '@inquirer/select@4.3.2': + '@inquirer/select@4.4.0': resolution: { - integrity: sha512-nwous24r31M+WyDEHV+qckXkepvihxhnyIaod2MG7eCE6G0Zm/HUF6jgN8GXgf4U7AU6SLseKdanY195cwvU6w==, + integrity: sha512-kaC3FHsJZvVyIjYBs5Ih8y8Bj4P/QItQWrZW22WJax7zTN+ZPXVGuOM55vzbdCP9zKUiBd9iEJVdesujfF+cAA==, } engines: { node: '>=18' } peerDependencies: @@ -3254,10 +3565,10 @@ packages: '@types/node': optional: true - '@inquirer/type@3.0.8': + '@inquirer/type@3.0.9': resolution: { - integrity: sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==, + integrity: sha512-QPaNt/nmE2bLGQa9b7wwyRJoLZ7pN6rcyXvzU0YCmivmJyq1BVo94G98tStRWkoD1RgDX5C+dPlhhHzNdu/W/w==, } engines: { node: '>=18' } peerDependencies: @@ -3266,10 +3577,10 @@ packages: '@types/node': optional: true - '@ioredis/commands@1.3.1': + '@ioredis/commands@1.4.0': resolution: { - integrity: sha512-bYtU8avhGIcje3IhvF9aSjsa5URMZBHnwKtOvXsT4sfYy9gppW11gLPT/9oNqlJZD47yPKveQFTAFWpHjKvUoQ==, + integrity: sha512-aFT2yemJJo+TZCmieA7qnYGQooOS7QfNmYrzGtsYd3g9j5iDP8AimYYAesf79ohjbLG12XxC4nG5DyEnC88AsQ==, } '@ipld/dag-pb@4.1.5': @@ -3321,6 +3632,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + '@jest/console@30.2.0': + resolution: + { + integrity: sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + '@jest/core@29.7.0': resolution: { @@ -3333,12 +3651,38 @@ packages: node-notifier: optional: true - '@jest/environment@29.7.0': + '@jest/core@30.2.0': resolution: { - integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==, + integrity: sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==, } - engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + + '@jest/diff-sequences@30.0.1': + resolution: + { + integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + + '@jest/environment@29.7.0': + resolution: + { + integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==, + } + engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + + '@jest/environment@30.2.0': + resolution: + { + integrity: sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } '@jest/expect-utils@29.7.0': resolution: @@ -3347,6 +3691,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + '@jest/expect-utils@30.2.0': + resolution: + { + integrity: sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + '@jest/expect@29.7.0': resolution: { @@ -3354,6 +3705,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + '@jest/expect@30.2.0': + resolution: + { + integrity: sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + '@jest/fake-timers@29.7.0': resolution: { @@ -3361,6 +3719,20 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + '@jest/fake-timers@30.2.0': + resolution: + { + integrity: sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + + '@jest/get-type@30.1.0': + resolution: + { + integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + '@jest/globals@29.7.0': resolution: { @@ -3368,6 +3740,20 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + '@jest/globals@30.2.0': + resolution: + { + integrity: sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + + '@jest/pattern@30.0.1': + resolution: + { + integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + '@jest/reporters@29.7.0': resolution: { @@ -3380,6 +3766,18 @@ packages: node-notifier: optional: true + '@jest/reporters@30.2.0': + resolution: + { + integrity: sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + '@jest/schemas@29.6.3': resolution: { @@ -3387,6 +3785,20 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + '@jest/schemas@30.0.5': + resolution: + { + integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + + '@jest/snapshot-utils@30.2.0': + resolution: + { + integrity: sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + '@jest/source-map@29.6.3': resolution: { @@ -3394,6 +3806,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + '@jest/source-map@30.0.1': + resolution: + { + integrity: sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + '@jest/test-result@29.7.0': resolution: { @@ -3401,6 +3820,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + '@jest/test-result@30.2.0': + resolution: + { + integrity: sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + '@jest/test-sequencer@29.7.0': resolution: { @@ -3408,6 +3834,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + '@jest/test-sequencer@30.2.0': + resolution: + { + integrity: sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + '@jest/transform@29.7.0': resolution: { @@ -3415,6 +3848,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + '@jest/transform@30.2.0': + resolution: + { + integrity: sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + '@jest/types@29.6.3': resolution: { @@ -3422,6 +3862,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + '@jest/types@30.2.0': + resolution: + { + integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + '@jridgewell/gen-mapping@0.3.13': resolution: { @@ -3635,10 +4082,16 @@ packages: } engines: { node: '>=12.0.0' } - '@metamask/sdk-communication-layer@0.32.0': + '@metamask/sdk-analytics@0.0.5': + resolution: + { + integrity: sha512-fDah+keS1RjSUlC8GmYXvx6Y26s3Ax1U9hGpWb6GSY5SAdmTSIqp2CvYy6yW0WgLhnYhW+6xERuD0eVqV63QIQ==, + } + + '@metamask/sdk-communication-layer@0.33.1': resolution: { - integrity: sha512-dmj/KFjMi1fsdZGIOtbhxdg3amxhKL/A5BqSU4uh/SyDKPub/OT+x5pX8bGjpTL1WPWY/Q0OIlvFyX3VWnT06Q==, + integrity: sha512-0bI9hkysxcfbZ/lk0T2+aKVo1j0ynQVTuB3sJ5ssPWlz+Z3VwveCkP1O7EVu1tsVVCb0YV5WxK9zmURu2FIiaA==, } peerDependencies: cross-fetch: ^4.0.0 @@ -3647,16 +4100,16 @@ packages: readable-stream: ^3.6.2 socket.io-client: ^4.5.1 - '@metamask/sdk-install-modal-web@0.32.0': + '@metamask/sdk-install-modal-web@0.32.1': resolution: { - integrity: sha512-TFoktj0JgfWnQaL3yFkApqNwcaqJ+dw4xcnrJueMP3aXkSNev2Ido+WVNOg4IIMxnmOrfAC9t0UJ0u/dC9MjOQ==, + integrity: sha512-MGmAo6qSjf1tuYXhCu2EZLftq+DSt5Z7fsIKr2P+lDgdTPWgLfZB1tJKzNcwKKOdf6q9Qmmxn7lJuI/gq5LrKw==, } - '@metamask/sdk@0.32.0': + '@metamask/sdk@0.33.1': resolution: { - integrity: sha512-WmGAlP1oBuD9hk4CsdlG1WJFuPtYJY+dnTHJMeCyohTWD2GgkcLMUUuvu9lO1/NVzuOoSi1OrnjbuY1O/1NZ1g==, + integrity: sha512-1mcOQVGr9rSrVcbKPNVzbZ8eCl1K0FATsYH3WJ/MH4WcZDWGECWrXJPNMZoEAkLxWiMe8jOQBumg2pmcDa9zpQ==, } '@metamask/superstruct@3.2.1': @@ -3666,10 +4119,10 @@ packages: } engines: { node: '>=16.0.0' } - '@metamask/utils@11.7.0': + '@metamask/utils@11.8.1': resolution: { - integrity: sha512-IamqpZF8Lr4WeXJ84fD+Sy+v1Zo05SYuMPHHBrZWpzVbnHAmXQpL4ckn9s5dfA+zylp3WGypaBPb6SBZdOhuNQ==, + integrity: sha512-DIbsNUyqWLFgqJlZxi1OOCMYvI23GqFCvNJAtzv8/WXWzJfnJnvp1M24j7VvUe3URBi3S86UgQ7+7aWU9p/cnQ==, } engines: { node: ^18.18 || ^20.14 || >=22 } @@ -3755,6 +4208,12 @@ packages: } engines: { node: '>=16.0.0', npm: '>=7.0.0' } + '@napi-rs/wasm-runtime@0.2.12': + resolution: + { + integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==, + } + '@napi-rs/wasm-runtime@0.2.4': resolution: { @@ -3861,13 +4320,6 @@ packages: } engines: { node: ^14.21.3 || >=16 } - '@noble/hashes@1.7.2': - resolution: - { - integrity: sha512-biZ0NUSxyjLLqo6KxEJ1b+C2NAx0wtDoFvCaXHGgUkeHzf3Xc1xKumFKREuT7f7DARNZ/slvYUwFG6B0f2b6hQ==, - } - engines: { node: ^14.21.3 || >=16 } - '@noble/hashes@1.8.0': resolution: { @@ -4067,24 +4519,24 @@ packages: integrity: sha512-tJMD4ELFZI1bbfcDz+k89MB1GumTVkwDVMicPBZwIlXTVqKQDgJmGUYIMF7VgU499WcX08LQAwVlIjvGX07GMw==, } - '@oclif/core@4.5.3': + '@oclif/core@4.7.2': resolution: { - integrity: sha512-ISoFlfmsuxJvNKXhabCO4/KqNXDQdLHchZdTPfZbtqAsQbqTw5IKitLVZq9Sz1LWizN37HILp4u0350B8scBjg==, + integrity: sha512-AmZnhEnyD7bFxmzEKRaOEr0kzonmwIip72eWZPWB5+7D9ayHa/QFX08zhaQT9eOo0//ed64v5p5QZIbYCbQaJQ==, } engines: { node: '>=18.0.0' } - '@oclif/plugin-help@6.2.32': + '@oclif/plugin-help@6.2.33': resolution: { - integrity: sha512-LrmMdo9EMJciOvF8UurdoTcTMymv5npKtxMAyonZvhSvGR8YwCKnuHIh00+SO2mNtGOYam7f4xHnUmj2qmanyA==, + integrity: sha512-9L07S61R0tuXrURdLcVtjF79Nbyv3qGplJ88DVskJBxShbROZl3hBG7W/CNltAK3cnMPlXV8K3kKh+C0N0p4xw==, } engines: { node: '>=18.0.0' } - '@oclif/plugin-not-found@3.2.67': + '@oclif/plugin-not-found@3.2.70': resolution: { - integrity: sha512-Q2VluSwTrh7Sk0ey88Lk5WSATn9AZ6TjYQIyt2QrQolOBErAgpDoDSMVRYuVNtjxPBTDBzz4MM54QRFa/nN4IQ==, + integrity: sha512-pFU32i0hpOrpb2k+HXTp2MuGB/FaaTDrbCkbcoA+0uxjGAqhifxCJlDLZI/BCjsjd0nKJ0pZEDbiIAA6+2oKoA==, } engines: { node: '>=18.0.0' } @@ -4446,17 +4898,37 @@ packages: peerDependencies: typescript: ^3 || ^4 || ^5 - '@playwright/browser-chromium@1.54.2': + '@pinojs/redact@0.4.0': + resolution: + { + integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==, + } + + '@pkgjs/parseargs@0.11.0': + resolution: + { + integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, + } + engines: { node: '>=14' } + + '@pkgr/core@0.2.9': + resolution: + { + integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==, + } + engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 } + + '@playwright/browser-chromium@1.55.0': resolution: { - integrity: sha512-DqmhKemShLoF3x4LxEnTc0XPlHSedB3grOpokz9nnXkRsdMHIjVjeGz5QyZXWh6wONWNQrLbdD5iU5cb3tRsLg==, + integrity: sha512-HxG0+6v8NGLFLYMxrGb4T4DAmKwwx6C0V3uIn/i91tOVqcNnaBBllhpxLEqXCnxjprL3HDDMXsVPjk1/vsCVAw==, } engines: { node: '>=18' } - '@playwright/test@1.54.2': + '@playwright/test@1.55.0': resolution: { - integrity: sha512-A+znathYxPf+72riFd1r1ovOLqsIIB0jKIoPjyK2kqEIe30/6jF6BC7QNluHuwUmsD2tv1XZVugN8GqfTMOxsA==, + integrity: sha512-04IXzPwHrW69XusN/SIdDdKZBzMfOT9UNT/YiJit/xpy2VuAoB8NHc8Aplb96zsWDddLnbkPL3TsmrS04ZU2xQ==, } engines: { node: '>=18' } hasBin: true @@ -4709,28 +5181,28 @@ packages: integrity: sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==, } - '@shikijs/engine-oniguruma@3.12.2': + '@shikijs/engine-oniguruma@3.13.0': resolution: { - integrity: sha512-hozwnFHsLvujK4/CPVHNo3Bcg2EsnG8krI/ZQ2FlBlCRpPZW4XAEQmEwqegJsypsTAN9ehu2tEYe30lYKSZW/w==, + integrity: sha512-O42rBGr4UDSlhT2ZFMxqM7QzIU+IcpoTMzb3W7AlziI1ZF7R8eS2M0yt5Ry35nnnTX/LTLXFPUjRFCIW+Operg==, } - '@shikijs/langs@3.12.2': + '@shikijs/langs@3.13.0': resolution: { - integrity: sha512-bVx5PfuZHDSHoBal+KzJZGheFuyH4qwwcwG/n+MsWno5cTlKmaNtTsGzJpHYQ8YPbB5BdEdKU1rga5/6JGY8ww==, + integrity: sha512-672c3WAETDYHwrRP0yLy3W1QYB89Hbpj+pO4KhxK6FzIrDI2FoEXNiNCut6BQmEApYLfuYfpgOZaqbY+E9b8wQ==, } - '@shikijs/themes@3.12.2': + '@shikijs/themes@3.13.0': resolution: { - integrity: sha512-fTR3QAgnwYpfGczpIbzPjlRnxyONJOerguQv1iwpyQZ9QXX4qy/XFQqXlf17XTsorxnHoJGbH/LXBvwtqDsF5A==, + integrity: sha512-Vxw1Nm1/Od8jyA7QuAenaV78BG2nSr3/gCGdBkLpfLscddCkzkL36Q5b67SrLLfvAJTOUzW39x4FHVCFriPVgg==, } - '@shikijs/types@3.12.2': + '@shikijs/types@3.13.0': resolution: { - integrity: sha512-K5UIBzxCyv0YoxN3LMrKB9zuhp1bV+LgewxuVwHdl4Gz5oePoUFrr9EfgJlGlDeXCU1b/yhdnXeuRvAnz8HN8Q==, + integrity: sha512-oM9P+NCFri/mmQ8LoFGVfVyemm5Hi27330zuOBp0annwJdKH1kOLndw3zCtAVDehPLg9fKqoEx3Ht/wNZxolfw==, } '@shikijs/vscode-textmate@10.0.2': @@ -4790,6 +5262,12 @@ packages: integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==, } + '@sinclair/typebox@0.34.41': + resolution: + { + integrity: sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==, + } + '@sindresorhus/is@4.6.0': resolution: { @@ -4809,52 +5287,121 @@ packages: integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==, } - '@smithy/abort-controller@4.1.1': + '@sinonjs/fake-timers@13.0.5': + resolution: + { + integrity: sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==, + } + + '@smithy/abort-controller@4.2.3': + resolution: + { + integrity: sha512-xWL9Mf8b7tIFuAlpjKtRPnHrR8XVrwTj5NPYO/QwZPtc0SDLsPxb56V5tzi5yspSMytISHybifez+4jlrx0vkQ==, + } + engines: { node: '>=18.0.0' } + + '@smithy/chunked-blob-reader-native@4.2.1': + resolution: + { + integrity: sha512-lX9Ay+6LisTfpLid2zZtIhSEjHMZoAR5hHCR4H7tBz/Zkfr5ea8RcQ7Tk4mi0P76p4cN+Btz16Ffno7YHpKXnQ==, + } + engines: { node: '>=18.0.0' } + + '@smithy/chunked-blob-reader@5.2.0': + resolution: + { + integrity: sha512-WmU0TnhEAJLWvfSeMxBNe5xtbselEO8+4wG0NtZeL8oR21WgH1xiO37El+/Y+H/Ie4SCwBy3MxYWmOYaGgZueA==, + } + engines: { node: '>=18.0.0' } + + '@smithy/config-resolver@4.4.0': + resolution: + { + integrity: sha512-Kkmz3Mup2PGp/HNJxhCWkLNdlajJORLSjwkcfrj0E7nu6STAEdcMR1ir5P9/xOmncx8xXfru0fbUYLlZog/cFg==, + } + engines: { node: '>=18.0.0' } + + '@smithy/core@3.17.1': + resolution: + { + integrity: sha512-V4Qc2CIb5McABYfaGiIYLTmo/vwNIK7WXI5aGveBd9UcdhbOMwcvIMxIw/DJj1S9QgOMa/7FBkarMdIC0EOTEQ==, + } + engines: { node: '>=18.0.0' } + + '@smithy/credential-provider-imds@4.2.3': + resolution: + { + integrity: sha512-hA1MQ/WAHly4SYltJKitEsIDVsNmXcQfYBRv2e+q04fnqtAX5qXaybxy/fhUeAMCnQIdAjaGDb04fMHQefWRhw==, + } + engines: { node: '>=18.0.0' } + + '@smithy/eventstream-codec@4.2.3': + resolution: + { + integrity: sha512-rcr0VH0uNoMrtgKuY7sMfyKqbHc4GQaQ6Yp4vwgm+Z6psPuOgL+i/Eo/QWdXRmMinL3EgFM0Z1vkfyPyfzLmjw==, + } + engines: { node: '>=18.0.0' } + + '@smithy/eventstream-serde-browser@4.2.3': + resolution: + { + integrity: sha512-EcS0kydOr2qJ3vV45y7nWnTlrPmVIMbUFOZbMG80+e2+xePQISX9DrcbRpVRFTS5Nqz3FiEbDcTCAV0or7bqdw==, + } + engines: { node: '>=18.0.0' } + + '@smithy/eventstream-serde-config-resolver@4.3.3': + resolution: + { + integrity: sha512-GewKGZ6lIJ9APjHFqR2cUW+Efp98xLu1KmN0jOWxQ1TN/gx3HTUPVbLciFD8CfScBj2IiKifqh9vYFRRXrYqXA==, + } + engines: { node: '>=18.0.0' } + + '@smithy/eventstream-serde-node@4.2.3': resolution: { - integrity: sha512-vkzula+IwRvPR6oKQhMYioM3A/oX/lFCZiwuxkQbRhqJS2S4YRY2k7k/SyR2jMf3607HLtbEwlRxi0ndXHMjRg==, + integrity: sha512-uQobOTQq2FapuSOlmGLUeGTpvcBLE5Fc7XjERUSk4dxEi4AhTwuyHYZNAvL4EMUp7lzxxkKDFaJ1GY0ovrj0Kg==, } engines: { node: '>=18.0.0' } - '@smithy/config-resolver@4.2.1': + '@smithy/eventstream-serde-universal@4.2.3': resolution: { - integrity: sha512-FXil8q4QN7mgKwU2hCLm0ltab8NyY/1RiqEf25Jnf6WLS3wmb11zGAoLETqg1nur2Aoibun4w4MjeN9CMJ4G6A==, + integrity: sha512-QIvH/CKOk1BZPz/iwfgbh1SQD5Y0lpaw2kLA8zpLRRtYMPXeYUEWh+moTaJyqDaKlbrB174kB7FSRFiZ735tWw==, } engines: { node: '>=18.0.0' } - '@smithy/core@3.11.0': + '@smithy/fetch-http-handler@5.3.4': resolution: { - integrity: sha512-Abs5rdP1o8/OINtE49wwNeWuynCu0kme1r4RI3VXVrHr4odVDG7h7mTnw1WXXfN5Il+c25QOnrdL2y56USfxkA==, + integrity: sha512-bwigPylvivpRLCm+YK9I5wRIYjFESSVwl8JQ1vVx/XhCw0PtCi558NwTnT2DaVCl5pYlImGuQTSwMsZ+pIavRw==, } engines: { node: '>=18.0.0' } - '@smithy/credential-provider-imds@4.1.1': + '@smithy/hash-blob-browser@4.2.4': resolution: { - integrity: sha512-1WdBfM9DwA59pnpIizxnUvBf/de18p4GP+6zP2AqrlFzoW3ERpZaT4QueBR0nS9deDMaQRkBlngpVlnkuuTisQ==, + integrity: sha512-W7eIxD+rTNsLB/2ynjmbdeP7TgxRXprfvqQxKFEfy9HW2HeD7t+g+KCIrY0pIn/GFjA6/fIpH+JQnfg5TTk76Q==, } engines: { node: '>=18.0.0' } - '@smithy/fetch-http-handler@5.2.1': + '@smithy/hash-node@4.2.3': resolution: { - integrity: sha512-5/3wxKNtV3wO/hk1is+CZUhL8a1yy/U+9u9LKQ9kZTkMsHaQjJhc3stFfiujtMnkITjzWfndGA2f7g9Uh9vKng==, + integrity: sha512-6+NOdZDbfuU6s1ISp3UOk5Rg953RJ2aBLNLLBEcamLjHAg1Po9Ha7QIB5ZWhdRUVuOUrT8BVFR+O2KIPmw027g==, } engines: { node: '>=18.0.0' } - '@smithy/hash-node@4.1.1': + '@smithy/hash-stream-node@4.2.3': resolution: { - integrity: sha512-H9DIU9WBLhYrvPs9v4sYvnZ1PiAI0oc8CgNQUJ1rpN3pP7QADbTOUjchI2FB764Ub0DstH5xbTqcMJu1pnVqxA==, + integrity: sha512-EXMSa2yiStVII3x/+BIynyOAZlS7dGvI7RFrzXa/XssBgck/7TXJIvnjnCu328GY/VwHDC4VeDyP1S4rqwpYag==, } engines: { node: '>=18.0.0' } - '@smithy/invalid-dependency@4.1.1': + '@smithy/invalid-dependency@4.2.3': resolution: { - integrity: sha512-1AqLyFlfrrDkyES8uhINRlJXmHA2FkG+3DY8X+rmLSqmFwk3DJnvhyGzyByPyewh2jbmV+TYQBEfngQax8IFGg==, + integrity: sha512-Cc9W5DwDuebXEDMpOpl4iERo8I0KFjTnomK2RMdhhR87GwrSmUmwMxS4P5JdRf+LsjOdIqumcerwRgYMr/tZ9Q==, } engines: { node: '>=18.0.0' } @@ -4865,157 +5412,164 @@ packages: } engines: { node: '>=14.0.0' } - '@smithy/is-array-buffer@4.1.0': + '@smithy/is-array-buffer@4.2.0': + resolution: + { + integrity: sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==, + } + engines: { node: '>=18.0.0' } + + '@smithy/md5-js@4.2.3': resolution: { - integrity: sha512-ePTYUOV54wMogio+he4pBybe8fwg4sDvEVDBU8ZlHOZXbXK3/C0XfJgUCu6qAZcawv05ZhZzODGUerFBPsPUDQ==, + integrity: sha512-5+4bUEJQi/NRgzdA5SVXvAwyvEnD0ZAiKzV3yLO6dN5BG8ScKBweZ8mxXXUtdxq+Dx5k6EshKk0XJ7vgvIPSnA==, } engines: { node: '>=18.0.0' } - '@smithy/middleware-compression@4.2.1': + '@smithy/middleware-compression@4.3.5': resolution: { - integrity: sha512-nOr4Ozs/zfuMCu1076DYrobBTwiRc+++iYpXGS7qrKQTlwi8niwazYocIl3njXuRKPzND2gU2MkpXrwYIzoI2A==, + integrity: sha512-tktNZRLE8xJAZO+VP9zj4ix+M+Um+Qs+geJJwaEdTrPHBnoZjp8BQY1/jKDce7DQuN87G26f9KciujpTcuCinw==, } engines: { node: '>=18.0.0' } - '@smithy/middleware-content-length@4.1.1': + '@smithy/middleware-content-length@4.2.3': resolution: { - integrity: sha512-9wlfBBgTsRvC2JxLJxv4xDGNBrZuio3AgSl0lSFX7fneW2cGskXTYpFxCdRYD2+5yzmsiTuaAJD1Wp7gWt9y9w==, + integrity: sha512-/atXLsT88GwKtfp5Jr0Ks1CSa4+lB+IgRnkNrrYP0h1wL4swHNb0YONEvTceNKNdZGJsye+W2HH8W7olbcPUeA==, } engines: { node: '>=18.0.0' } - '@smithy/middleware-endpoint@4.2.1': + '@smithy/middleware-endpoint@4.3.5': resolution: { - integrity: sha512-fUTMmQvQQZakXOuKizfu7fBLDpwvWZjfH6zUK2OLsoNZRZGbNUdNSdLJHpwk1vS208jtDjpUIskh+JoA8zMzZg==, + integrity: sha512-SIzKVTvEudFWJbxAaq7f2GvP3jh2FHDpIFI6/VAf4FOWGFZy0vnYMPSRj8PGYI8Hjt29mvmwSRgKuO3bK4ixDw==, } engines: { node: '>=18.0.0' } - '@smithy/middleware-retry@4.2.1': + '@smithy/middleware-retry@4.4.5': resolution: { - integrity: sha512-JzfvjwSJXWRl7LkLgIRTUTd2Wj639yr3sQGpViGNEOjtb0AkAuYqRAHs+jSOI/LPC0ZTjmFVVtfrCICMuebexw==, + integrity: sha512-DCaXbQqcZ4tONMvvdz+zccDE21sLcbwWoNqzPLFlZaxt1lDtOE2tlVpRSwcTOJrjJSUThdgEYn7HrX5oLGlK9A==, } engines: { node: '>=18.0.0' } - '@smithy/middleware-serde@4.1.1': + '@smithy/middleware-serde@4.2.3': resolution: { - integrity: sha512-lh48uQdbCoj619kRouev5XbWhCwRKLmphAif16c4J6JgJ4uXjub1PI6RL38d3BLliUvSso6klyB/LTNpWSNIyg==, + integrity: sha512-8g4NuUINpYccxiCXM5s1/V+uLtts8NcX4+sPEbvYQDZk4XoJfDpq5y2FQxfmUL89syoldpzNzA0R9nhzdtdKnQ==, } engines: { node: '>=18.0.0' } - '@smithy/middleware-stack@4.1.1': + '@smithy/middleware-stack@4.2.3': resolution: { - integrity: sha512-ygRnniqNcDhHzs6QAPIdia26M7e7z9gpkIMUe/pK0RsrQ7i5MblwxY8078/QCnGq6AmlUUWgljK2HlelsKIb/A==, + integrity: sha512-iGuOJkH71faPNgOj/gWuEGS6xvQashpLwWB1HjHq1lNNiVfbiJLpZVbhddPuDbx9l4Cgl0vPLq5ltRfSaHfspA==, } engines: { node: '>=18.0.0' } - '@smithy/node-config-provider@4.2.1': + '@smithy/node-config-provider@4.3.3': resolution: { - integrity: sha512-AIA0BJZq2h295J5NeCTKhg1WwtdTA/GqBCaVjk30bDgMHwniUETyh5cP9IiE9VrId7Kt8hS7zvREVMTv1VfA6g==, + integrity: sha512-NzI1eBpBSViOav8NVy1fqOlSfkLgkUjUTlohUSgAEhHaFWA3XJiLditvavIP7OpvTjDp5u2LhtlBhkBlEisMwA==, } engines: { node: '>=18.0.0' } - '@smithy/node-http-handler@4.2.1': + '@smithy/node-http-handler@4.4.3': resolution: { - integrity: sha512-REyybygHlxo3TJICPF89N2pMQSf+p+tBJqpVe1+77Cfi9HBPReNjTgtZ1Vg73exq24vkqJskKDpfF74reXjxfw==, + integrity: sha512-MAwltrDB0lZB/H6/2M5PIsISSwdI5yIh6DaBB9r0Flo9nx3y0dzl/qTMJPd7tJvPdsx6Ks/cwVzheGNYzXyNbQ==, } engines: { node: '>=18.0.0' } - '@smithy/property-provider@4.1.1': + '@smithy/property-provider@4.2.3': resolution: { - integrity: sha512-gm3ZS7DHxUbzC2wr8MUCsAabyiXY0gaj3ROWnhSx/9sPMc6eYLMM4rX81w1zsMaObj2Lq3PZtNCC1J6lpEY7zg==, + integrity: sha512-+1EZ+Y+njiefCohjlhyOcy1UNYjT+1PwGFHCxA/gYctjg3DQWAU19WigOXAco/Ql8hZokNehpzLd0/+3uCreqQ==, } engines: { node: '>=18.0.0' } - '@smithy/protocol-http@5.2.1': + '@smithy/protocol-http@5.3.3': resolution: { - integrity: sha512-T8SlkLYCwfT/6m33SIU/JOVGNwoelkrvGjFKDSDtVvAXj/9gOT78JVJEas5a+ETjOu4SVvpCstKgd0PxSu/aHw==, + integrity: sha512-Mn7f/1aN2/jecywDcRDvWWWJF4uwg/A0XjFMJtj72DsgHTByfjRltSqcT9NyE9RTdBSN6X1RSXrhn/YWQl8xlw==, } engines: { node: '>=18.0.0' } - '@smithy/querystring-builder@4.1.1': + '@smithy/querystring-builder@4.2.3': resolution: { - integrity: sha512-J9b55bfimP4z/Jg1gNo+AT84hr90p716/nvxDkPGCD4W70MPms0h8KF50RDRgBGZeL83/u59DWNqJv6tEP/DHA==, + integrity: sha512-LOVCGCmwMahYUM/P0YnU/AlDQFjcu+gWbFJooC417QRB/lDJlWSn8qmPSDp+s4YVAHOgtgbNG4sR+SxF/VOcJQ==, } engines: { node: '>=18.0.0' } - '@smithy/querystring-parser@4.1.1': + '@smithy/querystring-parser@4.2.3': resolution: { - integrity: sha512-63TEp92YFz0oQ7Pj9IuI3IgnprP92LrZtRAkE3c6wLWJxfy/yOPRt39IOKerVr0JS770olzl0kGafXlAXZ1vng==, + integrity: sha512-cYlSNHcTAX/wc1rpblli3aUlLMGgKZ/Oqn8hhjFASXMCXjIqeuQBei0cnq2JR8t4RtU9FpG6uyl6PxyArTiwKA==, } engines: { node: '>=18.0.0' } - '@smithy/service-error-classification@4.1.1': + '@smithy/service-error-classification@4.2.3': resolution: { - integrity: sha512-Iam75b/JNXyDE41UvrlM6n8DNOa/r1ylFyvgruTUx7h2Uk7vDNV9AAwP1vfL1fOL8ls0xArwEGVcGZVd7IO/Cw==, + integrity: sha512-NkxsAxFWwsPsQiwFG2MzJ/T7uIR6AQNh1SzcxSUnmmIqIQMlLRQDKhc17M7IYjiuBXhrQRjQTo3CxX+DobS93g==, } engines: { node: '>=18.0.0' } - '@smithy/shared-ini-file-loader@4.1.1': + '@smithy/shared-ini-file-loader@4.3.3': resolution: { - integrity: sha512-YkpikhIqGc4sfXeIbzSj10t2bJI/sSoP5qxLue6zG+tEE3ngOBSm8sO3+djacYvS/R5DfpxN/L9CyZsvwjWOAQ==, + integrity: sha512-9f9Ixej0hFhroOK2TxZfUUDR13WVa8tQzhSzPDgXe5jGL3KmaM9s8XN7RQwqtEypI82q9KHnKS71CJ+q/1xLtQ==, } engines: { node: '>=18.0.0' } - '@smithy/signature-v4@5.2.1': + '@smithy/signature-v4@5.3.3': resolution: { - integrity: sha512-M9rZhWQLjlQVCCR37cSjHfhriGRN+FQ8UfgrYNufv66TJgk+acaggShl3KS5U/ssxivvZLlnj7QH2CUOKlxPyA==, + integrity: sha512-CmSlUy+eEYbIEYN5N3vvQTRfqt0lJlQkaQUIf+oizu7BbDut0pozfDjBGecfcfWf7c62Yis4JIEgqQ/TCfodaA==, } engines: { node: '>=18.0.0' } - '@smithy/smithy-client@4.6.1': + '@smithy/smithy-client@4.9.1': resolution: { - integrity: sha512-WolVLDb9UTPMEPPOncrCt6JmAMCSC/V2y5gst2STWJ5r7+8iNac+EFYQnmvDCYMfOLcilOSEpm5yXZXwbLak1Q==, + integrity: sha512-Ngb95ryR5A9xqvQFT5mAmYkCwbXvoLavLFwmi7zVg/IowFPCfiqRfkOKnbc/ZRL8ZKJ4f+Tp6kSu6wjDQb8L/g==, } engines: { node: '>=18.0.0' } - '@smithy/types@4.5.0': + '@smithy/types@4.8.0': resolution: { - integrity: sha512-RkUpIOsVlAwUIZXO1dsz8Zm+N72LClFfsNqf173catVlvRZiwPy0x2u0JLEA4byreOPKDZPGjmPDylMoP8ZJRg==, + integrity: sha512-QpELEHLO8SsQVtqP+MkEgCYTFW0pleGozfs3cZ183ZBj9z3VC1CX1/wtFMK64p+5bhtZo41SeLK1rBRtd25nHQ==, } engines: { node: '>=18.0.0' } - '@smithy/url-parser@4.1.1': + '@smithy/url-parser@4.2.3': resolution: { - integrity: sha512-bx32FUpkhcaKlEoOMbScvc93isaSiRM75pQ5IgIBaMkT7qMlIibpPRONyx/0CvrXHzJLpOn/u6YiDX2hcvs7Dg==, + integrity: sha512-I066AigYvY3d9VlU3zG9XzZg1yT10aNqvCaBTw9EPgu5GrsEl1aUkcMvhkIXascYH1A8W0LQo3B1Kr1cJNcQEw==, } engines: { node: '>=18.0.0' } - '@smithy/util-base64@4.1.0': + '@smithy/util-base64@4.3.0': resolution: { - integrity: sha512-RUGd4wNb8GeW7xk+AY5ghGnIwM96V0l2uzvs/uVHf+tIuVX2WSvynk5CxNoBCsM2rQRSZElAo9rt3G5mJ/gktQ==, + integrity: sha512-GkXZ59JfyxsIwNTWFnjmFEI8kZpRNIBfxKjv09+nkAWPt/4aGaEWMM04m4sxgNVWkbt2MdSvE3KF/PfX4nFedQ==, } engines: { node: '>=18.0.0' } - '@smithy/util-body-length-browser@4.1.0': + '@smithy/util-body-length-browser@4.2.0': resolution: { - integrity: sha512-V2E2Iez+bo6bUMOTENPr6eEmepdY8Hbs+Uc1vkDKgKNA/brTJqOW/ai3JO1BGj9GbCeLqw90pbbH7HFQyFotGQ==, + integrity: sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==, } engines: { node: '>=18.0.0' } - '@smithy/util-body-length-node@4.1.0': + '@smithy/util-body-length-node@4.2.1': resolution: { - integrity: sha512-BOI5dYjheZdgR9XiEM3HJcEMCXSoqbzu7CzIgYrx0UtmvtC3tC2iDGpJLsSRFffUpy8ymsg2ARMP5fR8mtuUQQ==, + integrity: sha512-h53dz/pISVrVrfxV1iqXlx5pRg3V2YWFcSQyPyXZRrZoZj4R4DeWRDo1a7dd3CPTcFi3kE+98tuNyD2axyZReA==, } engines: { node: '>=18.0.0' } @@ -5026,73 +5580,73 @@ packages: } engines: { node: '>=14.0.0' } - '@smithy/util-buffer-from@4.1.0': + '@smithy/util-buffer-from@4.2.0': resolution: { - integrity: sha512-N6yXcjfe/E+xKEccWEKzK6M+crMrlwaCepKja0pNnlSkm6SjAeLKKA++er5Ba0I17gvKfN/ThV+ZOx/CntKTVw==, + integrity: sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==, } engines: { node: '>=18.0.0' } - '@smithy/util-config-provider@4.1.0': + '@smithy/util-config-provider@4.2.0': resolution: { - integrity: sha512-swXz2vMjrP1ZusZWVTB/ai5gK+J8U0BWvP10v9fpcFvg+Xi/87LHvHfst2IgCs1i0v4qFZfGwCmeD/KNCdJZbQ==, + integrity: sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==, } engines: { node: '>=18.0.0' } - '@smithy/util-defaults-mode-browser@4.1.1': + '@smithy/util-defaults-mode-browser@4.3.4': resolution: { - integrity: sha512-hA1AKIHFUMa9Tl6q6y8p0pJ9aWHCCG8s57flmIyLE0W7HcJeYrYtnqXDcGnftvXEhdQnSexyegXnzzTGk8bKLA==, + integrity: sha512-qI5PJSW52rnutos8Bln8nwQZRpyoSRN6k2ajyoUHNMUzmWqHnOJCnDELJuV6m5PML0VkHI+XcXzdB+6awiqYUw==, } engines: { node: '>=18.0.0' } - '@smithy/util-defaults-mode-node@4.1.1': + '@smithy/util-defaults-mode-node@4.2.6': resolution: { - integrity: sha512-RGSpmoBrA+5D2WjwtK7tto6Pc2wO9KSXKLpLONhFZ8VyuCbqlLdiDAfuDTNY9AJe4JoE+Cx806cpTQQoQ71zPQ==, + integrity: sha512-c6M/ceBTm31YdcFpgfgQAJaw3KbaLuRKnAz91iMWFLSrgxRpYm03c3bu5cpYojNMfkV9arCUelelKA7XQT36SQ==, } engines: { node: '>=18.0.0' } - '@smithy/util-endpoints@3.1.1': + '@smithy/util-endpoints@3.2.3': resolution: { - integrity: sha512-qB4R9kO0SetA11Rzu6MVGFIaGYX3p6SGGGfWwsKnC6nXIf0n/0AKVwRTsYsz9ToN8CeNNtNgQRwKFBndGJZdyw==, + integrity: sha512-aCfxUOVv0CzBIkU10TubdgKSx5uRvzH064kaiPEWfNIvKOtNpu642P4FP1hgOFkjQIkDObrfIDnKMKkeyrejvQ==, } engines: { node: '>=18.0.0' } - '@smithy/util-hex-encoding@4.1.0': + '@smithy/util-hex-encoding@4.2.0': resolution: { - integrity: sha512-1LcueNN5GYC4tr8mo14yVYbh/Ur8jHhWOxniZXii+1+ePiIbsLZ5fEI0QQGtbRRP5mOhmooos+rLmVASGGoq5w==, + integrity: sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==, } engines: { node: '>=18.0.0' } - '@smithy/util-middleware@4.1.1': + '@smithy/util-middleware@4.2.3': resolution: { - integrity: sha512-CGmZ72mL29VMfESz7S6dekqzCh8ZISj3B+w0g1hZFXaOjGTVaSqfAEFAq8EGp8fUL+Q2l8aqNmt8U1tglTikeg==, + integrity: sha512-v5ObKlSe8PWUHCqEiX2fy1gNv6goiw6E5I/PN2aXg3Fb/hse0xeaAnSpXDiWl7x6LamVKq7senB+m5LOYHUAHw==, } engines: { node: '>=18.0.0' } - '@smithy/util-retry@4.1.1': + '@smithy/util-retry@4.2.3': resolution: { - integrity: sha512-jGeybqEZ/LIordPLMh5bnmnoIgsqnp4IEimmUp5c5voZ8yx+5kAlN5+juyr7p+f7AtZTgvhmInQk4Q0UVbrZ0Q==, + integrity: sha512-lLPWnakjC0q9z+OtiXk+9RPQiYPNAovt2IXD3CP4LkOnd9NpUsxOjMx1SnoUVB7Orb7fZp67cQMtTBKMFDvOGg==, } engines: { node: '>=18.0.0' } - '@smithy/util-stream@4.3.1': + '@smithy/util-stream@4.5.4': resolution: { - integrity: sha512-khKkW/Jqkgh6caxMWbMuox9+YfGlsk9OnHOYCGVEdYQb/XVzcORXHLYUubHmmda0pubEDncofUrPNniS9d+uAA==, + integrity: sha512-+qDxSkiErejw1BAIXUFBSfM5xh3arbz1MmxlbMCKanDDZtVEQ7PSKW9FQS0Vud1eI/kYn0oCTVKyNzRlq+9MUw==, } engines: { node: '>=18.0.0' } - '@smithy/util-uri-escape@4.1.0': + '@smithy/util-uri-escape@4.2.0': resolution: { - integrity: sha512-b0EFQkq35K5NHUYxU72JuoheM6+pytEVUGlTwiFxWFpmddA+Bpz3LgsPRIpBk8lnPE47yT7AF2Egc3jVnKLuPg==, + integrity: sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==, } engines: { node: '>=18.0.0' } @@ -5103,17 +5657,24 @@ packages: } engines: { node: '>=14.0.0' } - '@smithy/util-utf8@4.1.0': + '@smithy/util-utf8@4.2.0': resolution: { - integrity: sha512-mEu1/UIXAdNYuBcyEPbjScKi/+MQVXNIuY/7Cm5XLIWe319kDrT5SizBE95jqtmEXoDbGoZxKLCMttdZdqTZKQ==, + integrity: sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==, } engines: { node: '>=18.0.0' } - '@smithy/util-waiter@4.1.1': + '@smithy/util-waiter@4.2.3': resolution: { - integrity: sha512-PJBmyayrlfxM7nbqjomF4YcT1sApQwZio0NHSsT0EzhJqljRmvhzqZua43TyEs80nJk2Cn2FGPg/N8phH6KeCQ==, + integrity: sha512-5+nU///E5sAdD7t3hs4uwvCTWQtTR8JwKwOCSJtBRx0bY1isDo1QwH87vRK86vlFLBTISqoDA2V6xvP6nF1isQ==, + } + engines: { node: '>=18.0.0' } + + '@smithy/uuid@1.1.0': + resolution: + { + integrity: sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==, } engines: { node: '>=18.0.0' } @@ -5199,16 +5760,16 @@ packages: zod: optional: true - '@tanstack/query-core@5.87.4': + '@tanstack/query-core@5.90.5': resolution: { - integrity: sha512-uNsg6zMxraEPDVO2Bn+F3/ctHi+Zsk+MMpcN8h6P7ozqD088F6mFY5TfGM7zuyIrL7HKpDyu6QHfLWiDxh3cuw==, + integrity: sha512-wLamYp7FaDq6ZnNehypKI5fNvxHPfTYylE0m/ZpuuzJfJqhR5Pxg9gvGBHZx4n7J+V5Rg5mZxHHTlv25Zt5u+w==, } - '@tanstack/react-query@5.87.4': + '@tanstack/react-query@5.90.5': resolution: { - integrity: sha512-T5GT/1ZaNsUXf5I3RhcYuT17I4CPlbZgyLxc/ZGv7ciS6esytlbjb3DgUFO6c8JWYMDpdjSWInyGZUErgzqhcA==, + integrity: sha512-pN+8UWpxZkEJ/Rnnj2v2Sxpx1WFlaa9L6a4UO89p6tTQbeo+m0MS8oYDjbggrR8QcTyjKoYWKS3xJQGr3ExT8Q==, } peerDependencies: react: ^18 || ^19 @@ -5244,6 +5805,12 @@ packages: integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==, } + '@tybys/wasm-util@0.10.1': + resolution: + { + integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==, + } + '@tybys/wasm-util@0.9.0': resolution: { @@ -5332,10 +5899,10 @@ packages: integrity: sha512-trOc4AAUThEz9hapPtSd7wf5tiQKvTtu5b371UxXdTuqzIh0ArcRspRP0i0Viu+LXstIQ1z96t1nsPxT9ol01g==, } - '@types/express-serve-static-core@5.0.7': + '@types/express-serve-static-core@5.1.0': resolution: { - integrity: sha512-R+33OsgWw7rOhD1emjU7dzCDHucJrgJXMA5PYCzJxVil0dsyx5iBEPHqpPfiKNJQb7lZ1vxwoLR4Z87bBUpeGQ==, + integrity: sha512-jnHMsrd0Mwa9Cf4IdOzbz543y4XJepXrbia2T4b6+spXC2We3t1y6K44D3mR8XMFSXMCf3/l7rCgddfx7UNVBA==, } '@types/express@5.0.3': @@ -5398,6 +5965,12 @@ packages: integrity: sha512-23iPJADSmicDVrWk+HT58LMJtzLAnB2AgIzplQuq/bSrGaxCrlvRFjGbXmamnnk/mAmCdLStiGqggu28ocUyiw==, } + '@types/jest@30.0.0': + resolution: + { + integrity: sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==, + } + '@types/jsdom@20.0.1': resolution: { @@ -5476,12 +6049,6 @@ packages: integrity: sha512-cD2uPTDnQQCVpmRefonO98/PPijuOnnEy5oytWJFPY1N9aJCz2wJ5kSGWO+zJoed2cY2JxQh6yBuUq4vIn61hw==, } - '@types/node@20.19.13': - resolution: - { - integrity: sha512-yCAeZl7a0DxgNVteXFHt9+uyFbqXGy/ShC4BlcHkoE0AfGXYv/BUiplV72DjMYXHDBXFjhvr6DD1NiRVfB4j8g==, - } - '@types/node@22.7.5': resolution: { @@ -5518,22 +6085,16 @@ packages: integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==, } - '@types/react@19.1.13': - resolution: - { - integrity: sha512-hHkbU/eoO3EG5/MZkuFSKmYqPbSVk5byPFa3e7y/8TybHiLMACgI8seVYlicwk7H5K/rI2px9xrQp/C+AUDTiQ==, - } - '@types/responselike@1.0.3': resolution: { integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==, } - '@types/secp256k1@4.0.6': + '@types/secp256k1@4.0.7': resolution: { - integrity: sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==, + integrity: sha512-Rcvjl6vARGAKRO6jHeKMatGrvOMGrR/AR11N1x2LqintPCyDZ7NBhrh238Z2VZc7aM7KIwnFpFQ7fnfK4H/9Qw==, } '@types/semver@7.7.1': @@ -5548,10 +6109,16 @@ packages: integrity: sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==, } - '@types/serve-static@1.15.8': + '@types/send@1.2.0': + resolution: + { + integrity: sha512-zBF6vZJn1IaMpg3xUF25VK3gd3l8zwE0ZLRX7dsQyQi+jp4E8mMDJNGDYnYse+bQhYwWERTxVwHpi3dMOq7RKQ==, + } + + '@types/serve-static@1.15.9': resolution: { - integrity: sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==, + integrity: sha512-dOTIuqpWLyl3BBXU3maNQsS4A3zuuoYRNIvYSxxhebPfXg2mzWQEPne/nlJ37yOse6uGgR386uTpdsx4D0QZWA==, } '@types/stack-utils@2.0.3': @@ -5590,12 +6157,6 @@ packages: integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==, } - '@types/uuid@9.0.8': - resolution: - { - integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==, - } - '@types/ws@7.4.7': resolution: { @@ -5647,10 +6208,10 @@ packages: typescript: optional: true - '@typescript-eslint/project-service@8.43.0': + '@typescript-eslint/project-service@8.46.2': resolution: { - integrity: sha512-htB/+D/BIGoNTQYffZw4uM4NzzuolCoaA/BusuSIcC8YjmBYQioew5VUZAYdAETPjeed0hqCaW7EHg+Robq8uw==, + integrity: sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: @@ -5663,17 +6224,17 @@ packages: } engines: { node: ^16.0.0 || >=18.0.0 } - '@typescript-eslint/scope-manager@8.43.0': + '@typescript-eslint/scope-manager@8.46.2': resolution: { - integrity: sha512-daSWlQ87ZhsjrbMLvpuuMAt3y4ba57AuvadcR7f3nl8eS3BjRc8L9VLxFLk92RL5xdXOg6IQ+qKjjqNEimGuAg==, + integrity: sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - '@typescript-eslint/tsconfig-utils@8.43.0': + '@typescript-eslint/tsconfig-utils@8.46.2': resolution: { - integrity: sha512-ALC2prjZcj2YqqL5X/bwWQmHA2em6/94GcbB/KKu5SX3EBDOsqztmmX1kMkvAJHzxk7TazKzJfFiEIagNV3qEA==, + integrity: sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: @@ -5692,23 +6253,16 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@8.43.0': + '@typescript-eslint/type-utils@8.46.2': resolution: { - integrity: sha512-qaH1uLBpBuBBuRf8c1mLJ6swOfzCXryhKND04Igr4pckzSEW9JX5Aw9AgW00kwfjWJF0kk0ps9ExKTfvXfw4Qg==, + integrity: sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@5.62.0': - resolution: - { - integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - '@typescript-eslint/types@6.21.0': resolution: { @@ -5716,25 +6270,13 @@ packages: } engines: { node: ^16.0.0 || >=18.0.0 } - '@typescript-eslint/types@8.43.0': + '@typescript-eslint/types@8.46.2': resolution: { - integrity: sha512-vQ2FZaxJpydjSZJKiSW/LJsabFFvV7KgLC5DiLhkBcykhQj8iK9BOaDmQt74nnKdLvceM5xmhaTF+pLekrxEkw==, + integrity: sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } - '@typescript-eslint/typescript-estree@5.62.0': - resolution: - { - integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/typescript-estree@6.21.0': resolution: { @@ -5747,10 +6289,10 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.43.0': + '@typescript-eslint/typescript-estree@8.46.2': resolution: { - integrity: sha512-7Vv6zlAhPb+cvEpP06WXXy/ZByph9iL6BQRBDj4kmBsW98AqEeQHlj/13X+sZOrKSo9/rNKH4Ul4f6EICREFdw==, + integrity: sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: @@ -5765,23 +6307,16 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@8.43.0': + '@typescript-eslint/utils@8.46.2': resolution: { - integrity: sha512-S1/tEmkUeeswxd0GGcnwuVQPFWo8NzZTOMxCvw8BX7OMxnNae+i8Tm7REQen/SwUIPoPqfKn7EaZ+YLpiB3k9g==, + integrity: sha512-sExxzucx0Tud5tE0XqR0lT0psBQvEpnpiul9XbGUB1QwpWJJAps1O/Z7hJxLGiZLBKMCutjTzDgmd1muEhBnVg==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@5.62.0': - resolution: - { - integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } - '@typescript-eslint/visitor-keys@6.21.0': resolution: { @@ -5789,10 +6324,10 @@ packages: } engines: { node: ^16.0.0 || >=18.0.0 } - '@typescript-eslint/visitor-keys@8.43.0': + '@typescript-eslint/visitor-keys@8.46.2': resolution: { - integrity: sha512-T+S1KqRD4sg/bHfLwrpF/K3gQLBM1n7Rp7OjjikjTEssI2YJzQpi5WXoynOaQ93ERIuq3O8RBTOUYDKszUCEHw==, + integrity: sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==, } engines: { node: ^18.18.0 || ^20.9.0 || >=21.1.0 } @@ -5803,94 +6338,258 @@ packages: } engines: { node: '>=20.0.0' } - '@vue/compiler-core@3.5.21': + '@ungap/structured-clone@1.3.0': resolution: { - integrity: sha512-8i+LZ0vf6ZgII5Z9XmUvrCyEzocvWT+TeR2VBUVlzIH6Tyv57E20mPZ1bCS+tbejgUgmjrEh7q/0F0bibskAmw==, + integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==, } - '@vue/compiler-dom@3.5.21': + '@unrs/resolver-binding-android-arm-eabi@1.11.1': resolution: { - integrity: sha512-jNtbu/u97wiyEBJlJ9kmdw7tAr5Vy0Aj5CgQmo+6pxWNQhXZDPsRr1UWPN4v3Zf82s2H3kF51IbzZ4jMWAgPlQ==, + integrity: sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==, } + cpu: [arm] + os: [android] - '@vue/compiler-sfc@3.5.21': + '@unrs/resolver-binding-android-arm64@1.11.1': resolution: { - integrity: sha512-SXlyk6I5eUGBd2v8Ie7tF6ADHE9kCR6mBEuPyH1nUZ0h6Xx6nZI29i12sJKQmzbDyr2tUHMhhTt51Z6blbkTTQ==, + integrity: sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==, } + cpu: [arm64] + os: [android] - '@vue/compiler-ssr@3.5.21': + '@unrs/resolver-binding-darwin-arm64@1.11.1': resolution: { - integrity: sha512-vKQ5olH5edFZdf5ZrlEgSO1j1DMA4u23TVK5XR1uMhvwnYvVdDF0nHXJUblL/GvzlShQbjhZZ2uvYmDlAbgo9w==, + integrity: sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==, } + cpu: [arm64] + os: [darwin] - '@vue/shared@3.5.21': + '@unrs/resolver-binding-darwin-x64@1.11.1': resolution: { - integrity: sha512-+2k1EQpnYuVuu3N7atWyG3/xoFWIVJZq4Mz8XNOdScFI0etES75fbny/oU4lKWk/577P1zmg0ioYvpGEDZ3DLw==, + integrity: sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==, } + cpu: [x64] + os: [darwin] - '@wagmi/connectors@5.9.9': + '@unrs/resolver-binding-freebsd-x64@1.11.1': resolution: { - integrity: sha512-6+eqU7P2OtxU2PkIw6kHojfYYUJykYG2K5rSkzVh29RDCAjhJqGEZW5f1b8kV5rUBORip1NpST8QTBNi96JHGQ==, + integrity: sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==, } - peerDependencies: - '@wagmi/core': 2.20.3 - typescript: '>=5.0.4' - viem: 2.x - peerDependenciesMeta: - typescript: - optional: true + cpu: [x64] + os: [freebsd] - '@wagmi/core@2.20.3': + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': resolution: { - integrity: sha512-gsbuHnWxf0AYZISvR8LvF/vUCIq6/ZwT5f5/FKd6wLA7Wq05NihCvmQpIgrcVbpSJPL67wb6S8fXm3eJGJA1vQ==, + integrity: sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==, } - peerDependencies: - '@tanstack/query-core': '>=5.0.0' - typescript: '>=5.0.4' - viem: 2.x - peerDependenciesMeta: - '@tanstack/query-core': - optional: true - typescript: - optional: true + cpu: [arm] + os: [linux] - '@walletconnect/core@2.21.0': + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': resolution: { - integrity: sha512-o6R7Ua4myxR8aRUAJ1z3gT9nM+jd2B2mfamu6arzy1Cc6vi10fIwFWb6vg3bC8xJ6o9H3n/cN5TOW3aA9Y1XVw==, + integrity: sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==, } - engines: { node: '>=18' } + cpu: [arm] + os: [linux] - '@walletconnect/core@2.21.1': + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': resolution: { - integrity: sha512-Tp4MHJYcdWD846PH//2r+Mu4wz1/ZU/fr9av1UWFiaYQ2t2TPLDiZxjLw54AAEpMqlEHemwCgiRiAmjR1NDdTQ==, + integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==, } - engines: { node: '>=18' } + cpu: [arm64] + os: [linux] - '@walletconnect/environment@1.0.1': + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': resolution: { - integrity: sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==, + integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==, } + cpu: [arm64] + os: [linux] - '@walletconnect/ethereum-provider@2.21.1': + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': resolution: { - integrity: sha512-SSlIG6QEVxClgl1s0LMk4xr2wg4eT3Zn/Hb81IocyqNSGfXpjtawWxKxiC5/9Z95f1INyBD6MctJbL/R1oBwIw==, + integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==, } + cpu: [ppc64] + os: [linux] - '@walletconnect/events@1.0.1': + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': resolution: { - integrity: sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==, + integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==, + } + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + resolution: + { + integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==, + } + cpu: [riscv64] + os: [linux] + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + resolution: + { + integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==, + } + cpu: [s390x] + os: [linux] + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + resolution: + { + integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==, + } + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + resolution: + { + integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==, + } + cpu: [x64] + os: [linux] + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + resolution: + { + integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==, + } + engines: { node: '>=14.0.0' } + cpu: [wasm32] + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + resolution: + { + integrity: sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==, + } + cpu: [arm64] + os: [win32] + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + resolution: + { + integrity: sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==, + } + cpu: [ia32] + os: [win32] + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + resolution: + { + integrity: sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==, + } + cpu: [x64] + os: [win32] + + '@upstash/redis@1.35.6': + resolution: + { + integrity: sha512-aSEIGJgJ7XUfTYvhQcQbq835re7e/BXjs8Janq6Pvr6LlmTZnyqwT97RziZLO/8AVUL037RLXqqiQC6kCt+5pA==, + } + + '@vue/compiler-core@3.5.22': + resolution: + { + integrity: sha512-jQ0pFPmZwTEiRNSb+i9Ow/I/cHv2tXYqsnHKKyCQ08irI2kdF5qmYedmF8si8mA7zepUFmJ2hqzS8CQmNOWOkQ==, + } + + '@vue/compiler-dom@3.5.22': + resolution: + { + integrity: sha512-W8RknzUM1BLkypvdz10OVsGxnMAuSIZs9Wdx1vzA3mL5fNMN15rhrSCLiTm6blWeACwUwizzPVqGJgOGBEN/hA==, + } + + '@vue/compiler-sfc@3.5.22': + resolution: + { + integrity: sha512-tbTR1zKGce4Lj+JLzFXDq36K4vcSZbJ1RBu8FxcDv1IGRz//Dh2EBqksyGVypz3kXpshIfWKGOCcqpSbyGWRJQ==, + } + + '@vue/compiler-ssr@3.5.22': + resolution: + { + integrity: sha512-GdgyLvg4R+7T8Nk2Mlighx7XGxq/fJf9jaVofc3IL0EPesTE86cP/8DD1lT3h1JeZr2ySBvyqKQJgbS54IX1Ww==, + } + + '@vue/shared@3.5.22': + resolution: + { + integrity: sha512-F4yc6palwq3TT0u+FYf0Ns4Tfl9GRFURDN2gWG7L1ecIaS/4fCIuFOjMTnCyjsu/OK6vaDKLCrGAa+KvvH+h4w==, + } + + '@wagmi/connectors@6.1.0': + resolution: + { + integrity: sha512-MnpJHEABUIsajNxLc6br0LiqJvoFZbavQ6yG+mQb7Xlb3Hmm3IRjH5NU1g2zw5PCTRd3BFQLjwniLdwDnUPYNw==, + } + peerDependencies: + '@wagmi/core': 2.22.1 + typescript: '>=5.0.4' + viem: 2.x + peerDependenciesMeta: + typescript: + optional: true + + '@wagmi/core@2.22.1': + resolution: + { + integrity: sha512-cG/xwQWsBEcKgRTkQVhH29cbpbs/TdcUJVFXCyri3ZknxhMyGv0YEjTcrNpRgt2SaswL1KrvslSNYKKo+5YEAg==, + } + peerDependencies: + '@tanstack/query-core': '>=5.0.0' + typescript: '>=5.0.4' + viem: 2.x + peerDependenciesMeta: + '@tanstack/query-core': + optional: true + typescript: + optional: true + + '@walletconnect/core@2.21.0': + resolution: + { + integrity: sha512-o6R7Ua4myxR8aRUAJ1z3gT9nM+jd2B2mfamu6arzy1Cc6vi10fIwFWb6vg3bC8xJ6o9H3n/cN5TOW3aA9Y1XVw==, + } + engines: { node: '>=18' } + + '@walletconnect/core@2.21.1': + resolution: + { + integrity: sha512-Tp4MHJYcdWD846PH//2r+Mu4wz1/ZU/fr9av1UWFiaYQ2t2TPLDiZxjLw54AAEpMqlEHemwCgiRiAmjR1NDdTQ==, + } + engines: { node: '>=18' } + + '@walletconnect/environment@1.0.1': + resolution: + { + integrity: sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==, + } + + '@walletconnect/ethereum-provider@2.21.1': + resolution: + { + integrity: sha512-SSlIG6QEVxClgl1s0LMk4xr2wg4eT3Zn/Hb81IocyqNSGfXpjtawWxKxiC5/9Z95f1INyBD6MctJbL/R1oBwIw==, + } + + '@walletconnect/events@1.0.1': + resolution: + { + integrity: sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==, } '@walletconnect/heartbeat@1.2.2': @@ -6085,6 +6784,20 @@ packages: zod: optional: true + abitype@1.1.1: + resolution: + { + integrity: sha512-Loe5/6tAgsBukY95eGaPSDmQHIjRZYQq8PB1MpsNccDIK8WiV+Uw6WzaIXipvaxTEL2yEB0OpEaQv3gs8pkS9Q==, + } + peerDependencies: + typescript: '>=5.0.4' + zod: ^3.22.0 || ^4.0.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + accepts@2.0.0: resolution: { @@ -6390,58 +7103,58 @@ packages: integrity: sha512-g3+rxhxUen2H4+PPBOz6U6pkQ4esBuQPna1rPskgK1jamBdDZeoppyB2vPUM/l0ccunwRrq4r2rKgCvc2FnrFA==, } - artillery-engine-playwright@1.21.0: + artillery-engine-playwright@1.23.0: resolution: { - integrity: sha512-endMMPCYRL6W+JfOMQqIghJMNo5RXg2fVW7RKQW4pliuIn+iwfpOGnJEhyjCVqlZ/Q7JtFbn0Ropyp0anPU2lA==, + integrity: sha512-jSbnjEpgiyX8BCZW65aeiDmkaPEvv09NocnI931ejoxlABbwCdrb3oQw+5VQtafHR3fO3ElLRq2uyMRLgeWu4g==, } - artillery-plugin-apdex@1.15.0: + artillery-plugin-apdex@1.17.0: resolution: { - integrity: sha512-zTA7hQrRjax+3F8R3MwUCUt76XGLvn8kzzmPofAJsdwBbJH6PLlPbRfylsK46A9gk7ona4k07+8PAITOCIBcfA==, + integrity: sha512-5cIw9T3pcOyWlIaBK8rJqmqGfEUIqrkGQNiJD5+6ReiCpGH3mk0fkusAZMdoyhSob0Zf60F0kUgzJxcMq9PQfQ==, } - artillery-plugin-ensure@1.18.0: + artillery-plugin-ensure@1.20.0: resolution: { - integrity: sha512-H+H9sBS5akRLBLceHXKO1s4ffy/5g8c7uxE89y8f0il8hB1Cu6/3pbk889+zyXo8vnJfKAL1lPXN9rI6xoftlg==, + integrity: sha512-IYaxUjRpaPK1v4hkmyqV7oxEuUEuwEZJFL3p71zkv7H2P0cLgqBmUGVbCSvsMz0vlso0638ruJ8MZiAFaNFphQ==, } - artillery-plugin-expect@2.18.0: + artillery-plugin-expect@2.20.0: resolution: { - integrity: sha512-XUFPy3SJ1IwxgKkEXmuhXPg8TCXHjbm7cukQ5WZIdqe7dfiwipm0qmSS2fPOgHl9ywk7CcV2pbsJgaCNJbx2Xg==, + integrity: sha512-CuPCHeS62SQFDR28r9HptuaoevTU4K2ZtT+1QNcpIHY7daJfJk9Do5HfHuODe5j4YrpYA33dCVrk9NU1KWyWyw==, } - artillery-plugin-fake-data@1.15.0: + artillery-plugin-fake-data@1.17.0: resolution: { - integrity: sha512-7n48e3bF+Hl7UOy00eFOXPlm7Y+vmmpVY2Qmr5eF3lfgcrZl6cla1ibJW83xZm79Dq5gQ+aYXG2uhHcYDPyXWg==, + integrity: sha512-bQmPS9dxiFj/xclZPczBVDnc9HEpL/3ByFl6ppF46az89GaAIcI4jLx//V5E1qnbniUW9i00hEea8YYhRb3bdQ==, } - artillery-plugin-metrics-by-endpoint@1.18.0: + artillery-plugin-metrics-by-endpoint@1.20.0: resolution: { - integrity: sha512-DyXDYuhi6uj5p6/H8EeyJ570+HpE28T+IsVFniiGnP23NW0Hvy6y8of9ID8UtAjz6RTJHrYP9E2jIwZfXv51fQ==, + integrity: sha512-aoodF4VfD+QYeBsLpfW8/idnvuMJd1TtJmmcmV6xmIDgGI2TUoZTyXndAfB0bbZI5KIz9Id9NCSKwg51nkl0hA==, } - artillery-plugin-publish-metrics@2.29.0: + artillery-plugin-publish-metrics@2.31.0: resolution: { - integrity: sha512-cKuuQW+s/T6D0onzHIUCiQQ6uYlNtBwi01sJ5N/CUrclPEFVdscI0Y1YxbnJ4hNhCyQdVSVw/2ST8AY+EjT+/g==, + integrity: sha512-xhE2Z+u+0Fwu5QEfpSaXYxPnrZFtyYWZuT5wztVbl4ACL8W9PQxAWNbvIU60d9/dDbyi2M/Km9hVbMu0Z386cg==, } - artillery-plugin-slack@1.13.0: + artillery-plugin-slack@1.15.0: resolution: { - integrity: sha512-jmmCzBkEHAK4BxUxgvfbKPGfqRxEBv55PquJx9tA5q8EaFkn6SJDe8OCl6DDCv64dJV9on8MxCmEYpKl4+8FXg==, + integrity: sha512-OygdhUGG8ubavbHuVbDJLWjlyZAL352tdopuukosCKLUaxcI+pnzoFngA5XGQBwwf5wVNoEd0a8kpvH/0RTayA==, } - artillery@2.0.24: + artillery@2.0.26: resolution: { - integrity: sha512-KNFWiHRcWcIogag4oj2sf5KVlQx0E+nCcX16jCAsQIw7bnTHflk8WBNuuJ3S98ddAOg3CXvf/m7N3P3yzBSptQ==, + integrity: sha512-ncNz1pCcWyAF+GeOeCsUJxLIxeb+PNRsuQO0ublnukPVAgfE75foWtYDLi7ST/mWLQB5vLZrOUZh2cxM+g96Qg==, } engines: { node: '>= 22.13.0' } hasBin: true @@ -6477,12 +7190,12 @@ packages: integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==, } - ast-module-types@5.0.0: + ast-module-types@6.0.1: resolution: { - integrity: sha512-JvqziE0Wc0rXQfma0HZC/aY7URXHFuZV84fJRtP8u+lhp0JYCNd5wJzVXP45t0PH0Mej3ynlzvdyITYIu0G4LQ==, + integrity: sha512-WHw67kLXYbZuHTmcdbIrVArCq5wxo6NEuj3hiYAWr8mwJeC+C2mMCIBIWCiDoCye/OF/xelc+teJ1ERoWmnEIA==, } - engines: { node: '>=14' } + engines: { node: '>=18' } ast-types-flow@0.0.8: resolution: @@ -6535,24 +7248,17 @@ packages: } engines: { node: '>= 0.4' } - aws-sdk@2.1692.0: - resolution: - { - integrity: sha512-x511uiJ/57FIsbgUe5csJ13k3uzu25uWQE+XqfBis/sB0SFoiElJWXRkgEAUh0U6n40eT3ay5Ue4oPkRMu1LYw==, - } - engines: { node: '>= 10.0.0' } - - axe-core@4.10.3: + axe-core@4.11.0: resolution: { - integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==, + integrity: sha512-ilYanEU8vxxBexpJd8cWM4ElSQq4QctCLKih0TSfjIfCQTeyH/6zVrmIJfLPrKTKJRbiG+cfnZbQIjAlJmF1jQ==, } engines: { node: '>=4' } - axios@1.12.0: + axios@1.12.2: resolution: { - integrity: sha512-oXTDccv8PcfjZmPGlWsPSwtOJCZ/b6W5jAMCNcfwJbCzDckwG0jrYJFaWH1yvivfCXjVzV/SPDEhMB3Q+DSurg==, + integrity: sha512-vMJzPewAlRyOgxV2dU0Cuz2O8zzzx9VYtbJOaBgXFeLc4IV/Eg50n4LowmehOOR61S8ZMpc2K5Sa7g6A4jfkUw==, } axobject-query@3.1.1: @@ -6570,6 +7276,15 @@ packages: peerDependencies: '@babel/core': ^7.8.0 + babel-jest@30.2.0: + resolution: + { + integrity: sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + peerDependencies: + '@babel/core': ^7.11.0 || ^8.0.0-0 + babel-plugin-const-enum@1.2.0: resolution: { @@ -6585,6 +7300,13 @@ packages: } engines: { node: '>=8' } + babel-plugin-istanbul@7.0.1: + resolution: + { + integrity: sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==, + } + engines: { node: '>=12' } + babel-plugin-jest-hoist@29.6.3: resolution: { @@ -6592,6 +7314,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + babel-plugin-jest-hoist@30.2.0: + resolution: + { + integrity: sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + babel-plugin-macros@3.1.0: resolution: { @@ -6652,6 +7381,15 @@ packages: peerDependencies: '@babel/core': ^7.0.0 + babel-preset-jest@30.2.0: + resolution: + { + integrity: sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + peerDependencies: + '@babel/core': ^7.11.0 || ^8.0.0-beta.1 + balanced-match@1.0.2: resolution: { @@ -6683,6 +7421,13 @@ packages: } engines: { node: '>=6.0.0' } + baseline-browser-mapping@2.8.20: + resolution: + { + integrity: sha512-JMWsdF+O8Orq3EMukbUN1QfbLK9mX2CkUmQBcW2T0s8OmdAUL5LLM/6wFwSrqXzlXB13yhyK9gTKS1rIizOduQ==, + } + hasBin: true + bech32@1.1.4: resolution: { @@ -6839,12 +7584,12 @@ packages: } engines: { node: '>= 0.10' } - browserify-sign@4.2.3: + browserify-sign@4.2.5: resolution: { - integrity: sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==, + integrity: sha512-C2AUdAJg6rlM2W5QMp2Q4KGQMVBwR1lIimTsUnutJ8bMpW5B52pGpR2gEnNBNwijumDo5FojQ0L9JrXA8m4YEw==, } - engines: { node: '>= 0.12' } + engines: { node: '>= 0.10' } browserify-zlib@0.2.0: resolution: @@ -6852,10 +7597,10 @@ packages: integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==, } - browserslist@4.25.4: + browserslist@4.27.0: resolution: { - integrity: sha512-4jYpcjabC606xJ3kw2QwGEZKX0Aw7sgQdZCvIK9dhVSPh76BKo+C+btT1RRofH7B+8iNpEbgGNVWiLki5q93yg==, + integrity: sha512-AXVQwdhot1eqLihwasPElhX2tAZiBjWdJ9i/Zcj2S6QYIjkx62OKSfnobkriB81C3l4w0rVy3Nt4jaTBltYEpw==, } engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } hasBin: true @@ -6909,12 +7654,6 @@ packages: integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==, } - buffer@4.9.2: - resolution: - { - integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==, - } - buffer@5.7.1: resolution: { @@ -6940,10 +7679,10 @@ packages: integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==, } - bullmq@5.58.5: + bullmq@5.61.2: resolution: { - integrity: sha512-0A6Qjxdn8j7aOcxfRZY798vO/aMuwvoZwfE6a9EOXHb1pzpBVAogsc/OfRWeUf+5wMBoYB5nthstnJo/zrQOeQ==, + integrity: sha512-b39hbiq/xXpOTT/OfmKpQYD+4VE4+XUlvdZ6GjbGl9asmRk8cSvUaQWD18jVCn1I0SzIfbrgOf+RAkqjXDUhJg==, } bundle-name@4.1.0: @@ -7029,10 +7768,10 @@ packages: } engines: { node: '>=10' } - caniuse-lite@1.0.30001741: + caniuse-lite@1.0.30001751: resolution: { - integrity: sha512-QGUGitqsc8ARjLdgAfxETDhRbJ0REsP6O3I96TAth/mVjh2cYzN2u+3AzPP3aVSm2FehEItaJw1xd+IGBXWeSw==, + integrity: sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==, } canonicalize@2.1.0: @@ -7124,10 +7863,10 @@ packages: } engines: { node: '>=8' } - ci-info@4.3.0: + ci-info@4.3.1: resolution: { - integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==, + integrity: sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==, } engines: { node: '>=8' } @@ -7139,10 +7878,10 @@ packages: engines: { node: '>=4.0.0', npm: '>=3.0.0' } deprecated: This module has been superseded by the multiformats module - cipher-base@1.0.6: + cipher-base@1.0.7: resolution: { - integrity: sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==, + integrity: sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==, } engines: { node: '>= 0.10' } @@ -7152,6 +7891,12 @@ packages: integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==, } + cjs-module-lexer@2.1.0: + resolution: + { + integrity: sha512-UX0OwmYRYQQetfrLEZeewIFFI+wSTofC+pMBLNuH3RUuu/xzG1oz84UCEDOSoQlN3fZ4+AzmV50ZYvGqkMh9yA==, + } + clean-stack@3.0.1: resolution: { @@ -7247,10 +7992,10 @@ packages: } engines: { iojs: '>= 1.0.0', node: '>= 0.12.0' } - collect-v8-coverage@1.0.2: + collect-v8-coverage@1.0.3: resolution: { - integrity: sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==, + integrity: sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==, } color-convert@1.9.3: @@ -7312,19 +8057,19 @@ packages: } engines: { node: '>=8.0.0' } - commander@10.0.1: + commander@11.1.0: resolution: { - integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==, + integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==, } - engines: { node: '>=14' } + engines: { node: '>=16' } - commander@11.1.0: + commander@12.1.0: resolution: { - integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==, + integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==, } - engines: { node: '>=16' } + engines: { node: '>=18' } commander@2.20.3: resolution: @@ -7424,10 +8169,10 @@ packages: } engines: { node: '>= 0.6' } - core-js-compat@3.45.1: + core-js-compat@3.46.0: resolution: { - integrity: sha512-tqTt5T4PzsMIZ430XGviK4vzYSoeNJ6CXODi6c/voxOT6IZqBht5/EKaSNnYiEjjRYxjVz7DQIsOsY0XNi8PIA==, + integrity: sha512-p9hObIIEENxSV8xIu+V68JjSeARg6UVMG5mR+JEUguG3sI6MsiS1njz2jHmyJDvA+8jX/sytkBHup6kxhM9law==, } core-util-is@1.0.3: @@ -7471,12 +8216,6 @@ packages: integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==, } - create-hash@1.1.3: - resolution: - { - integrity: sha512-snRpch/kwQhcdlnZKYanNF1m0RDlrCdSKQaH87w1FCFPVPNCQ/Il9QJKAX2jVBZddRdaHBMC+zXa9Gw9tmkNUA==, - } - create-hash@1.2.0: resolution: { @@ -7542,6 +8281,13 @@ packages: } engines: { node: '>= 0.10' } + crypto-random-string@4.0.0: + resolution: + { + integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==, + } + engines: { node: '>=12' } + css-select@5.2.2: resolution: { @@ -7574,12 +8320,6 @@ packages: } engines: { node: '>=8' } - csstype@3.1.3: - resolution: - { - integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==, - } - csv-parse@4.16.3: resolution: { @@ -7686,6 +8426,18 @@ packages: supports-color: optional: true + debug@4.3.4: + resolution: + { + integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, + } + engines: { node: '>=6.0' } + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + debug@4.3.7: resolution: { @@ -7698,10 +8450,10 @@ packages: supports-color: optional: true - debug@4.4.1: + debug@4.4.3: resolution: { - integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==, + integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==, } engines: { node: '>=6.0' } peerDependencies: @@ -7885,12 +8637,12 @@ packages: } engines: { node: '>= 0.8' } - dependency-tree@10.0.9: + dependency-tree@11.2.0: resolution: { - integrity: sha512-dwc59FRIsht+HfnTVM0BCjJaEWxdq2YAvEDy4/Hn6CwS3CBWMtFnL3aZGAkQn3XCYxk/YcTDE4jX2Q7bFTwCjA==, + integrity: sha512-+C1H3mXhcvMCeu5i2Jpg9dc0N29TWTuT6vJD7mHLAfVmAbo9zW8NlkvQ1tYd3PDMab0IRQM0ccoyX68EZtx9xw==, } - engines: { node: '>=14' } + engines: { node: '>=18' } hasBin: true deps-regex@0.2.0: @@ -7939,10 +8691,10 @@ packages: } engines: { node: '>=8' } - detect-libc@2.0.4: + detect-libc@2.1.2: resolution: { - integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==, + integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==, } engines: { node: '>=8' } @@ -7961,20 +8713,20 @@ packages: engines: { node: '>= 4.0.0' } hasBin: true - detective-amd@5.0.2: + detective-amd@6.0.1: resolution: { - integrity: sha512-XFd/VEQ76HSpym80zxM68ieB77unNuoMwopU2TFT/ErUk5n4KvUTwW4beafAVUugrjV48l4BmmR0rh2MglBaiA==, + integrity: sha512-TtyZ3OhwUoEEIhTFoc1C9IyJIud3y+xYkSRjmvCt65+ycQuc3VcBrPRTMWoO/AnuCyOB8T5gky+xf7Igxtjd3g==, } - engines: { node: '>=14' } + engines: { node: '>=18' } hasBin: true - detective-cjs@5.0.1: + detective-cjs@6.0.1: resolution: { - integrity: sha512-6nTvAZtpomyz/2pmEmGX1sXNjaqgMplhQkskq2MLrar0ZAIkHMrDhLXkRiK2mvbu9wSWr0V5/IfiTrZqAQMrmQ==, + integrity: sha512-tLTQsWvd2WMcmn/60T2inEJNhJoi7a//PQ7DwRKEj1yEeiQs4mrONgsUtEJKnZmrGWBBmE0kJ1vqOG/NAxwaJw==, } - engines: { node: '>=14' } + engines: { node: '>=18' } detective-es6@4.0.1: resolution: @@ -7983,40 +8735,60 @@ packages: } engines: { node: '>=14' } - detective-postcss@6.1.3: + detective-es6@5.0.1: resolution: { - integrity: sha512-7BRVvE5pPEvk2ukUWNQ+H2XOq43xENWbH0LcdCE14mwgTBEAMoAx+Fc1rdp76SmyZ4Sp48HlV7VedUnP6GA1Tw==, + integrity: sha512-XusTPuewnSUdoxRSx8OOI6xIA/uld/wMQwYsouvFN2LAg7HgP06NF1lHRV3x6BZxyL2Kkoih4ewcq8hcbGtwew==, } - engines: { node: ^12.0.0 || ^14.0.0 || >=16.0.0 } + engines: { node: '>=18' } - detective-sass@5.0.3: + detective-postcss@7.0.1: resolution: { - integrity: sha512-YsYT2WuA8YIafp2RVF5CEfGhhyIVdPzlwQgxSjK+TUm3JoHP+Tcorbk3SfG0cNZ7D7+cYWa0ZBcvOaR0O8+LlA==, + integrity: sha512-bEOVpHU9picRZux5XnwGsmCN4+8oZo7vSW0O0/Enq/TO5R2pIAP2279NsszpJR7ocnQt4WXU0+nnh/0JuK4KHQ==, } - engines: { node: '>=14' } + engines: { node: ^14.0.0 || >=16.0.0 } + peerDependencies: + postcss: ^8.4.47 - detective-scss@4.0.3: + detective-sass@6.0.1: resolution: { - integrity: sha512-VYI6cHcD0fLokwqqPFFtDQhhSnlFWvU614J42eY6G0s8c+MBhi9QAWycLwIOGxlmD8I/XvGSOUV1kIDhJ70ZPg==, + integrity: sha512-jSGPO8QDy7K7pztUmGC6aiHkexBQT4GIH+mBAL9ZyBmnUIOFbkfZnO8wPRRJFP/QP83irObgsZHCoDHZ173tRw==, } - engines: { node: '>=14' } + engines: { node: '>=18' } - detective-stylus@4.0.0: + detective-scss@5.0.1: resolution: { - integrity: sha512-TfPotjhszKLgFBzBhTOxNHDsutIxx9GTWjrL5Wh7Qx/ydxKhwUrlSFeLIn+ZaHPF+h0siVBkAQSuy6CADyTxgQ==, + integrity: sha512-MAyPYRgS6DCiS6n6AoSBJXLGVOydsr9huwXORUlJ37K3YLyiN0vYHpzs3AdJOgHobBfispokoqrEon9rbmKacg==, } - engines: { node: '>=14' } + engines: { node: '>=18' } + + detective-stylus@5.0.1: + resolution: + { + integrity: sha512-Dgn0bUqdGbE3oZJ+WCKf8Dmu7VWLcmRJGc6RCzBgG31DLIyai9WAoEhYRgIHpt/BCRMrnXLbGWGPQuBUrnF0TA==, + } + engines: { node: '>=18' } + + detective-typescript@14.0.0: + resolution: + { + integrity: sha512-pgN43/80MmWVSEi5LUuiVvO/0a9ss5V7fwVfrJ4QzAQRd3cwqU1SfWGXJFcNKUqoD5cS+uIovhw5t/0rSeC5Mw==, + } + engines: { node: '>=18' } + peerDependencies: + typescript: ^5.4.4 - detective-typescript@11.2.0: + detective-vue2@2.2.0: resolution: { - integrity: sha512-ARFxjzizOhPqs1fYC/2NMC3N4jrQ6HvVflnXBTRqNEqJuXwyKLRr9CrJwkRcV/SnZt1sNXgsF6FPm0x57Tq0rw==, + integrity: sha512-sVg/t6O2z1zna8a/UIV6xL5KUa2cMTQbdTIIvqNM0NIPswp52fe43Nwmbahzj3ww4D844u/vC2PYfiGLvD3zFA==, } - engines: { node: ^14.14.0 || >=16.0.0 } + engines: { node: '>=18' } + peerDependencies: + typescript: ^5.4.4 diff-sequences@27.5.1: resolution: @@ -8133,10 +8905,10 @@ packages: } engines: { node: '>=12' } - dotenv@17.2.2: + dotenv@17.2.3: resolution: { - integrity: sha512-Sf2LSQP+bOlhKWWyhFsn0UsfdK/kCWRv1iuA2gXAwt3dyNabr6QSj00I2V10pidqz69soatm9ZwZvpQMTIOd5Q==, + integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==, } engines: { node: '>=12' } @@ -8171,10 +8943,10 @@ packages: integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==, } - eciesjs@0.4.15: + eciesjs@0.4.16: resolution: { - integrity: sha512-r6kEJXDKecVOCj2nLMuXK/FCPeurW33+3JRpfXVbjLja3XUYFfD9I/JBreH6sUyzcm3G/YQboBjMla6poKeSdA==, + integrity: sha512-dS5cbA9rA2VR4Ybuvhg6jvdmp46ubLn3E+px8cG/35aEDNclrqoCjg6mt0HYZ/M+OoESS3jSkCrqk1kWAEhWAw==, } engines: { bun: '>=1', deno: '>=2', node: '>=16' } @@ -8192,10 +8964,10 @@ packages: engines: { node: '>=0.10.0' } hasBin: true - electron-to-chromium@1.5.218: + electron-to-chromium@1.5.240: resolution: { - integrity: sha512-uwwdN0TUHs8u6iRgN8vKeWZMRll4gBkz+QMqdS7DDe49uiK68/UX92lFb61oiFPrpYZNeZIqa4bA7O6Aiasnzg==, + integrity: sha512-OBwbZjWgrCOH+g6uJsA2/7Twpas2OlepS9uvByJjR2datRDuKGYeD+nP8lBBks2qnB7bGJNHDUx7c/YLaT3QMQ==, } elliptic@6.5.4: @@ -8248,12 +9020,6 @@ packages: integrity: sha512-5gvq20T6vfpekVtqrYQsSCFZ1wEg5+wW0/QaZMWkFr6BqD3NfKs0rLCx4rrVlSWJeZb5NBJgVLswK/w2MWU+Gw==, } - encoding@0.1.13: - resolution: - { - integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==, - } - end-of-stream@1.4.5: resolution: { @@ -8320,10 +9086,10 @@ packages: integrity: sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==, } - error-ex@1.3.2: + error-ex@1.3.4: resolution: { - integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, + integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==, } es-abstract@1.24.0: @@ -8445,10 +9211,10 @@ packages: engines: { node: '>=12' } hasBin: true - esbuild@0.25.9: + esbuild@0.25.11: resolution: { - integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==, + integrity: sha512-KohQwyzrKTQmhXDW1PjCv3Tyspn9n5GcY2RTDqeORIdIJY8yKIF7sTSopFmn/wpMPW4rdPXI0UE5LJLuq3bx0Q==, } engines: { node: '>=18' } hasBin: true @@ -8745,13 +9511,6 @@ packages: integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, } - events@1.1.1: - resolution: - { - integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==, - } - engines: { node: '>=0.4.x' } - events@3.3.0: resolution: { @@ -8772,6 +9531,13 @@ packages: } engines: { node: '>=10' } + exit-x@0.2.2: + resolution: + { + integrity: sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==, + } + engines: { node: '>= 0.8.0' } + exit@0.1.2: resolution: { @@ -8793,6 +9559,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + expect@30.2.0: + resolution: + { + integrity: sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + express-rate-limit@8.1.0: resolution: { @@ -8904,6 +9677,13 @@ packages: } hasBin: true + fast-xml-parser@5.3.0: + resolution: + { + integrity: sha512-gkWGshjYcQCF+6qtlrqBqELqNqnt4CxruY6UVAWWnqb3DQ6qaNFEIKqzYep1XzHLM/QtrHVCxyPOtTk4LTQ7Aw==, + } + hasBin: true + fastest-levenshtein@1.0.16: resolution: { @@ -8974,12 +9754,12 @@ packages: integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==, } - filing-cabinet@4.2.0: + filing-cabinet@5.0.3: resolution: { - integrity: sha512-YZ21ryzRcyqxpyKggdYSoXx//d3sCJzM3lsYoaeg/FyXdADGJrUl+BW1KIglaVLJN5BBcMtWylkygY8zBp2MrQ==, + integrity: sha512-PlPcMwVWg60NQkhvfoxZs4wEHjhlOO/y7OAm4sKM60o1Z9nttRY4mcdQxp/iZ+kg/Vv6Hw1OAaTbYVM9DA9pYg==, } - engines: { node: '>=14' } + engines: { node: '>=18' } hasBin: true fill-range@7.1.1: @@ -9219,13 +9999,20 @@ packages: } engines: { node: '>=14' } - gcp-metadata@7.0.1: + gcp-metadata@8.1.1: resolution: { - integrity: sha512-UcO3kefx6dCcZkgcTGgVOTFb7b1LlQ02hY1omMjjrrBzkajRMCFgYOjs7J71WqnuG1k2b+9ppGL7FsOfhZMQKQ==, + integrity: sha512-dTCcAe9fRQf06ELwel6lWWFrEbstwjUBYEhr5VRGoC+iPDZQucHppCowaIp8b8v92tU1G4X4H3b/Y6zXZxkMsQ==, } engines: { node: '>=18' } + generator-function@2.0.1: + resolution: + { + integrity: sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==, + } + engines: { node: '>= 0.4' } + generic-pool@3.9.0: resolution: { @@ -9240,12 +10027,12 @@ packages: } engines: { node: '>=6.9.0' } - get-amd-module-type@5.0.1: + get-amd-module-type@6.0.1: resolution: { - integrity: sha512-jb65zDeHyDjFR1loOVk0HQGM5WNwoGB8aLWy3LKCieMKol0/ProHkhO2X1JxojuN10vbz1qNn09MJ7tNp7qMzw==, + integrity: sha512-MtjsmYiCXcYDDrGqtNbeIYdAl85n+5mSv2r3FbzER/YV3ZILw4HNNIw34HuV5pyl0jzs6GFYU1VHVEefhgcNHQ==, } - engines: { node: '>=14' } + engines: { node: '>=18' } get-caller-file@2.0.5: resolution: @@ -9308,10 +10095,10 @@ packages: integrity: sha512-LRn8Jlk+DwZE4GTlDbT3Hikd1wSHgLMme/+7ddlqKd7ldwR6LjJgTVWzBnR01wnYGe4KgrXjg287RaI22UHmAw==, } - get-tsconfig@4.10.1: + get-tsconfig@4.13.0: resolution: { - integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==, + integrity: sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==, } glob-parent@5.1.2: @@ -9328,6 +10115,13 @@ packages: } engines: { node: '>=10.13.0' } + glob@10.4.5: + resolution: + { + integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==, + } + hasBin: true + glob@11.0.3: resolution: { @@ -9400,10 +10194,10 @@ packages: engines: { node: '>=0.6.0' } hasBin: true - google-auth-library@10.4.0: + google-auth-library@10.4.2: resolution: { - integrity: sha512-CmIrSy1bqMQUsPmA9+hcSbAXL80cFhu40cGMUjCaLpNKVzzvi+0uAHq8GNZxkoGYIsTX4ZQ7e4aInAqWxgn4fg==, + integrity: sha512-EKiQasw6aEdxSovPEf1oBxCEvxjFamZ6MPaVOSPXZMnqKFLo+rrYjHyjKlFfZcXiKi9qAH6cutr5WRqqa1jKhg==, } engines: { node: '>=18' } @@ -9555,18 +10349,19 @@ packages: } engines: { node: '>= 0.4' } - hash-base@2.0.2: + hash-base@3.0.5: resolution: { - integrity: sha512-0TROgQ1/SxE6KmxWSvXHvRj90/Xo1JvZShofnYF+f6ZsGtR4eES7WfrQzPalmyagfKZCXpVnitiRebZulWsbiw==, + integrity: sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==, } + engines: { node: '>= 0.10' } - hash-base@3.0.5: + hash-base@3.1.2: resolution: { - integrity: sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==, + integrity: sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==, } - engines: { node: '>= 0.10' } + engines: { node: '>= 0.8' } hash.js@1.1.7: resolution: @@ -9607,6 +10402,13 @@ packages: } engines: { node: '>=0.10.0' } + hono@4.10.2: + resolution: + { + integrity: sha512-p6fyzl+mQo6uhESLxbF5WlBOAJMDh36PljwlKtP5V1v09NxlqGru3ShK+4wKhSuhuYf8qxMmrivHOa/M7q0sMg==, + } + engines: { node: '>=16.9.0' } + hosted-git-info@2.8.9: resolution: { @@ -9720,10 +10522,10 @@ packages: } engines: { node: '>= 14' } - human-id@4.1.1: + human-id@4.1.2: resolution: { - integrity: sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==, + integrity: sha512-v/J+4Z/1eIJovEBdlV5TYj1IR+ZiohcYGRY+qN/oC9dAfKzVT023N/Bgw37hrKCoVRBvk3bqyzpr2PP5YeTMSg==, } hasBin: true @@ -9773,12 +10575,6 @@ packages: } engines: { node: '>=4' } - ieee754@1.1.13: - resolution: - { - integrity: sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==, - } - ieee754@1.2.1: resolution: { @@ -9874,10 +10670,10 @@ packages: } engines: { node: '>= 0.4' } - ioredis@5.7.0: + ioredis@5.8.2: resolution: { - integrity: sha512-NUcA93i1lukyXU+riqEyPtSEkyFq8tX90uL659J+qpCZ3rEdViB/APC58oAhIh3+bJln2hzdlZbBZsGNrlsR8g==, + integrity: sha512-C6uC+kleiIMmjViJINWk80sOQw5lEzse1ZmvD+S/s8p8CWapftSaC+kocGTx6xrbrJ4WmYQGC08ffHLr6ToR6Q==, } engines: { node: '>=12.22.0' } @@ -10077,10 +10873,10 @@ packages: } engines: { node: '>=6' } - is-generator-function@1.1.0: + is-generator-function@1.1.2: resolution: { - integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==, + integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==, } engines: { node: '>= 0.4' } @@ -10195,12 +10991,6 @@ packages: } engines: { node: '>=0.10.0' } - is-relative-path@1.0.2: - resolution: - { - integrity: sha512-i1h+y50g+0hRbBD+dbnInl3JlJ702aar58snAeX+MxBAPvzXGej7sYoPMhlnykabt0ZzCJNBEyzMlekuQZN7fA==, - } - is-set@2.0.3: resolution: { @@ -10222,6 +11012,13 @@ packages: } engines: { node: '>=8' } + is-stream@3.0.0: + resolution: + { + integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + is-string@1.1.1: resolution: { @@ -10403,6 +11200,13 @@ packages: } engines: { node: '>=10' } + istanbul-lib-source-maps@5.0.6: + resolution: + { + integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==, + } + engines: { node: '>=10' } + istanbul-reports@3.2.0: resolution: { @@ -10469,6 +11273,12 @@ packages: } engines: { node: '>= 0.4' } + jackspeak@3.4.3: + resolution: + { + integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==, + } + jackspeak@4.1.1: resolution: { @@ -10499,6 +11309,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-changed-files@30.2.0: + resolution: + { + integrity: sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-circus@29.7.0: resolution: { @@ -10506,6 +11323,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-circus@30.2.0: + resolution: + { + integrity: sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-cli@29.7.0: resolution: { @@ -10519,6 +11343,19 @@ packages: node-notifier: optional: true + jest-cli@30.2.0: + resolution: + { + integrity: sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + jest-config@29.7.0: resolution: { @@ -10534,6 +11371,24 @@ packages: ts-node: optional: true + jest-config@30.2.0: + resolution: + { + integrity: sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + peerDependencies: + '@types/node': '*' + esbuild-register: '>=3.4.0' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + esbuild-register: + optional: true + ts-node: + optional: true + jest-diff@27.5.1: resolution: { @@ -10548,6 +11403,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-diff@30.2.0: + resolution: + { + integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-docblock@29.7.0: resolution: { @@ -10555,6 +11417,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-docblock@30.2.0: + resolution: + { + integrity: sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-each@29.7.0: resolution: { @@ -10562,6 +11431,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-each@30.2.0: + resolution: + { + integrity: sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-environment-jsdom@29.7.0: resolution: { @@ -10581,6 +11457,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-environment-node@30.2.0: + resolution: + { + integrity: sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-get-type@27.5.1: resolution: { @@ -10602,6 +11485,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-haste-map@30.2.0: + resolution: + { + integrity: sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-leak-detector@29.7.0: resolution: { @@ -10609,6 +11499,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-leak-detector@30.2.0: + resolution: + { + integrity: sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-matcher-utils@27.5.1: resolution: { @@ -10623,6 +11520,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-matcher-utils@30.2.0: + resolution: + { + integrity: sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-message-util@29.7.0: resolution: { @@ -10630,6 +11534,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-message-util@30.2.0: + resolution: + { + integrity: sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-mock@29.7.0: resolution: { @@ -10637,6 +11548,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-mock@30.2.0: + resolution: + { + integrity: sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-pnp-resolver@1.2.3: resolution: { @@ -10656,6 +11574,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-regex-util@30.0.1: + resolution: + { + integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-resolve-dependencies@29.7.0: resolution: { @@ -10663,6 +11588,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-resolve-dependencies@30.2.0: + resolution: + { + integrity: sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-resolve@29.7.0: resolution: { @@ -10670,6 +11602,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-resolve@30.2.0: + resolution: + { + integrity: sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-runner@29.7.0: resolution: { @@ -10677,6 +11616,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-runner@30.2.0: + resolution: + { + integrity: sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-runtime@29.7.0: resolution: { @@ -10684,6 +11630,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-runtime@30.2.0: + resolution: + { + integrity: sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-snapshot@29.7.0: resolution: { @@ -10691,6 +11644,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-snapshot@30.2.0: + resolution: + { + integrity: sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-util@29.7.0: resolution: { @@ -10698,6 +11658,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-util@30.2.0: + resolution: + { + integrity: sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-validate@29.7.0: resolution: { @@ -10705,6 +11672,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-validate@30.2.0: + resolution: + { + integrity: sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-watcher@29.7.0: resolution: { @@ -10712,6 +11686,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-watcher@30.2.0: + resolution: + { + integrity: sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest-worker@29.7.0: resolution: { @@ -10719,6 +11700,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + jest-worker@30.2.0: + resolution: + { + integrity: sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + jest@29.7.0: resolution: { @@ -10732,6 +11720,19 @@ packages: node-notifier: optional: true + jest@30.2.0: + resolution: + { + integrity: sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + hasBin: true + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + jmespath@0.16.0: resolution: { @@ -10815,14 +11816,6 @@ packages: } engines: { node: '>= 10.16.0' } - jsesc@3.0.2: - resolution: - { - integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==, - } - engines: { node: '>=6' } - hasBin: true - jsesc@3.1.0: resolution: { @@ -10907,10 +11900,10 @@ packages: engines: { node: '>=6' } hasBin: true - jsonc-eslint-parser@2.4.0: + jsonc-eslint-parser@2.4.1: resolution: { - integrity: sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==, + integrity: sha512-uuPNLJkKN8NXAlZlQ6kmUF9qO+T6Kyd7oV4+/7yy8Jz6+MZNyhPq8EdLpdfnPVzUC8qSf1b4j1azKaGnFsjmsw==, } engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } @@ -11256,6 +12249,13 @@ packages: integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==, } + loose-envify@1.4.0: + resolution: + { + integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, + } + hasBin: true + lowercase-keys@2.0.0: resolution: { @@ -11269,10 +12269,10 @@ packages: integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==, } - lru-cache@11.2.1: + lru-cache@11.2.2: resolution: { - integrity: sha512-r8LA6i4LP4EeWOhqBaZZjDWwehd1xUJPCJd9Sv300H0ZmcUER4+JPh7bqqZeqs1o5pgtgvXm+d9UGrB5zZGDiQ==, + integrity: sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==, } engines: { node: 20 || >=22 } @@ -11581,13 +12581,6 @@ packages: } engines: { node: '>=10.0' } - mkdirp@0.5.6: - resolution: - { - integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, - } - hasBin: true - mkdirp@1.0.4: resolution: { @@ -11596,20 +12589,20 @@ packages: engines: { node: '>=10' } hasBin: true - module-definition@5.0.1: + module-definition@6.0.1: resolution: { - integrity: sha512-kvw3B4G19IXk+BOXnYq/D/VeO9qfHaapMeuS7w7sNUqmGaA6hywdFHMi+VWeR9wUScXM7XjoryTffCZ5B0/8IA==, + integrity: sha512-FeVc50FTfVVQnolk/WQT8MX+2WVcDnTGiq6Wo+/+lJ2ET1bRVi3HG3YlJUfqagNMc/kUlFSoR96AJkxGpKz13g==, } - engines: { node: '>=14' } + engines: { node: '>=18' } hasBin: true - module-lookup-amd@8.0.5: + module-lookup-amd@9.0.5: resolution: { - integrity: sha512-vc3rYLjDo5Frjox8NZpiyLXsNWJ5BWshztc/5KSOMzpg9k5cHH652YsJ7VKKmtM4SvaxuE9RkrYGhiSjH3Ehow==, + integrity: sha512-Rs5FVpVcBYRHPLuhHOjgbRhosaQYLtEo3JIeDIbmNo7mSssi1CTzwMh8v36gAzpbzLGXI9wB/yHh+5+3fY1QVw==, } - engines: { node: '>=14' } + engines: { node: '>=18' } hasBin: true moment@2.30.1: @@ -11685,10 +12678,10 @@ packages: } engines: { node: '>=16.0.0', npm: '>=7.0.0' } - multiformats@13.4.0: + multiformats@13.4.1: resolution: { - integrity: sha512-Mkb/QcclrJxKC+vrcIFl297h52QcKh2Az/9A5vbWytbQt4225UWWWmIuSsKksdww9NkIeYcA7DkfftyLuC/JSg==, + integrity: sha512-VqO6OSvLrFVAYYjgsr8tyv62/rCQhPgsZUXLTqoFLSgdkgiUYKYeArbt1uWLlEpkjxQe+P0+sHlbPEte1Bi06Q==, } multiformats@9.9.0: @@ -11758,6 +12751,14 @@ packages: integrity: sha512-NpKXdP6ZLwZcODvDeyfoDBVoncbrgvC12txO3F4l9BxMycQjZD29AnasGAy7uSi3dcsTGnGn6/zzvQRwbjS4uw==, } + napi-postinstall@0.3.4: + resolution: + { + integrity: sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==, + } + engines: { node: ^12.20.0 || ^14.18.0 || >=16.0.0 } + hasBin: true + natural-compare@1.4.0: resolution: { @@ -11855,10 +12856,10 @@ packages: integrity: sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==, } - node-releases@2.0.20: + node-releases@2.0.26: resolution: { - integrity: sha512-7gK6zSXEH6neM212JgfYFXe+GmZQM+fia5SsusuBIUgnPheLFBmIPhtFoAQRj8/7wASYQnbDlHPVwY0BefoFgA==, + integrity: sha512-S2M9YimhSjBSvYnlr5/+umAnPHE++ODwt5e2Ij6FoX45HA/s4vHdkDx1eax2pAPeAOqu4s9b7ppahsyEFdVqQA==, } node-source-walk@6.0.2: @@ -11868,6 +12869,13 @@ packages: } engines: { node: '>=14' } + node-source-walk@7.0.1: + resolution: + { + integrity: sha512-3VW/8JpPqPvnJvseXowjZcirPisssnBuDikk6JIZ8jQzF7KJQX52iPFX4RYYxLycYH7IbMRSPUOga/esVjy5Yg==, + } + engines: { node: '>=18' } + nofilter@1.0.4: resolution: { @@ -12072,6 +13080,18 @@ packages: } engines: { node: '>=12' } + openapi-fetch@0.13.8: + resolution: + { + integrity: sha512-yJ4QKRyNxE44baQ9mY5+r/kAzZ8yXMemtNAOFwOzRXJscdjSxxzWSNlyBAr+o5JjkUw9Lc3W7OIoca0cY3PYnQ==, + } + + openapi-typescript-helpers@0.0.15: + resolution: + { + integrity: sha512-opyTPaunsklCBpTK8JGef6mfPhLSnyy5a0IN9vKtx3+4aExf+KxEqYwIy3hqkedXIB97u357uLMJsOnm3GVjsw==, + } + opentracing@0.14.7: resolution: { @@ -12141,6 +13161,17 @@ packages: typescript: optional: true + ox@0.9.12: + resolution: + { + integrity: sha512-esyA5WXfFhlxpgzoVIEreRaasqqv95sjFpk3L4Me4RWk8bgBDe+J4wO3RZ5ikYmJ2Bbjyv+jKgxyaOzX6JpHPA==, + } + peerDependencies: + typescript: '>=5.4.0' + peerDependenciesMeta: + typescript: + optional: true + ox@0.9.6: resolution: { @@ -12239,10 +13270,10 @@ packages: } engines: { node: '>=6' } - parse-asn1@5.1.7: + parse-asn1@5.1.9: resolution: { - integrity: sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==, + integrity: sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==, } engines: { node: '>= 0.10' } @@ -12318,6 +13349,13 @@ packages: integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, } + path-scurry@1.11.1: + resolution: + { + integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==, + } + engines: { node: '>=16 || 14 >=14.18' } + path-scurry@2.0.0: resolution: { @@ -12344,12 +13382,12 @@ packages: integrity: sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==, } - pbkdf2@3.1.3: + pbkdf2@3.1.5: resolution: { - integrity: sha512-wfRLBZ0feWRhCIkoMB6ete7czJcnNnqRpcoWQBLqatqXXmelSRqfdDK4F3u9T2s2cXas/hQJcryI/4lAL+XTlA==, + integrity: sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==, } - engines: { node: '>=0.12' } + engines: { node: '>= 0.10' } picocolors@1.1.1: resolution: @@ -12418,10 +13456,10 @@ packages: } engines: { node: '>6.0.0' } - pino-pretty@13.1.1: + pino-pretty@13.1.2: resolution: { - integrity: sha512-TNNEOg0eA0u+/WuqH0MH0Xui7uqVk9D74ESOpjtebSQYbNWJk/dIxCXIxFsNfeN53JmtWqYHP2OrIZjT/CBEnA==, + integrity: sha512-3cN0tCakkT4f3zo9RXDIhy6GTvtYD6bK4CRBLN9j3E/ePqN1tugAXD5rGVfoChW6s0hiek+eyYlLNqc/BG7vBQ==, } hasBin: true @@ -12444,10 +13482,10 @@ packages: } hasBin: true - pino@9.9.5: + pino@9.14.0: resolution: { - integrity: sha512-d1s98p8/4TfYhsJ09r/Azt30aYELRi6NNnZtEbqFw6BoGsdPVf5lKNK3kUwH8BmJJfpTLNuicjUQjaMbd93dVg==, + integrity: sha512-8OEwKp5juEvb/MjpIc4hjqfgCNysrS94RIOMXYvpYCdm/jglrKEiAYmiumbmGhCvs+IcInsphYDFwqrjr7398w==, } hasBin: true @@ -12465,18 +13503,18 @@ packages: } engines: { node: '>=8' } - playwright-core@1.54.2: + playwright-core@1.55.0: resolution: { - integrity: sha512-n5r4HFbMmWsB4twG7tJLDN9gmBUeSPcsBZiWSE4DnYz9mJMAFqr2ID7+eGC9kpEnxExJ1epttwR59LEWCk8mtA==, + integrity: sha512-GvZs4vU3U5ro2nZpeiwyb0zuFaqb9sUiAJuyrWpcGouD8y9/HLgGbNRjIph7zU9D3hnPaisMl9zG9CgFi/biIg==, } engines: { node: '>=18' } hasBin: true - playwright@1.54.2: + playwright@1.55.0: resolution: { - integrity: sha512-Hu/BMoA1NAdRUuulyvQC0pEqZ4vQbGfn8f7wPXcnqQmM+zct9UliKxsIkLNmz/ku7LElUNqmaiv1TG/aL5ACsw==, + integrity: sha512-sdCWStblvV1YU909Xqx0DhOjPZE4/5lJsIS84IfN9dAZfcl/CIZ5O8l3o0j7hPMjDvqoTF8ZUcc+i/GL5erstA==, } engines: { node: '>=18' } hasBin: true @@ -12501,6 +13539,29 @@ packages: } engines: { node: '>=12.0.0' } + porto@0.2.19: + resolution: + { + integrity: sha512-q1vEJgdtlEOf6byWgD31GHiMwpfLuxFSfx9f7Sw4RGdvpQs2ANBGfnzzardADZegr87ZXsebSp+3vaaznEUzPQ==, + } + hasBin: true + peerDependencies: + '@tanstack/react-query': '>=5.59.0' + '@wagmi/core': '>=2.16.3' + react: '>=18' + typescript: '>=5.4.0' + viem: '>=2.37.0' + wagmi: '>=2.0.0' + peerDependenciesMeta: + '@tanstack/react-query': + optional: true + react: + optional: true + typescript: + optional: true + wagmi: + optional: true + possible-typed-array-names@1.1.0: resolution: { @@ -12524,31 +13585,24 @@ packages: } engines: { node: ^10 || ^12 || >=14 } - posthog-node@4.18.0: - resolution: - { - integrity: sha512-XROs1h+DNatgKh/AlIlCtDxWzwrKdYDb2mOs58n4yN8BkGN9ewqeQwG5ApS4/IzwCb7HPttUkOVulkYatd2PIw==, - } - engines: { node: '>=15.0.0' } - preact@10.24.2: resolution: { integrity: sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q==, } - preact@10.27.1: + preact@10.27.2: resolution: { - integrity: sha512-V79raXEWch/rbqoNc7nT9E4ep7lu+mI3+sBmfRD4i1M73R3WLYcCtdI0ibxGVf4eQL8ZIz2nFacqEC+rmnOORQ==, + integrity: sha512-5SYSgFKSyhCbk6SrXyMpqjb5+MQBgfvEKE/OC+PujcY34sOpqtr+0AZQtPYx5IA6VxynQ7rUPCtKzyovpj9Bpg==, } - precinct@11.0.5: + precinct@12.2.0: resolution: { - integrity: sha512-oHSWLC8cL/0znFhvln26D14KfCQFFn4KOLSw6hmLhd+LQ2SKt9Ljm89but76Pc7flM9Ty1TnXyrA2u16MfRV3w==, + integrity: sha512-NFBMuwIfaJ4SocE9YXPU/n4AcNSoFMVFjP72nvl3cx69j/ke61/hPOWFREVxLkFhhEGnA8ZuVfTqJBa+PK3b5w==, } - engines: { node: ^14.14.0 || >=16.0.0 } + engines: { node: '>=18' } hasBin: true prelude-ls@1.2.1: @@ -12586,6 +13640,13 @@ packages: } engines: { node: ^14.15.0 || ^16.10.0 || >=18.0.0 } + pretty-format@30.2.0: + resolution: + { + integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==, + } + engines: { node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0 } + proc-log@3.0.0: resolution: { @@ -12639,10 +13700,10 @@ packages: } engines: { node: '>= 6' } - proto3-json-serializer@3.0.2: + proto3-json-serializer@3.0.3: resolution: { - integrity: sha512-AnMIfnoK2Ml3F/ZVl5PxcwIoefMxj4U/lomJ5/B2eIGdxw4UkbV1YamtsMQsEkZATdMCKMbnI1iG9RQaJbxBGw==, + integrity: sha512-iUi7jGLuECChuoUwtvf6eXBDcFXTHAt5GM6ckvtD3RqD+j2wW0GW6WndPOu9IWeUk7n933lzrskcNMHJy2tFSw==, } engines: { node: '>=18' } @@ -12704,12 +13765,6 @@ packages: } engines: { node: '>=6' } - punycode@1.3.2: - resolution: - { - integrity: sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==, - } - punycode@1.4.1: resolution: { @@ -12729,6 +13784,12 @@ packages: integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==, } + pure-rand@7.0.1: + resolution: + { + integrity: sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==, + } + pvtsutils@1.3.6: resolution: { @@ -12777,15 +13838,7 @@ packages: } engines: { node: '>=0.4.x' } - querystring@0.2.0: - resolution: - { - integrity: sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==, - } - engines: { node: '>=0.4.x' } - deprecated: The querystring API is considered Legacy. new code should use the URLSearchParams API instead. - - querystringify@2.2.0: + querystringify@2.2.0: resolution: { integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==, @@ -12881,10 +13934,10 @@ packages: integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==, } - react@19.1.1: + react@18.3.1: resolution: { - integrity: sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==, + integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==, } engines: { node: '>=0.10.0' } @@ -13017,10 +14070,10 @@ packages: } engines: { node: '>= 0.4' } - regexpu-core@6.3.1: + regexpu-core@6.4.0: resolution: { - integrity: sha512-DzcswPr252wEr7Qz8AyAVbfyBDKLoYp6eRA1We2Fa9qirRFSdtkP5sHr3yglDKy2BbA0fd2T+j/CUSKes3FeVQ==, + integrity: sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==, } engines: { node: '>=4' } @@ -13030,10 +14083,10 @@ packages: integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==, } - regjsparser@0.12.0: + regjsparser@0.13.0: resolution: { - integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==, + integrity: sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==, } hasBin: true @@ -13097,12 +14150,12 @@ packages: } engines: { node: '>=8' } - resolve-dependency-path@3.0.2: + resolve-dependency-path@4.0.1: resolution: { - integrity: sha512-Tz7zfjhLfsvR39ADOSk9us4421J/1ztVBo4rWUkF38hgHK5m0OCZ3NxFVpqHRkjctnwVa15igEUHFJp8MCS7vA==, + integrity: sha512-YQftIIC4vzO9UMhO/sCgXukNyiwVRCVaxiWskCBy7Zpqkplm8kTAISZ8O1MoKW1ca6xzgLUBjZTcDgypXvXxiQ==, } - engines: { node: '>=14' } + engines: { node: '>=18' } resolve-dir@1.0.1: resolution: @@ -13138,10 +14191,10 @@ packages: } engines: { node: '>=10' } - resolve@1.22.10: + resolve@1.22.11: resolution: { - integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==, + integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==, } engines: { node: '>= 0.4' } hasBin: true @@ -13173,22 +14226,6 @@ packages: } engines: { iojs: '>=1.0.0', node: '>=0.10.0' } - rimraf@2.6.3: - resolution: - { - integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==, - } - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - - rimraf@3.0.2: - resolution: - { - integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, - } - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rimraf@6.0.1: resolution: { @@ -13197,17 +14234,12 @@ packages: engines: { node: 20 || >=22 } hasBin: true - ripemd160@2.0.1: - resolution: - { - integrity: sha512-J7f4wutN8mdbV08MJnXibYpCOPHR+yzy+iQ/AsjMv2j8cLavQ8VGagDFUwwTAdF8FmRKVeNpbTTEwNHCW1g94w==, - } - - ripemd160@2.0.2: + ripemd160@2.0.3: resolution: { - integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==, + integrity: sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==, } + engines: { node: '>= 0.8' } router@2.2.0: resolution: @@ -13216,10 +14248,10 @@ packages: } engines: { node: '>= 18' } - rpc-websockets@9.1.3: + rpc-websockets@9.2.0: resolution: { - integrity: sha512-I+kNjW0udB4Fetr3vvtRuYZJS0PcSPyyvBcH5sDdoV8DFs5E4W2pTr7aiMlKfPxANTClP9RlqCPolj9dd5MsEA==, + integrity: sha512-DS/XHdPxplQTtNRKiBCRWGBJfjOk56W7fyFUpiYi9fSTWTzoEMbUkn3J4gB0IMniIEVeAGR1/rzFQogzD5MxvQ==, } run-applescript@7.1.0: @@ -13287,20 +14319,14 @@ packages: integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, } - sass-lookup@5.0.1: + sass-lookup@6.1.0: resolution: { - integrity: sha512-t0X5PaizPc2H4+rCwszAqHZRtr4bugo4pgiCvrBFvIX0XFxnr29g77LJcpyj9A0DcKf7gXMLcgvRjsonYI6x4g==, + integrity: sha512-Zx+lVyoWqXZxHuYWlTA17Z5sczJ6braNT2C7rmClw+c4E7r/n911Zwss3h1uHI9reR5AgHZyNHF7c2+VIp5AUA==, } - engines: { node: '>=14' } + engines: { node: '>=18' } hasBin: true - sax@1.2.1: - resolution: - { - integrity: sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==, - } - saxes@6.0.0: resolution: { @@ -13314,10 +14340,10 @@ packages: integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==, } - secure-json-parse@4.0.0: + secure-json-parse@4.1.0: resolution: { - integrity: sha512-dxtLJO6sc35jWidmLxo7ij+Eg48PM/kleBsxpC8QJE0qJICe+KawkDQmvCMZUr9u7WKVHgMW6vy3fQ7zMiFZMA==, + integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==, } seedrandom@3.0.5: @@ -13346,10 +14372,10 @@ packages: } hasBin: true - semver@7.7.2: + semver@7.7.3: resolution: { - integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==, + integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==, } engines: { node: '>=10' } hasBin: true @@ -13638,13 +14664,13 @@ packages: integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==, } - sqs-consumer@5.8.0: + sqs-consumer@6.0.2: resolution: { - integrity: sha512-pJReMEtDM9/xzQTffb7dxMD5MKagBfOW65m+ITsbpNk0oZmJ38tTC4LPmj0/7ZcKSOqi2LrpA1b0qGYOwxlHJg==, + integrity: sha512-Y8ztFBc1VPj4q72j9Uji4XR6n2O88n9X83aOUaCvz9zZqjpGJaI4PBHBPnE8RDBgD0EQR8Dh+sQwH/+8mzr+Bg==, } peerDependencies: - aws-sdk: ^2.1271.0 + '@aws-sdk/client-sqs': ^3.226.0 stable@0.1.8: resolution: @@ -13893,18 +14919,18 @@ packages: integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==, } - stylus-lookup@5.0.1: + stylus-lookup@6.1.0: resolution: { - integrity: sha512-tLtJEd5AGvnVy4f9UHQMw4bkJJtaAcmo54N+ovQBjDY3DuWyK9Eltxzr5+KG0q4ew6v2EHyuWWNnHeiw/Eo7rQ==, + integrity: sha512-5QSwgxAzXPMN+yugy61C60PhoANdItfdjSEZR8siFwz7yL9jTmV0UBKDCfn3K8GkGB4g0Y9py7vTCX8rFu4/pQ==, } - engines: { node: '>=14' } + engines: { node: '>=18' } hasBin: true - stytch@12.35.0: + stytch@12.42.1: resolution: { - integrity: sha512-Tp6j0rij5vMES1D8MXz7Y13JG9bGNMdtxSVYwtwvXQNqTsLE++qflshJRc+GgmHt2hdpyB1JmJqYgXdY3S4QWA==, + integrity: sha512-BdKiIfzOuGUAnEDMqp7QJBrZMnp+/CFFPrYQNadHEWrPY8+j1LE6j91pLjMgsTOn+skP5m62r4aMTxUOxVqMdg==, } engines: { node: '>= 18.0.0' } @@ -13956,6 +14982,13 @@ packages: integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==, } + synckit@0.11.11: + resolution: + { + integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==, + } + engines: { node: ^14.18.0 || >=16.0.0 } + table-layout@1.0.2: resolution: { @@ -13963,10 +14996,10 @@ packages: } engines: { node: '>=8.0.0' } - tapable@2.2.3: + tapable@2.3.0: resolution: { - integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==, + integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==, } engines: { node: '>=6' } @@ -13996,12 +15029,19 @@ packages: } engines: { node: '>=18' } - temp@0.9.4: + temp-dir@3.0.0: resolution: { - integrity: sha512-yYrrsWnrXMcdsnu/7YMYAofM1ktpL5By7vZhf15CrXijWWrEYZks5AXBudalfSWJLlnen/QUJUB5aoB0kqZUGA==, + integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==, } - engines: { node: '>=6.0.0' } + engines: { node: '>=14.16' } + + tempy@3.1.0: + resolution: + { + integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==, + } + engines: { node: '>=14.16' } term-size@2.2.1: resolution: @@ -14062,13 +15102,6 @@ packages: } hasBin: true - tmp@0.2.1: - resolution: - { - integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==, - } - engines: { node: '>=8.17.0' } - tmp@0.2.5: resolution: { @@ -14082,10 +15115,10 @@ packages: integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==, } - to-buffer@1.2.1: + to-buffer@1.2.2: resolution: { - integrity: sha512-tB82LpAIWjhLYbqjx3X4zEeHN6M8CiuOEy2JY8SEQVdYRe3CCHOFaqrBW1doLDrfpWhplcW7BL+bO3/6S3pcDQ==, + integrity: sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==, } engines: { node: '>= 0.4' } @@ -14252,19 +15285,10 @@ packages: integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==, } - tsutils@3.21.0: + tsx@4.20.6: resolution: { - integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==, - } - engines: { node: '>= 6' } - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - - tsx@4.20.5: - resolution: - { - integrity: sha512-+wKjMNU9w/EaQayHXb7WA7ZaHY6hN8WgfvHNQ3t1PnU91/7O8TcTnIhCDYTZwnt8JsO9IBqZ30Ln1r7pPF52Aw==, + integrity: sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg==, } engines: { node: '>=18.0.0' } hasBin: true @@ -14329,6 +15353,20 @@ packages: } engines: { node: '>=8' } + type-fest@1.4.0: + resolution: + { + integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==, + } + engines: { node: '>=10' } + + type-fest@2.19.0: + resolution: + { + integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==, + } + engines: { node: '>=12.20' } + type-is@2.0.1: resolution: { @@ -14373,10 +15411,10 @@ packages: } engines: { node: '>= 0.4' } - typedoc@0.28.12: + typedoc@0.28.14: resolution: { - integrity: sha512-H5ODu4f7N+myG4MfuSp2Vh6wV+WLoZaEYxKPt2y8hmmqNEMVrH69DAjjdmYivF4tP/C2jrIZCZhPalZlTU/ipA==, + integrity: sha512-ftJYPvpVfQvFzpkoSfHLkJybdA/geDJ8BGQt/ZnkkhnBYoYW6lBgPQXu6vqLxO4X75dA55hX8Af847H5KXlEFA==, } engines: { node: '>= 18', pnpm: '>= 10' } hasBin: true @@ -14472,16 +15510,10 @@ packages: integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==, } - undici-types@6.21.0: + undici@6.22.0: resolution: { - integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==, - } - - undici@6.21.3: - resolution: - { - integrity: sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==, + integrity: sha512-hU/10obOIu62MGYjdskASR3CUAiYaFTtC9Pa6vHyf//mAipSvSQg6od2CnJswq7fvzNS3zJhxoRkgNVaHurWKw==, } engines: { node: '>=18.17' } @@ -14513,13 +15545,20 @@ packages: } engines: { node: '>=4' } - unicode-property-aliases-ecmascript@2.1.0: + unicode-property-aliases-ecmascript@2.2.0: resolution: { - integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==, + integrity: sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==, } engines: { node: '>=4' } + unique-string@3.0.0: + resolution: + { + integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==, + } + engines: { node: '>=12' } + universalify@0.1.2: resolution: { @@ -14555,6 +15594,12 @@ packages: } engines: { node: '>= 0.8' } + unrs-resolver@1.11.1: + resolution: + { + integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==, + } + unstorage@1.17.1: resolution: { @@ -14620,10 +15665,10 @@ packages: uploadthing: optional: true - update-browserslist-db@1.1.3: + update-browserslist-db@1.1.4: resolution: { - integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==, + integrity: sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==, } hasBin: true peerDependencies: @@ -14641,12 +15686,6 @@ packages: integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==, } - url@0.10.3: - resolution: - { - integrity: sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==, - } - url@0.11.4: resolution: { @@ -14695,10 +15734,10 @@ packages: integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==, } - uuid@8.0.0: + uuid@11.1.0: resolution: { - integrity: sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw==, + integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==, } hasBin: true @@ -14793,10 +15832,10 @@ packages: typescript: optional: true - viem@2.38.3: + viem@2.38.4: resolution: { - integrity: sha512-By2TutLv07iNHHtWqHHzjGipevYsfGqT7KQbGEmqLco1qTJxKnvBbSviqiu6/v/9REV6Q/FpmIxf2Z7/l5AbcQ==, + integrity: sha512-qnyPNg6Lz1EEC86si/1dq7GlOyZVFHSgAW+p8Q31R5idnAYCOdTM2q5KLE4/ykMeMXzY0bnp5MWTtR/wjCtWmQ==, } peerDependencies: typescript: '>=5.0.4' @@ -14817,10 +15856,10 @@ packages: } engines: { node: '>=14' } - wagmi@2.16.9: + wagmi@2.18.2: resolution: { - integrity: sha512-5NbjvuNNhT0t0lQsDD5otQqZ5RZBM1UhInHoBq/Lpnr6xLLa8AWxYqHg5oZtGCdiUNltys11iBOS6z4mLepIqw==, + integrity: sha512-9jFip+0ZfjMBxT72m02MZD2+VmQQ/UmqZhHl+98N9HEqXLn765fIu45QPV85DAnQqIHD81gvY3vTvfWt16A5yQ==, } peerDependencies: '@tanstack/react-query': '>=5.0.0' @@ -15130,20 +16169,6 @@ packages: } engines: { node: '>=12' } - xml2js@0.6.2: - resolution: - { - integrity: sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==, - } - engines: { node: '>=4.0.0' } - - xmlbuilder@11.0.1: - resolution: - { - integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==, - } - engines: { node: '>=4.0' } - xmlchars@2.2.0: resolution: { @@ -15301,6 +16326,12 @@ packages: integrity: sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==, } + zod@4.1.12: + resolution: + { + integrity: sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==, + } + zustand@5.0.0: resolution: { @@ -15343,16 +16374,37 @@ packages: use-sync-external-store: optional: true + zustand@5.0.8: + resolution: + { + integrity: sha512-gyPKpIaxY9XcO2vSMrLbiER7QMAMGOQZVRdJ6Zi782jkbzZygq5GI9nG8g+sMgitRtndwaBSl7uiqC49o1SSiw==, + } + engines: { node: '>=12.20.0' } + peerDependencies: + '@types/react': '>=18.0.0' + immer: '>=9.0.6' + react: '>=18.0.0' + use-sync-external-store: '>=1.2.0' + peerDependenciesMeta: + '@types/react': + optional: true + immer: + optional: true + react: + optional: true + use-sync-external-store: + optional: true + snapshots: '@adraffy/ens-normalize@1.10.1': {} - '@adraffy/ens-normalize@1.11.0': {} + '@adraffy/ens-normalize@1.11.1': {} - '@artilleryio/int-commons@2.15.0': + '@artilleryio/int-commons@2.17.0': dependencies: async: 2.6.4 cheerio: 1.1.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) deep-for-each: 3.0.0 espree: 9.6.1 jsonpath-plus: 10.3.0 @@ -15361,9 +16413,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@artilleryio/int-core@2.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + '@artilleryio/int-core@2.21.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: - '@artilleryio/int-commons': 2.15.0 + '@artilleryio/int-commons': 2.17.0 '@artilleryio/sketches-js': 2.1.1 agentkeepalive: 4.6.0 arrivals: 2.1.2 @@ -15372,7 +16424,7 @@ snapshots: cheerio: 1.1.2 cookie-parser: 1.4.7 csv-parse: 4.16.3 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) decompress-response: 6.0.0 deep-for-each: 3.0.0 driftless: 2.0.3 @@ -15401,20 +16453,41 @@ snapshots: '@assemblyscript/loader@0.9.4': {} + '@aws-crypto/crc32@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.914.0 + tslib: 2.8.1 + + '@aws-crypto/crc32c@5.2.0': + dependencies: + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.914.0 + tslib: 2.8.1 + + '@aws-crypto/sha1-browser@5.2.0': + dependencies: + '@aws-crypto/supports-web-crypto': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-locate-window': 3.893.0 + '@smithy/util-utf8': 2.3.0 + tslib: 2.8.1 + '@aws-crypto/sha256-browser@5.2.0': dependencies: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.887.0 - '@aws-sdk/util-locate-window': 3.873.0 + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-locate-window': 3.893.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.887.0 + '@aws-sdk/types': 3.914.0 tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': @@ -15423,414 +16496,947 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.887.0 + '@aws-sdk/types': 3.914.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-cloudwatch@3.887.0': + '@aws-sdk/client-cloudwatch-logs@3.916.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.887.0 - '@aws-sdk/credential-provider-node': 3.887.0 - '@aws-sdk/middleware-host-header': 3.887.0 - '@aws-sdk/middleware-logger': 3.887.0 - '@aws-sdk/middleware-recursion-detection': 3.887.0 - '@aws-sdk/middleware-user-agent': 3.887.0 - '@aws-sdk/region-config-resolver': 3.887.0 - '@aws-sdk/types': 3.887.0 - '@aws-sdk/util-endpoints': 3.887.0 - '@aws-sdk/util-user-agent-browser': 3.887.0 - '@aws-sdk/util-user-agent-node': 3.887.0 - '@smithy/config-resolver': 4.2.1 - '@smithy/core': 3.11.0 - '@smithy/fetch-http-handler': 5.2.1 - '@smithy/hash-node': 4.1.1 - '@smithy/invalid-dependency': 4.1.1 - '@smithy/middleware-compression': 4.2.1 - '@smithy/middleware-content-length': 4.1.1 - '@smithy/middleware-endpoint': 4.2.1 - '@smithy/middleware-retry': 4.2.1 - '@smithy/middleware-serde': 4.1.1 - '@smithy/middleware-stack': 4.1.1 - '@smithy/node-config-provider': 4.2.1 - '@smithy/node-http-handler': 4.2.1 - '@smithy/protocol-http': 5.2.1 - '@smithy/smithy-client': 4.6.1 - '@smithy/types': 4.5.0 - '@smithy/url-parser': 4.1.1 - '@smithy/util-base64': 4.1.0 - '@smithy/util-body-length-browser': 4.1.0 - '@smithy/util-body-length-node': 4.1.0 - '@smithy/util-defaults-mode-browser': 4.1.1 - '@smithy/util-defaults-mode-node': 4.1.1 - '@smithy/util-endpoints': 3.1.1 - '@smithy/util-middleware': 4.1.1 - '@smithy/util-retry': 4.1.1 - '@smithy/util-utf8': 4.1.0 - '@smithy/util-waiter': 4.1.1 + '@aws-sdk/core': 3.916.0 + '@aws-sdk/credential-provider-node': 3.916.0 + '@aws-sdk/middleware-host-header': 3.914.0 + '@aws-sdk/middleware-logger': 3.914.0 + '@aws-sdk/middleware-recursion-detection': 3.914.0 + '@aws-sdk/middleware-user-agent': 3.916.0 + '@aws-sdk/region-config-resolver': 3.914.0 + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-endpoints': 3.916.0 + '@aws-sdk/util-user-agent-browser': 3.914.0 + '@aws-sdk/util-user-agent-node': 3.916.0 + '@smithy/config-resolver': 4.4.0 + '@smithy/core': 3.17.1 + '@smithy/eventstream-serde-browser': 4.2.3 + '@smithy/eventstream-serde-config-resolver': 4.3.3 + '@smithy/eventstream-serde-node': 4.2.3 + '@smithy/fetch-http-handler': 5.3.4 + '@smithy/hash-node': 4.2.3 + '@smithy/invalid-dependency': 4.2.3 + '@smithy/middleware-content-length': 4.2.3 + '@smithy/middleware-endpoint': 4.3.5 + '@smithy/middleware-retry': 4.4.5 + '@smithy/middleware-serde': 4.2.3 + '@smithy/middleware-stack': 4.2.3 + '@smithy/node-config-provider': 4.3.3 + '@smithy/node-http-handler': 4.4.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 + '@smithy/url-parser': 4.2.3 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.4 + '@smithy/util-defaults-mode-node': 4.2.6 + '@smithy/util-endpoints': 3.2.3 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-retry': 4.2.3 + '@smithy/util-utf8': 4.2.0 + '@smithy/uuid': 1.1.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-cognito-identity@3.887.0': + '@aws-sdk/client-cloudwatch@3.916.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.887.0 - '@aws-sdk/credential-provider-node': 3.887.0 - '@aws-sdk/middleware-host-header': 3.887.0 - '@aws-sdk/middleware-logger': 3.887.0 - '@aws-sdk/middleware-recursion-detection': 3.887.0 - '@aws-sdk/middleware-user-agent': 3.887.0 - '@aws-sdk/region-config-resolver': 3.887.0 - '@aws-sdk/types': 3.887.0 - '@aws-sdk/util-endpoints': 3.887.0 - '@aws-sdk/util-user-agent-browser': 3.887.0 - '@aws-sdk/util-user-agent-node': 3.887.0 - '@smithy/config-resolver': 4.2.1 - '@smithy/core': 3.11.0 - '@smithy/fetch-http-handler': 5.2.1 - '@smithy/hash-node': 4.1.1 - '@smithy/invalid-dependency': 4.1.1 - '@smithy/middleware-content-length': 4.1.1 - '@smithy/middleware-endpoint': 4.2.1 - '@smithy/middleware-retry': 4.2.1 - '@smithy/middleware-serde': 4.1.1 - '@smithy/middleware-stack': 4.1.1 - '@smithy/node-config-provider': 4.2.1 - '@smithy/node-http-handler': 4.2.1 - '@smithy/protocol-http': 5.2.1 - '@smithy/smithy-client': 4.6.1 - '@smithy/types': 4.5.0 - '@smithy/url-parser': 4.1.1 - '@smithy/util-base64': 4.1.0 - '@smithy/util-body-length-browser': 4.1.0 - '@smithy/util-body-length-node': 4.1.0 - '@smithy/util-defaults-mode-browser': 4.1.1 - '@smithy/util-defaults-mode-node': 4.1.1 - '@smithy/util-endpoints': 3.1.1 - '@smithy/util-middleware': 4.1.1 - '@smithy/util-retry': 4.1.1 - '@smithy/util-utf8': 4.1.0 + '@aws-sdk/core': 3.916.0 + '@aws-sdk/credential-provider-node': 3.916.0 + '@aws-sdk/middleware-host-header': 3.914.0 + '@aws-sdk/middleware-logger': 3.914.0 + '@aws-sdk/middleware-recursion-detection': 3.914.0 + '@aws-sdk/middleware-user-agent': 3.916.0 + '@aws-sdk/region-config-resolver': 3.914.0 + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-endpoints': 3.916.0 + '@aws-sdk/util-user-agent-browser': 3.914.0 + '@aws-sdk/util-user-agent-node': 3.916.0 + '@smithy/config-resolver': 4.4.0 + '@smithy/core': 3.17.1 + '@smithy/fetch-http-handler': 5.3.4 + '@smithy/hash-node': 4.2.3 + '@smithy/invalid-dependency': 4.2.3 + '@smithy/middleware-compression': 4.3.5 + '@smithy/middleware-content-length': 4.2.3 + '@smithy/middleware-endpoint': 4.3.5 + '@smithy/middleware-retry': 4.4.5 + '@smithy/middleware-serde': 4.2.3 + '@smithy/middleware-stack': 4.2.3 + '@smithy/node-config-provider': 4.3.3 + '@smithy/node-http-handler': 4.4.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 + '@smithy/url-parser': 4.2.3 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.4 + '@smithy/util-defaults-mode-node': 4.2.6 + '@smithy/util-endpoints': 3.2.3 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-retry': 4.2.3 + '@smithy/util-utf8': 4.2.0 + '@smithy/util-waiter': 4.2.3 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.887.0': + '@aws-sdk/client-cognito-identity@3.916.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.887.0 - '@aws-sdk/middleware-host-header': 3.887.0 - '@aws-sdk/middleware-logger': 3.887.0 - '@aws-sdk/middleware-recursion-detection': 3.887.0 - '@aws-sdk/middleware-user-agent': 3.887.0 - '@aws-sdk/region-config-resolver': 3.887.0 - '@aws-sdk/types': 3.887.0 - '@aws-sdk/util-endpoints': 3.887.0 - '@aws-sdk/util-user-agent-browser': 3.887.0 - '@aws-sdk/util-user-agent-node': 3.887.0 - '@smithy/config-resolver': 4.2.1 - '@smithy/core': 3.11.0 - '@smithy/fetch-http-handler': 5.2.1 - '@smithy/hash-node': 4.1.1 - '@smithy/invalid-dependency': 4.1.1 - '@smithy/middleware-content-length': 4.1.1 - '@smithy/middleware-endpoint': 4.2.1 - '@smithy/middleware-retry': 4.2.1 - '@smithy/middleware-serde': 4.1.1 - '@smithy/middleware-stack': 4.1.1 - '@smithy/node-config-provider': 4.2.1 - '@smithy/node-http-handler': 4.2.1 - '@smithy/protocol-http': 5.2.1 - '@smithy/smithy-client': 4.6.1 - '@smithy/types': 4.5.0 - '@smithy/url-parser': 4.1.1 - '@smithy/util-base64': 4.1.0 - '@smithy/util-body-length-browser': 4.1.0 - '@smithy/util-body-length-node': 4.1.0 - '@smithy/util-defaults-mode-browser': 4.1.1 - '@smithy/util-defaults-mode-node': 4.1.1 - '@smithy/util-endpoints': 3.1.1 - '@smithy/util-middleware': 4.1.1 - '@smithy/util-retry': 4.1.1 - '@smithy/util-utf8': 4.1.0 + '@aws-sdk/core': 3.916.0 + '@aws-sdk/credential-provider-node': 3.916.0 + '@aws-sdk/middleware-host-header': 3.914.0 + '@aws-sdk/middleware-logger': 3.914.0 + '@aws-sdk/middleware-recursion-detection': 3.914.0 + '@aws-sdk/middleware-user-agent': 3.916.0 + '@aws-sdk/region-config-resolver': 3.914.0 + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-endpoints': 3.916.0 + '@aws-sdk/util-user-agent-browser': 3.914.0 + '@aws-sdk/util-user-agent-node': 3.916.0 + '@smithy/config-resolver': 4.4.0 + '@smithy/core': 3.17.1 + '@smithy/fetch-http-handler': 5.3.4 + '@smithy/hash-node': 4.2.3 + '@smithy/invalid-dependency': 4.2.3 + '@smithy/middleware-content-length': 4.2.3 + '@smithy/middleware-endpoint': 4.3.5 + '@smithy/middleware-retry': 4.4.5 + '@smithy/middleware-serde': 4.2.3 + '@smithy/middleware-stack': 4.2.3 + '@smithy/node-config-provider': 4.3.3 + '@smithy/node-http-handler': 4.4.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 + '@smithy/url-parser': 4.2.3 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.4 + '@smithy/util-defaults-mode-node': 4.2.6 + '@smithy/util-endpoints': 3.2.3 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-retry': 4.2.3 + '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.887.0': - dependencies: - '@aws-sdk/types': 3.887.0 - '@aws-sdk/xml-builder': 3.887.0 - '@smithy/core': 3.11.0 - '@smithy/node-config-provider': 4.2.1 - '@smithy/property-provider': 4.1.1 - '@smithy/protocol-http': 5.2.1 - '@smithy/signature-v4': 5.2.1 - '@smithy/smithy-client': 4.6.1 - '@smithy/types': 4.5.0 - '@smithy/util-base64': 4.1.0 - '@smithy/util-body-length-browser': 4.1.0 - '@smithy/util-middleware': 4.1.1 - '@smithy/util-utf8': 4.1.0 - fast-xml-parser: 5.2.5 + '@aws-sdk/client-ec2@3.916.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.916.0 + '@aws-sdk/credential-provider-node': 3.916.0 + '@aws-sdk/middleware-host-header': 3.914.0 + '@aws-sdk/middleware-logger': 3.914.0 + '@aws-sdk/middleware-recursion-detection': 3.914.0 + '@aws-sdk/middleware-sdk-ec2': 3.916.0 + '@aws-sdk/middleware-user-agent': 3.916.0 + '@aws-sdk/region-config-resolver': 3.914.0 + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-endpoints': 3.916.0 + '@aws-sdk/util-user-agent-browser': 3.914.0 + '@aws-sdk/util-user-agent-node': 3.916.0 + '@smithy/config-resolver': 4.4.0 + '@smithy/core': 3.17.1 + '@smithy/fetch-http-handler': 5.3.4 + '@smithy/hash-node': 4.2.3 + '@smithy/invalid-dependency': 4.2.3 + '@smithy/middleware-content-length': 4.2.3 + '@smithy/middleware-endpoint': 4.3.5 + '@smithy/middleware-retry': 4.4.5 + '@smithy/middleware-serde': 4.2.3 + '@smithy/middleware-stack': 4.2.3 + '@smithy/node-config-provider': 4.3.3 + '@smithy/node-http-handler': 4.4.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 + '@smithy/url-parser': 4.2.3 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.4 + '@smithy/util-defaults-mode-node': 4.2.6 + '@smithy/util-endpoints': 3.2.3 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-retry': 4.2.3 + '@smithy/util-utf8': 4.2.0 + '@smithy/util-waiter': 4.2.3 + '@smithy/uuid': 1.1.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-ecs@3.916.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.916.0 + '@aws-sdk/credential-provider-node': 3.916.0 + '@aws-sdk/middleware-host-header': 3.914.0 + '@aws-sdk/middleware-logger': 3.914.0 + '@aws-sdk/middleware-recursion-detection': 3.914.0 + '@aws-sdk/middleware-user-agent': 3.916.0 + '@aws-sdk/region-config-resolver': 3.914.0 + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-endpoints': 3.916.0 + '@aws-sdk/util-user-agent-browser': 3.914.0 + '@aws-sdk/util-user-agent-node': 3.916.0 + '@smithy/config-resolver': 4.4.0 + '@smithy/core': 3.17.1 + '@smithy/fetch-http-handler': 5.3.4 + '@smithy/hash-node': 4.2.3 + '@smithy/invalid-dependency': 4.2.3 + '@smithy/middleware-content-length': 4.2.3 + '@smithy/middleware-endpoint': 4.3.5 + '@smithy/middleware-retry': 4.4.5 + '@smithy/middleware-serde': 4.2.3 + '@smithy/middleware-stack': 4.2.3 + '@smithy/node-config-provider': 4.3.3 + '@smithy/node-http-handler': 4.4.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 + '@smithy/url-parser': 4.2.3 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.4 + '@smithy/util-defaults-mode-node': 4.2.6 + '@smithy/util-endpoints': 3.2.3 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-retry': 4.2.3 + '@smithy/util-utf8': 4.2.0 + '@smithy/util-waiter': 4.2.3 + '@smithy/uuid': 1.1.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-iam@3.916.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.916.0 + '@aws-sdk/credential-provider-node': 3.916.0 + '@aws-sdk/middleware-host-header': 3.914.0 + '@aws-sdk/middleware-logger': 3.914.0 + '@aws-sdk/middleware-recursion-detection': 3.914.0 + '@aws-sdk/middleware-user-agent': 3.916.0 + '@aws-sdk/region-config-resolver': 3.914.0 + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-endpoints': 3.916.0 + '@aws-sdk/util-user-agent-browser': 3.914.0 + '@aws-sdk/util-user-agent-node': 3.916.0 + '@smithy/config-resolver': 4.4.0 + '@smithy/core': 3.17.1 + '@smithy/fetch-http-handler': 5.3.4 + '@smithy/hash-node': 4.2.3 + '@smithy/invalid-dependency': 4.2.3 + '@smithy/middleware-content-length': 4.2.3 + '@smithy/middleware-endpoint': 4.3.5 + '@smithy/middleware-retry': 4.4.5 + '@smithy/middleware-serde': 4.2.3 + '@smithy/middleware-stack': 4.2.3 + '@smithy/node-config-provider': 4.3.3 + '@smithy/node-http-handler': 4.4.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 + '@smithy/url-parser': 4.2.3 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.4 + '@smithy/util-defaults-mode-node': 4.2.6 + '@smithy/util-endpoints': 3.2.3 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-retry': 4.2.3 + '@smithy/util-utf8': 4.2.0 + '@smithy/util-waiter': 4.2.3 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/client-lambda@3.916.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.916.0 + '@aws-sdk/credential-provider-node': 3.916.0 + '@aws-sdk/middleware-host-header': 3.914.0 + '@aws-sdk/middleware-logger': 3.914.0 + '@aws-sdk/middleware-recursion-detection': 3.914.0 + '@aws-sdk/middleware-user-agent': 3.916.0 + '@aws-sdk/region-config-resolver': 3.914.0 + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-endpoints': 3.916.0 + '@aws-sdk/util-user-agent-browser': 3.914.0 + '@aws-sdk/util-user-agent-node': 3.916.0 + '@smithy/config-resolver': 4.4.0 + '@smithy/core': 3.17.1 + '@smithy/eventstream-serde-browser': 4.2.3 + '@smithy/eventstream-serde-config-resolver': 4.3.3 + '@smithy/eventstream-serde-node': 4.2.3 + '@smithy/fetch-http-handler': 5.3.4 + '@smithy/hash-node': 4.2.3 + '@smithy/invalid-dependency': 4.2.3 + '@smithy/middleware-content-length': 4.2.3 + '@smithy/middleware-endpoint': 4.3.5 + '@smithy/middleware-retry': 4.4.5 + '@smithy/middleware-serde': 4.2.3 + '@smithy/middleware-stack': 4.2.3 + '@smithy/node-config-provider': 4.3.3 + '@smithy/node-http-handler': 4.4.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 + '@smithy/url-parser': 4.2.3 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.4 + '@smithy/util-defaults-mode-node': 4.2.6 + '@smithy/util-endpoints': 3.2.3 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-retry': 4.2.3 + '@smithy/util-stream': 4.5.4 + '@smithy/util-utf8': 4.2.0 + '@smithy/util-waiter': 4.2.3 tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@aws-sdk/credential-provider-cognito-identity@3.887.0': + '@aws-sdk/client-s3@3.916.0': dependencies: - '@aws-sdk/client-cognito-identity': 3.887.0 - '@aws-sdk/types': 3.887.0 - '@smithy/property-provider': 4.1.1 - '@smithy/types': 4.5.0 + '@aws-crypto/sha1-browser': 5.2.0 + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.916.0 + '@aws-sdk/credential-provider-node': 3.916.0 + '@aws-sdk/middleware-bucket-endpoint': 3.914.0 + '@aws-sdk/middleware-expect-continue': 3.916.0 + '@aws-sdk/middleware-flexible-checksums': 3.916.0 + '@aws-sdk/middleware-host-header': 3.914.0 + '@aws-sdk/middleware-location-constraint': 3.914.0 + '@aws-sdk/middleware-logger': 3.914.0 + '@aws-sdk/middleware-recursion-detection': 3.914.0 + '@aws-sdk/middleware-sdk-s3': 3.916.0 + '@aws-sdk/middleware-ssec': 3.914.0 + '@aws-sdk/middleware-user-agent': 3.916.0 + '@aws-sdk/region-config-resolver': 3.914.0 + '@aws-sdk/signature-v4-multi-region': 3.916.0 + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-endpoints': 3.916.0 + '@aws-sdk/util-user-agent-browser': 3.914.0 + '@aws-sdk/util-user-agent-node': 3.916.0 + '@aws-sdk/xml-builder': 3.914.0 + '@smithy/config-resolver': 4.4.0 + '@smithy/core': 3.17.1 + '@smithy/eventstream-serde-browser': 4.2.3 + '@smithy/eventstream-serde-config-resolver': 4.3.3 + '@smithy/eventstream-serde-node': 4.2.3 + '@smithy/fetch-http-handler': 5.3.4 + '@smithy/hash-blob-browser': 4.2.4 + '@smithy/hash-node': 4.2.3 + '@smithy/hash-stream-node': 4.2.3 + '@smithy/invalid-dependency': 4.2.3 + '@smithy/md5-js': 4.2.3 + '@smithy/middleware-content-length': 4.2.3 + '@smithy/middleware-endpoint': 4.3.5 + '@smithy/middleware-retry': 4.4.5 + '@smithy/middleware-serde': 4.2.3 + '@smithy/middleware-stack': 4.2.3 + '@smithy/node-config-provider': 4.3.3 + '@smithy/node-http-handler': 4.4.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 + '@smithy/url-parser': 4.2.3 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.4 + '@smithy/util-defaults-mode-node': 4.2.6 + '@smithy/util-endpoints': 3.2.3 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-retry': 4.2.3 + '@smithy/util-stream': 4.5.4 + '@smithy/util-utf8': 4.2.0 + '@smithy/util-waiter': 4.2.3 + '@smithy/uuid': 1.1.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-env@3.887.0': + '@aws-sdk/client-sqs@3.916.0': dependencies: - '@aws-sdk/core': 3.887.0 - '@aws-sdk/types': 3.887.0 - '@smithy/property-provider': 4.1.1 - '@smithy/types': 4.5.0 + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.916.0 + '@aws-sdk/credential-provider-node': 3.916.0 + '@aws-sdk/middleware-host-header': 3.914.0 + '@aws-sdk/middleware-logger': 3.914.0 + '@aws-sdk/middleware-recursion-detection': 3.914.0 + '@aws-sdk/middleware-sdk-sqs': 3.916.0 + '@aws-sdk/middleware-user-agent': 3.916.0 + '@aws-sdk/region-config-resolver': 3.914.0 + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-endpoints': 3.916.0 + '@aws-sdk/util-user-agent-browser': 3.914.0 + '@aws-sdk/util-user-agent-node': 3.916.0 + '@smithy/config-resolver': 4.4.0 + '@smithy/core': 3.17.1 + '@smithy/fetch-http-handler': 5.3.4 + '@smithy/hash-node': 4.2.3 + '@smithy/invalid-dependency': 4.2.3 + '@smithy/md5-js': 4.2.3 + '@smithy/middleware-content-length': 4.2.3 + '@smithy/middleware-endpoint': 4.3.5 + '@smithy/middleware-retry': 4.4.5 + '@smithy/middleware-serde': 4.2.3 + '@smithy/middleware-stack': 4.2.3 + '@smithy/node-config-provider': 4.3.3 + '@smithy/node-http-handler': 4.4.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 + '@smithy/url-parser': 4.2.3 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.4 + '@smithy/util-defaults-mode-node': 4.2.6 + '@smithy/util-endpoints': 3.2.3 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-retry': 4.2.3 + '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@aws-sdk/credential-provider-http@3.887.0': - dependencies: - '@aws-sdk/core': 3.887.0 - '@aws-sdk/types': 3.887.0 - '@smithy/fetch-http-handler': 5.2.1 - '@smithy/node-http-handler': 4.2.1 - '@smithy/property-provider': 4.1.1 - '@smithy/protocol-http': 5.2.1 - '@smithy/smithy-client': 4.6.1 - '@smithy/types': 4.5.0 - '@smithy/util-stream': 4.3.1 + '@aws-sdk/client-ssm@3.916.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.916.0 + '@aws-sdk/credential-provider-node': 3.916.0 + '@aws-sdk/middleware-host-header': 3.914.0 + '@aws-sdk/middleware-logger': 3.914.0 + '@aws-sdk/middleware-recursion-detection': 3.914.0 + '@aws-sdk/middleware-user-agent': 3.916.0 + '@aws-sdk/region-config-resolver': 3.914.0 + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-endpoints': 3.916.0 + '@aws-sdk/util-user-agent-browser': 3.914.0 + '@aws-sdk/util-user-agent-node': 3.916.0 + '@smithy/config-resolver': 4.4.0 + '@smithy/core': 3.17.1 + '@smithy/fetch-http-handler': 5.3.4 + '@smithy/hash-node': 4.2.3 + '@smithy/invalid-dependency': 4.2.3 + '@smithy/middleware-content-length': 4.2.3 + '@smithy/middleware-endpoint': 4.3.5 + '@smithy/middleware-retry': 4.4.5 + '@smithy/middleware-serde': 4.2.3 + '@smithy/middleware-stack': 4.2.3 + '@smithy/node-config-provider': 4.3.3 + '@smithy/node-http-handler': 4.4.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 + '@smithy/url-parser': 4.2.3 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.4 + '@smithy/util-defaults-mode-node': 4.2.6 + '@smithy/util-endpoints': 3.2.3 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-retry': 4.2.3 + '@smithy/util-utf8': 4.2.0 + '@smithy/util-waiter': 4.2.3 + '@smithy/uuid': 1.1.0 tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt - '@aws-sdk/credential-provider-ini@3.887.0': - dependencies: - '@aws-sdk/core': 3.887.0 - '@aws-sdk/credential-provider-env': 3.887.0 - '@aws-sdk/credential-provider-http': 3.887.0 - '@aws-sdk/credential-provider-process': 3.887.0 - '@aws-sdk/credential-provider-sso': 3.887.0 - '@aws-sdk/credential-provider-web-identity': 3.887.0 - '@aws-sdk/nested-clients': 3.887.0 - '@aws-sdk/types': 3.887.0 - '@smithy/credential-provider-imds': 4.1.1 - '@smithy/property-provider': 4.1.1 - '@smithy/shared-ini-file-loader': 4.1.1 - '@smithy/types': 4.5.0 + '@aws-sdk/client-sso@3.916.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.916.0 + '@aws-sdk/middleware-host-header': 3.914.0 + '@aws-sdk/middleware-logger': 3.914.0 + '@aws-sdk/middleware-recursion-detection': 3.914.0 + '@aws-sdk/middleware-user-agent': 3.916.0 + '@aws-sdk/region-config-resolver': 3.914.0 + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-endpoints': 3.916.0 + '@aws-sdk/util-user-agent-browser': 3.914.0 + '@aws-sdk/util-user-agent-node': 3.916.0 + '@smithy/config-resolver': 4.4.0 + '@smithy/core': 3.17.1 + '@smithy/fetch-http-handler': 5.3.4 + '@smithy/hash-node': 4.2.3 + '@smithy/invalid-dependency': 4.2.3 + '@smithy/middleware-content-length': 4.2.3 + '@smithy/middleware-endpoint': 4.3.5 + '@smithy/middleware-retry': 4.4.5 + '@smithy/middleware-serde': 4.2.3 + '@smithy/middleware-stack': 4.2.3 + '@smithy/node-config-provider': 4.3.3 + '@smithy/node-http-handler': 4.4.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 + '@smithy/url-parser': 4.2.3 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.4 + '@smithy/util-defaults-mode-node': 4.2.6 + '@smithy/util-endpoints': 3.2.3 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-retry': 4.2.3 + '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-node@3.887.0': - dependencies: - '@aws-sdk/credential-provider-env': 3.887.0 - '@aws-sdk/credential-provider-http': 3.887.0 - '@aws-sdk/credential-provider-ini': 3.887.0 - '@aws-sdk/credential-provider-process': 3.887.0 - '@aws-sdk/credential-provider-sso': 3.887.0 - '@aws-sdk/credential-provider-web-identity': 3.887.0 - '@aws-sdk/types': 3.887.0 - '@smithy/credential-provider-imds': 4.1.1 - '@smithy/property-provider': 4.1.1 - '@smithy/shared-ini-file-loader': 4.1.1 - '@smithy/types': 4.5.0 + '@aws-sdk/client-sts@3.916.0': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.916.0 + '@aws-sdk/credential-provider-node': 3.916.0 + '@aws-sdk/middleware-host-header': 3.914.0 + '@aws-sdk/middleware-logger': 3.914.0 + '@aws-sdk/middleware-recursion-detection': 3.914.0 + '@aws-sdk/middleware-user-agent': 3.916.0 + '@aws-sdk/region-config-resolver': 3.914.0 + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-endpoints': 3.916.0 + '@aws-sdk/util-user-agent-browser': 3.914.0 + '@aws-sdk/util-user-agent-node': 3.916.0 + '@smithy/config-resolver': 4.4.0 + '@smithy/core': 3.17.1 + '@smithy/fetch-http-handler': 5.3.4 + '@smithy/hash-node': 4.2.3 + '@smithy/invalid-dependency': 4.2.3 + '@smithy/middleware-content-length': 4.2.3 + '@smithy/middleware-endpoint': 4.3.5 + '@smithy/middleware-retry': 4.4.5 + '@smithy/middleware-serde': 4.2.3 + '@smithy/middleware-stack': 4.2.3 + '@smithy/node-config-provider': 4.3.3 + '@smithy/node-http-handler': 4.4.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 + '@smithy/url-parser': 4.2.3 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.4 + '@smithy/util-defaults-mode-node': 4.2.6 + '@smithy/util-endpoints': 3.2.3 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-retry': 4.2.3 + '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-process@3.887.0': + '@aws-sdk/core@3.916.0': + dependencies: + '@aws-sdk/types': 3.914.0 + '@aws-sdk/xml-builder': 3.914.0 + '@smithy/core': 3.17.1 + '@smithy/node-config-provider': 4.3.3 + '@smithy/property-provider': 4.2.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/signature-v4': 5.3.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-cognito-identity@3.916.0': dependencies: - '@aws-sdk/core': 3.887.0 - '@aws-sdk/types': 3.887.0 - '@smithy/property-provider': 4.1.1 - '@smithy/shared-ini-file-loader': 4.1.1 - '@smithy/types': 4.5.0 + '@aws-sdk/client-cognito-identity': 3.916.0 + '@aws-sdk/types': 3.914.0 + '@smithy/property-provider': 4.2.3 + '@smithy/types': 4.8.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-env@3.916.0': + dependencies: + '@aws-sdk/core': 3.916.0 + '@aws-sdk/types': 3.914.0 + '@smithy/property-provider': 4.2.3 + '@smithy/types': 4.8.0 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-http@3.916.0': + dependencies: + '@aws-sdk/core': 3.916.0 + '@aws-sdk/types': 3.914.0 + '@smithy/fetch-http-handler': 5.3.4 + '@smithy/node-http-handler': 4.4.3 + '@smithy/property-provider': 4.2.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 + '@smithy/util-stream': 4.5.4 + tslib: 2.8.1 + + '@aws-sdk/credential-provider-ini@3.916.0': + dependencies: + '@aws-sdk/core': 3.916.0 + '@aws-sdk/credential-provider-env': 3.916.0 + '@aws-sdk/credential-provider-http': 3.916.0 + '@aws-sdk/credential-provider-process': 3.916.0 + '@aws-sdk/credential-provider-sso': 3.916.0 + '@aws-sdk/credential-provider-web-identity': 3.916.0 + '@aws-sdk/nested-clients': 3.916.0 + '@aws-sdk/types': 3.914.0 + '@smithy/credential-provider-imds': 4.2.3 + '@smithy/property-provider': 4.2.3 + '@smithy/shared-ini-file-loader': 4.3.3 + '@smithy/types': 4.8.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-node@3.916.0': + dependencies: + '@aws-sdk/credential-provider-env': 3.916.0 + '@aws-sdk/credential-provider-http': 3.916.0 + '@aws-sdk/credential-provider-ini': 3.916.0 + '@aws-sdk/credential-provider-process': 3.916.0 + '@aws-sdk/credential-provider-sso': 3.916.0 + '@aws-sdk/credential-provider-web-identity': 3.916.0 + '@aws-sdk/types': 3.914.0 + '@smithy/credential-provider-imds': 4.2.3 + '@smithy/property-provider': 4.2.3 + '@smithy/shared-ini-file-loader': 4.3.3 + '@smithy/types': 4.8.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-process@3.916.0': + dependencies: + '@aws-sdk/core': 3.916.0 + '@aws-sdk/types': 3.914.0 + '@smithy/property-provider': 4.2.3 + '@smithy/shared-ini-file-loader': 4.3.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.887.0': + '@aws-sdk/credential-provider-sso@3.916.0': dependencies: - '@aws-sdk/client-sso': 3.887.0 - '@aws-sdk/core': 3.887.0 - '@aws-sdk/token-providers': 3.887.0 - '@aws-sdk/types': 3.887.0 - '@smithy/property-provider': 4.1.1 - '@smithy/shared-ini-file-loader': 4.1.1 - '@smithy/types': 4.5.0 + '@aws-sdk/client-sso': 3.916.0 + '@aws-sdk/core': 3.916.0 + '@aws-sdk/token-providers': 3.916.0 + '@aws-sdk/types': 3.914.0 + '@smithy/property-provider': 4.2.3 + '@smithy/shared-ini-file-loader': 4.3.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-web-identity@3.887.0': + '@aws-sdk/credential-provider-web-identity@3.916.0': dependencies: - '@aws-sdk/core': 3.887.0 - '@aws-sdk/nested-clients': 3.887.0 - '@aws-sdk/types': 3.887.0 - '@smithy/property-provider': 4.1.1 - '@smithy/types': 4.5.0 + '@aws-sdk/core': 3.916.0 + '@aws-sdk/nested-clients': 3.916.0 + '@aws-sdk/types': 3.914.0 + '@smithy/property-provider': 4.2.3 + '@smithy/shared-ini-file-loader': 4.3.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-providers@3.887.0': - dependencies: - '@aws-sdk/client-cognito-identity': 3.887.0 - '@aws-sdk/core': 3.887.0 - '@aws-sdk/credential-provider-cognito-identity': 3.887.0 - '@aws-sdk/credential-provider-env': 3.887.0 - '@aws-sdk/credential-provider-http': 3.887.0 - '@aws-sdk/credential-provider-ini': 3.887.0 - '@aws-sdk/credential-provider-node': 3.887.0 - '@aws-sdk/credential-provider-process': 3.887.0 - '@aws-sdk/credential-provider-sso': 3.887.0 - '@aws-sdk/credential-provider-web-identity': 3.887.0 - '@aws-sdk/nested-clients': 3.887.0 - '@aws-sdk/types': 3.887.0 - '@smithy/config-resolver': 4.2.1 - '@smithy/core': 3.11.0 - '@smithy/credential-provider-imds': 4.1.1 - '@smithy/node-config-provider': 4.2.1 - '@smithy/property-provider': 4.1.1 - '@smithy/types': 4.5.0 + '@aws-sdk/credential-providers@3.916.0': + dependencies: + '@aws-sdk/client-cognito-identity': 3.916.0 + '@aws-sdk/core': 3.916.0 + '@aws-sdk/credential-provider-cognito-identity': 3.916.0 + '@aws-sdk/credential-provider-env': 3.916.0 + '@aws-sdk/credential-provider-http': 3.916.0 + '@aws-sdk/credential-provider-ini': 3.916.0 + '@aws-sdk/credential-provider-node': 3.916.0 + '@aws-sdk/credential-provider-process': 3.916.0 + '@aws-sdk/credential-provider-sso': 3.916.0 + '@aws-sdk/credential-provider-web-identity': 3.916.0 + '@aws-sdk/nested-clients': 3.916.0 + '@aws-sdk/types': 3.914.0 + '@smithy/config-resolver': 4.4.0 + '@smithy/core': 3.17.1 + '@smithy/credential-provider-imds': 4.2.3 + '@smithy/node-config-provider': 4.3.3 + '@smithy/property-provider': 4.2.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/middleware-host-header@3.887.0': + '@aws-sdk/middleware-bucket-endpoint@3.914.0': + dependencies: + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-arn-parser': 3.893.0 + '@smithy/node-config-provider': 4.3.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/types': 4.8.0 + '@smithy/util-config-provider': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-expect-continue@3.916.0': + dependencies: + '@aws-sdk/types': 3.914.0 + '@smithy/protocol-http': 5.3.3 + '@smithy/types': 4.8.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-flexible-checksums@3.916.0': dependencies: - '@aws-sdk/types': 3.887.0 - '@smithy/protocol-http': 5.2.1 - '@smithy/types': 4.5.0 + '@aws-crypto/crc32': 5.2.0 + '@aws-crypto/crc32c': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/core': 3.916.0 + '@aws-sdk/types': 3.914.0 + '@smithy/is-array-buffer': 4.2.0 + '@smithy/node-config-provider': 4.3.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/types': 4.8.0 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-stream': 4.5.4 + '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@aws-sdk/middleware-logger@3.887.0': + '@aws-sdk/middleware-host-header@3.914.0': dependencies: - '@aws-sdk/types': 3.887.0 - '@smithy/types': 4.5.0 + '@aws-sdk/types': 3.914.0 + '@smithy/protocol-http': 5.3.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@aws-sdk/middleware-recursion-detection@3.887.0': + '@aws-sdk/middleware-location-constraint@3.914.0': dependencies: - '@aws-sdk/types': 3.887.0 + '@aws-sdk/types': 3.914.0 + '@smithy/types': 4.8.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-logger@3.914.0': + dependencies: + '@aws-sdk/types': 3.914.0 + '@smithy/types': 4.8.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-recursion-detection@3.914.0': + dependencies: + '@aws-sdk/types': 3.914.0 '@aws/lambda-invoke-store': 0.0.1 - '@smithy/protocol-http': 5.2.1 - '@smithy/types': 4.5.0 + '@smithy/protocol-http': 5.3.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.887.0': + '@aws-sdk/middleware-sdk-ec2@3.916.0': dependencies: - '@aws-sdk/core': 3.887.0 - '@aws-sdk/types': 3.887.0 - '@aws-sdk/util-endpoints': 3.887.0 - '@smithy/core': 3.11.0 - '@smithy/protocol-http': 5.2.1 - '@smithy/types': 4.5.0 + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-format-url': 3.914.0 + '@smithy/middleware-endpoint': 4.3.5 + '@smithy/protocol-http': 5.3.3 + '@smithy/signature-v4': 5.3.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@aws-sdk/nested-clients@3.887.0': + '@aws-sdk/middleware-sdk-s3@3.916.0': + dependencies: + '@aws-sdk/core': 3.916.0 + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-arn-parser': 3.893.0 + '@smithy/core': 3.17.1 + '@smithy/node-config-provider': 4.3.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/signature-v4': 5.3.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 + '@smithy/util-config-provider': 4.2.0 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-stream': 4.5.4 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-sdk-sqs@3.916.0': + dependencies: + '@aws-sdk/types': 3.914.0 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 + '@smithy/util-hex-encoding': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-ssec@3.914.0': + dependencies: + '@aws-sdk/types': 3.914.0 + '@smithy/types': 4.8.0 + tslib: 2.8.1 + + '@aws-sdk/middleware-user-agent@3.916.0': + dependencies: + '@aws-sdk/core': 3.916.0 + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-endpoints': 3.916.0 + '@smithy/core': 3.17.1 + '@smithy/protocol-http': 5.3.3 + '@smithy/types': 4.8.0 + tslib: 2.8.1 + + '@aws-sdk/nested-clients@3.916.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.887.0 - '@aws-sdk/middleware-host-header': 3.887.0 - '@aws-sdk/middleware-logger': 3.887.0 - '@aws-sdk/middleware-recursion-detection': 3.887.0 - '@aws-sdk/middleware-user-agent': 3.887.0 - '@aws-sdk/region-config-resolver': 3.887.0 - '@aws-sdk/types': 3.887.0 - '@aws-sdk/util-endpoints': 3.887.0 - '@aws-sdk/util-user-agent-browser': 3.887.0 - '@aws-sdk/util-user-agent-node': 3.887.0 - '@smithy/config-resolver': 4.2.1 - '@smithy/core': 3.11.0 - '@smithy/fetch-http-handler': 5.2.1 - '@smithy/hash-node': 4.1.1 - '@smithy/invalid-dependency': 4.1.1 - '@smithy/middleware-content-length': 4.1.1 - '@smithy/middleware-endpoint': 4.2.1 - '@smithy/middleware-retry': 4.2.1 - '@smithy/middleware-serde': 4.1.1 - '@smithy/middleware-stack': 4.1.1 - '@smithy/node-config-provider': 4.2.1 - '@smithy/node-http-handler': 4.2.1 - '@smithy/protocol-http': 5.2.1 - '@smithy/smithy-client': 4.6.1 - '@smithy/types': 4.5.0 - '@smithy/url-parser': 4.1.1 - '@smithy/util-base64': 4.1.0 - '@smithy/util-body-length-browser': 4.1.0 - '@smithy/util-body-length-node': 4.1.0 - '@smithy/util-defaults-mode-browser': 4.1.1 - '@smithy/util-defaults-mode-node': 4.1.1 - '@smithy/util-endpoints': 3.1.1 - '@smithy/util-middleware': 4.1.1 - '@smithy/util-retry': 4.1.1 - '@smithy/util-utf8': 4.1.0 + '@aws-sdk/core': 3.916.0 + '@aws-sdk/middleware-host-header': 3.914.0 + '@aws-sdk/middleware-logger': 3.914.0 + '@aws-sdk/middleware-recursion-detection': 3.914.0 + '@aws-sdk/middleware-user-agent': 3.916.0 + '@aws-sdk/region-config-resolver': 3.914.0 + '@aws-sdk/types': 3.914.0 + '@aws-sdk/util-endpoints': 3.916.0 + '@aws-sdk/util-user-agent-browser': 3.914.0 + '@aws-sdk/util-user-agent-node': 3.916.0 + '@smithy/config-resolver': 4.4.0 + '@smithy/core': 3.17.1 + '@smithy/fetch-http-handler': 5.3.4 + '@smithy/hash-node': 4.2.3 + '@smithy/invalid-dependency': 4.2.3 + '@smithy/middleware-content-length': 4.2.3 + '@smithy/middleware-endpoint': 4.3.5 + '@smithy/middleware-retry': 4.4.5 + '@smithy/middleware-serde': 4.2.3 + '@smithy/middleware-stack': 4.2.3 + '@smithy/node-config-provider': 4.3.3 + '@smithy/node-http-handler': 4.4.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 + '@smithy/url-parser': 4.2.3 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-body-length-node': 4.2.1 + '@smithy/util-defaults-mode-browser': 4.3.4 + '@smithy/util-defaults-mode-node': 4.2.6 + '@smithy/util-endpoints': 3.2.3 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-retry': 4.2.3 + '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/region-config-resolver@3.887.0': + '@aws-sdk/region-config-resolver@3.914.0': + dependencies: + '@aws-sdk/types': 3.914.0 + '@smithy/config-resolver': 4.4.0 + '@smithy/types': 4.8.0 + tslib: 2.8.1 + + '@aws-sdk/signature-v4-multi-region@3.916.0': dependencies: - '@aws-sdk/types': 3.887.0 - '@smithy/node-config-provider': 4.2.1 - '@smithy/types': 4.5.0 - '@smithy/util-config-provider': 4.1.0 - '@smithy/util-middleware': 4.1.1 + '@aws-sdk/middleware-sdk-s3': 3.916.0 + '@aws-sdk/types': 3.914.0 + '@smithy/protocol-http': 5.3.3 + '@smithy/signature-v4': 5.3.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@aws-sdk/token-providers@3.887.0': + '@aws-sdk/token-providers@3.916.0': dependencies: - '@aws-sdk/core': 3.887.0 - '@aws-sdk/nested-clients': 3.887.0 - '@aws-sdk/types': 3.887.0 - '@smithy/property-provider': 4.1.1 - '@smithy/shared-ini-file-loader': 4.1.1 - '@smithy/types': 4.5.0 + '@aws-sdk/core': 3.916.0 + '@aws-sdk/nested-clients': 3.916.0 + '@aws-sdk/types': 3.914.0 + '@smithy/property-provider': 4.2.3 + '@smithy/shared-ini-file-loader': 4.3.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt - '@aws-sdk/types@3.887.0': + '@aws-sdk/types@3.914.0': + dependencies: + '@smithy/types': 4.8.0 + tslib: 2.8.1 + + '@aws-sdk/util-arn-parser@3.893.0': dependencies: - '@smithy/types': 4.5.0 tslib: 2.8.1 - '@aws-sdk/util-endpoints@3.887.0': + '@aws-sdk/util-endpoints@3.916.0': dependencies: - '@aws-sdk/types': 3.887.0 - '@smithy/types': 4.5.0 - '@smithy/url-parser': 4.1.1 - '@smithy/util-endpoints': 3.1.1 + '@aws-sdk/types': 3.914.0 + '@smithy/types': 4.8.0 + '@smithy/url-parser': 4.2.3 + '@smithy/util-endpoints': 3.2.3 tslib: 2.8.1 - '@aws-sdk/util-locate-window@3.873.0': + '@aws-sdk/util-format-url@3.914.0': dependencies: + '@aws-sdk/types': 3.914.0 + '@smithy/querystring-builder': 4.2.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@aws-sdk/util-user-agent-browser@3.887.0': + '@aws-sdk/util-locate-window@3.893.0': dependencies: - '@aws-sdk/types': 3.887.0 - '@smithy/types': 4.5.0 + tslib: 2.8.1 + + '@aws-sdk/util-user-agent-browser@3.914.0': + dependencies: + '@aws-sdk/types': 3.914.0 + '@smithy/types': 4.8.0 bowser: 2.12.1 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.887.0': + '@aws-sdk/util-user-agent-node@3.916.0': dependencies: - '@aws-sdk/middleware-user-agent': 3.887.0 - '@aws-sdk/types': 3.887.0 - '@smithy/node-config-provider': 4.2.1 - '@smithy/types': 4.5.0 + '@aws-sdk/middleware-user-agent': 3.916.0 + '@aws-sdk/types': 3.914.0 + '@smithy/node-config-provider': 4.3.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@aws-sdk/xml-builder@3.887.0': + '@aws-sdk/xml-builder@3.914.0': dependencies: - '@smithy/types': 4.5.0 + '@smithy/types': 4.8.0 + fast-xml-parser: 5.2.5 tslib: 2.8.1 '@aws/lambda-invoke-store@0.0.1': {} @@ -15922,10 +17528,10 @@ snapshots: '@azure/core-xml@1.5.0': dependencies: - fast-xml-parser: 5.2.5 + fast-xml-parser: 5.3.0 tslib: 2.8.1 - '@azure/identity@4.12.0': + '@azure/identity@4.13.0': dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 @@ -15934,8 +17540,8 @@ snapshots: '@azure/core-tracing': 1.3.1 '@azure/core-util': 1.13.1 '@azure/logger': 1.3.0 - '@azure/msal-browser': 4.22.1 - '@azure/msal-node': 3.7.3 + '@azure/msal-browser': 4.25.1 + '@azure/msal-node': 3.8.0 open: 10.2.0 tslib: 2.8.1 transitivePeerDependencies: @@ -15948,19 +17554,19 @@ snapshots: transitivePeerDependencies: - supports-color - '@azure/msal-browser@4.22.1': + '@azure/msal-browser@4.25.1': dependencies: - '@azure/msal-common': 15.12.0 + '@azure/msal-common': 15.13.0 - '@azure/msal-common@15.12.0': {} + '@azure/msal-common@15.13.0': {} - '@azure/msal-node@3.7.3': + '@azure/msal-node@3.8.0': dependencies: - '@azure/msal-common': 15.12.0 + '@azure/msal-common': 15.13.0 jsonwebtoken: 9.0.2 uuid: 8.3.2 - '@azure/storage-blob@12.28.0': + '@azure/storage-blob@12.29.1': dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 @@ -15973,13 +17579,13 @@ snapshots: '@azure/core-util': 1.13.1 '@azure/core-xml': 1.5.0 '@azure/logger': 1.3.0 - '@azure/storage-common': 12.0.0 + '@azure/storage-common': 12.1.1 events: 3.3.0 tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@azure/storage-common@12.0.0': + '@azure/storage-common@12.1.1': dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 @@ -15993,7 +17599,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@azure/storage-queue@12.27.0': + '@azure/storage-queue@12.28.1': dependencies: '@azure/abort-controller': 2.1.2 '@azure/core-auth': 1.10.1 @@ -16005,765 +17611,852 @@ snapshots: '@azure/core-util': 1.13.1 '@azure/core-xml': 1.5.0 '@azure/logger': 1.3.0 - '@azure/storage-common': 12.0.0 + '@azure/storage-common': 12.1.1 tslib: 2.8.1 transitivePeerDependencies: - supports-color '@babel/code-frame@7.27.1': dependencies: - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.28.4': {} + '@babel/compat-data@7.28.5': {} - '@babel/core@7.28.4': + '@babel/core@7.28.5': dependencies: '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 + '@babel/generator': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) '@babel/helpers': 7.28.4 - '@babel/parser': 7.28.4 + '@babel/parser': 7.28.5 '@babel/template': 7.27.2 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 '@jridgewell/remapping': 2.3.5 convert-source-map: 2.0.0 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.28.3': + '@babel/generator@7.28.5': dependencies: - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 '@babel/helper-compilation-targets@7.27.2': dependencies: - '@babel/compat-data': 7.28.4 + '@babel/compat-data': 7.28.5 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.4 + browserslist: 4.27.0 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.28.3(@babel/core@7.28.4)': + '@babel/helper-create-class-features-plugin@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-create-regexp-features-plugin@7.27.1(@babel/core@7.28.4)': + '@babel/helper-create-regexp-features-plugin@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 - regexpu-core: 6.3.1 + regexpu-core: 6.4.0 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.4)': + '@babel/helper-define-polyfill-provider@0.6.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) lodash.debounce: 4.0.8 - resolve: 1.22.10 + resolve: 1.22.11 transitivePeerDependencies: - supports-color '@babel/helper-globals@7.28.0': {} - '@babel/helper-member-expression-to-functions@7.27.1': + '@babel/helper-member-expression-to-functions@7.28.5': dependencies: - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-module-imports@7.27.1': dependencies: - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)': + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-module-imports': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 '@babel/helper-plugin-utils@7.27.1': {} - '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.4)': + '@babel/helper-remap-async-to-generator@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-wrap-function': 7.28.3 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.4)': + '@babel/helper-replace-supers@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-member-expression-to-functions': 7.27.1 + '@babel/core': 7.28.5 + '@babel/helper-member-expression-to-functions': 7.28.5 '@babel/helper-optimise-call-expression': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helper-string-parser@7.27.1': {} - '@babel/helper-validator-identifier@7.27.1': {} + '@babel/helper-validator-identifier@7.28.5': {} '@babel/helper-validator-option@7.27.1': {} '@babel/helper-wrap-function@7.28.3': dependencies: '@babel/template': 7.27.2 - '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/traverse': 7.28.5 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color '@babel/helpers@7.28.4': dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 - '@babel/parser@7.28.4': + '@babel/parser@7.28.5': dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.4)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.28.4)': + '@babel/plugin-proposal-decorators@7.28.0(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-decorators': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.4)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.4)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.4)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.4)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-syntax-decorators@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-syntax-import-assertions@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.4)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.4)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.4)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.4)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.4)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.4)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.4)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-arrow-functions@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.4)': + '@babel/plugin-transform-async-generator-functions@7.28.0(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.4) - '@babel/traverse': 7.28.4 + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-async-to-generator@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.4) + '@babel/helper-remap-async-to-generator': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-block-scoped-functions@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-block-scoping@7.28.4(@babel/core@7.28.4)': + '@babel/plugin-transform-block-scoping@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-class-properties@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.4)': + '@babel/plugin-transform-class-static-block@7.28.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.4)': + '@babel/plugin-transform-classes@7.28.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-globals': 7.28.0 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4) - '@babel/traverse': 7.28.4 + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-computed-properties@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/template': 7.27.2 - '@babel/plugin-transform-destructuring@7.28.0(@babel/core@7.28.4)': + '@babel/plugin-transform-destructuring@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-dotall-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-duplicate-keys@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-dynamic-import@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.4)': + '@babel/plugin-transform-explicit-resource-management@7.28.0(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.4) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-exponentiation-operator@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-exponentiation-operator@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-export-namespace-from@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-for-of@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-function-name@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-json-strings@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-literals@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-logical-assignment-operators@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-logical-assignment-operators@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-member-expression-literals@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-modules-amd@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-modules-commonjs@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-systemjs@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-modules-systemjs@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 - '@babel/traverse': 7.28.4 + '@babel/helper-validator-identifier': 7.28.5 + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-modules-umd@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-named-capturing-groups-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-new-target@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-nullish-coalescing-operator@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-numeric-separator@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.4)': + '@babel/plugin-transform-object-rest-spread@7.28.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.4) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.4) - '@babel/traverse': 7.28.4 + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-object-super@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.4) + '@babel/helper-replace-supers': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-optional-catch-binding@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-optional-chaining@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-optional-chaining@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.4)': + '@babel/plugin-transform-parameters@7.27.7(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-private-methods@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-private-property-in-object@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-property-literals@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.4)': + '@babel/plugin-transform-regenerator@7.28.4(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-regexp-modifiers@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-reserved-words@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-runtime@7.28.3(@babel/core@7.28.4)': + '@babel/plugin-transform-runtime@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-module-imports': 7.27.1 '@babel/helper-plugin-utils': 7.27.1 - babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.4) - babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.4) - babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.4) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.5) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.5) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.5) semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-shorthand-properties@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-spread@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-sticky-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-template-literals@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-typeof-symbol@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-typescript@7.28.0(@babel/core@7.28.4)': + '@babel/plugin-transform-typescript@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-create-class-features-plugin': 7.28.3(@babel/core@7.28.4) + '@babel/helper-create-class-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-skip-transparent-expression-wrappers': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-unicode-escapes@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + + '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-property-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-regex@7.27.1(@babel/core@7.28.4)': + '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-create-regexp-features-plugin': 7.28.5(@babel/core@7.28.5) '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-transform-unicode-sets-regex@7.27.1(@babel/core@7.28.4)': + '@babel/preset-env@7.28.3(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 - '@babel/helper-create-regexp-features-plugin': 7.27.1(@babel/core@7.28.4) + '@babel/compat-data': 7.28.5 + '@babel/core': 7.28.5 + '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.5) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.5) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-exponentiation-operator': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-systemjs': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.5) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.5) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.5) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.5) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.5) + core-js-compat: 3.46.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color - '@babel/preset-env@7.28.3(@babel/core@7.28.4)': + '@babel/preset-env@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/compat-data': 7.28.4 - '@babel/core': 7.28.4 + '@babel/compat-data': 7.28.5 + '@babel/core': 7.28.5 '@babel/helper-compilation-targets': 7.27.2 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.4) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.4) - '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.4) - '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.4) - '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-block-scoping': 7.28.4(@babel/core@7.28.4) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.4) - '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.4) - '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-destructuring': 7.28.0(@babel/core@7.28.4) - '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.4) - '@babel/plugin-transform-exponentiation-operator': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-logical-assignment-operators': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-modules-systemjs': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.4) - '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-optional-chaining': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.4) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.4) - '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.4) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.4) - babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.4) - babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.4) - babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.4) - core-js-compat: 3.45.1 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.28.3(@babel/core@7.28.5) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.28.5) + '@babel/plugin-syntax-import-assertions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.28.5) + '@babel/plugin-transform-arrow-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-async-generator-functions': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-async-to-generator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoped-functions': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-block-scoping': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-class-static-block': 7.28.3(@babel/core@7.28.5) + '@babel/plugin-transform-classes': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-computed-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-destructuring': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-dotall-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-duplicate-keys': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-dynamic-import': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-explicit-resource-management': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-exponentiation-operator': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-export-namespace-from': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-for-of': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-function-name': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-json-strings': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-logical-assignment-operators': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-member-expression-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-amd': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-systemjs': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-modules-umd': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-named-capturing-groups-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-new-target': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-nullish-coalescing-operator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-numeric-separator': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-object-rest-spread': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-object-super': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-catch-binding': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-optional-chaining': 7.28.5(@babel/core@7.28.5) + '@babel/plugin-transform-parameters': 7.27.7(@babel/core@7.28.5) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-private-property-in-object': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-property-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-regenerator': 7.28.4(@babel/core@7.28.5) + '@babel/plugin-transform-regexp-modifiers': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-reserved-words': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-shorthand-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-spread': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-sticky-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-template-literals': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-typeof-symbol': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-escapes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-property-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-regex': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-unicode-sets-regex': 7.27.1(@babel/core@7.28.5) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.28.5) + babel-plugin-polyfill-corejs2: 0.4.14(@babel/core@7.28.5) + babel-plugin-polyfill-corejs3: 0.13.0(@babel/core@7.28.5) + babel-plugin-polyfill-regenerator: 0.6.5(@babel/core@7.28.5) + core-js-compat: 3.46.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.4)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 esutils: 2.0.3 - '@babel/preset-typescript@7.27.1(@babel/core@7.28.4)': + '@babel/preset-typescript@7.27.1(@babel/core@7.28.5)': + dependencies: + '@babel/core': 7.28.5 + '@babel/helper-plugin-utils': 7.27.1 + '@babel/helper-validator-option': 7.27.1 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) + transitivePeerDependencies: + - supports-color + + '@babel/preset-typescript@7.28.5(@babel/core@7.28.5)': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 '@babel/helper-validator-option': 7.27.1 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-typescript': 7.28.0(@babel/core@7.28.4) + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-modules-commonjs': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-typescript': 7.28.5(@babel/core@7.28.5) transitivePeerDependencies: - supports-color @@ -16772,27 +18465,27 @@ snapshots: '@babel/template@7.27.2': dependencies: '@babel/code-frame': 7.27.1 - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 - '@babel/traverse@7.28.4': + '@babel/traverse@7.28.5': dependencies: '@babel/code-frame': 7.27.1 - '@babel/generator': 7.28.3 + '@babel/generator': 7.28.5 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.4 + '@babel/parser': 7.28.5 '@babel/template': 7.27.2 - '@babel/types': 7.28.4 - debug: 4.4.1(supports-color@8.1.1) + '@babel/types': 7.28.5 + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color - '@babel/types@7.28.4': + '@babel/types@7.28.5': dependencies: '@babel/helper-string-parser': 7.27.1 - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 - '@base-org/account@1.1.1(@types/react@19.1.13)(bufferutil@4.0.9)(react@19.1.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@3.24.3)': + '@base-org/account@1.1.1(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@3.24.3)': dependencies: '@noble/hashes': 1.4.0 clsx: 1.2.1 @@ -16800,8 +18493,8 @@ snapshots: idb-keyval: 6.2.1 ox: 0.6.9(typescript@5.8.3)(zod@3.24.3) preact: 10.24.2 - viem: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - zustand: 5.0.3(@types/react@19.1.13)(react@19.1.1)(use-sync-external-store@1.4.0(react@19.1.1)) + viem: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + zustand: 5.0.3(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) transitivePeerDependencies: - '@types/react' - bufferutil @@ -16828,7 +18521,7 @@ snapshots: outdent: 0.5.0 prettier: 2.8.8 resolve-from: 5.0.0 - semver: 7.7.2 + semver: 7.7.3 '@changesets/assemble-release-plan@6.0.9': dependencies: @@ -16837,13 +18530,13 @@ snapshots: '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 - semver: 7.7.2 + semver: 7.7.3 '@changesets/changelog-git@0.2.1': dependencies: '@changesets/types': 6.1.0 - '@changesets/cli@2.29.7(@types/node@20.19.13)': + '@changesets/cli@2.29.7(@types/node@20.0.0)': dependencies: '@changesets/apply-release-plan': 7.0.13 '@changesets/assemble-release-plan': 6.0.9 @@ -16859,7 +18552,7 @@ snapshots: '@changesets/should-skip-package': 0.1.2 '@changesets/types': 6.1.0 '@changesets/write': 0.4.0 - '@inquirer/external-editor': 1.0.1(@types/node@20.19.13) + '@inquirer/external-editor': 1.0.2(@types/node@20.0.0) '@manypkg/get-packages': 1.1.3 ansi-colors: 4.1.3 ci-info: 3.9.0 @@ -16870,7 +18563,7 @@ snapshots: package-manager-detector: 0.2.11 picocolors: 1.1.1 resolve-from: 5.0.0 - semver: 7.7.2 + semver: 7.7.3 spawndamnit: 3.0.1 term-size: 2.2.1 transitivePeerDependencies: @@ -16895,7 +18588,7 @@ snapshots: '@changesets/types': 6.1.0 '@manypkg/get-packages': 1.1.3 picocolors: 1.1.1 - semver: 7.7.2 + semver: 7.7.3 '@changesets/get-release-plan@4.0.13': dependencies: @@ -16955,7 +18648,7 @@ snapshots: dependencies: '@changesets/types': 6.1.0 fs-extra: 7.0.1 - human-id: 4.1.1 + human-id: 4.1.2 prettier: 2.8.8 '@coinbase/wallet-sdk@3.9.3': @@ -16967,12 +18660,12 @@ snapshots: eth-json-rpc-filters: 6.0.1 eventemitter3: 5.0.1 keccak: 3.0.4 - preact: 10.27.1 + preact: 10.27.2 sha.js: 2.4.12 transitivePeerDependencies: - supports-color - '@coinbase/wallet-sdk@4.3.6(@types/react@19.1.13)(bufferutil@4.0.9)(react@19.1.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@3.24.3)': + '@coinbase/wallet-sdk@4.3.6(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@3.24.3)': dependencies: '@noble/hashes': 1.4.0 clsx: 1.2.1 @@ -16980,8 +18673,8 @@ snapshots: idb-keyval: 6.2.1 ox: 0.6.9(typescript@5.8.3)(zod@3.24.3) preact: 10.24.2 - viem: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - zustand: 5.0.3(@types/react@19.1.13)(react@19.1.1)(use-sync-external-store@1.4.0(react@19.1.1)) + viem: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + zustand: 5.0.3(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) transitivePeerDependencies: - '@types/react' - bufferutil @@ -16999,16 +18692,16 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@dependents/detective-less@4.1.0': + '@dependents/detective-less@5.0.1': dependencies: gonzales-pe: 4.3.0 - node-source-walk: 6.0.2 + node-source-walk: 7.0.1 - '@dotenvx/dotenvx@1.49.0': + '@dotenvx/dotenvx@1.51.0': dependencies: commander: 11.1.0 - dotenv: 17.2.2 - eciesjs: 0.4.15 + dotenv: 17.2.3 + eciesjs: 0.4.16 execa: 5.1.1 fdir: 6.5.0(picomatch@4.0.3) ignore: 5.3.2 @@ -17020,12 +18713,12 @@ snapshots: dependencies: '@noble/ciphers': 1.3.0 - '@emnapi/core@1.5.0': + '@emnapi/core@1.6.0': dependencies: '@emnapi/wasi-threads': 1.1.0 tslib: 2.8.1 - '@emnapi/runtime@1.5.0': + '@emnapi/runtime@1.6.0': dependencies: tslib: 2.8.1 @@ -17036,148 +18729,148 @@ snapshots: '@esbuild/aix-ppc64@0.19.12': optional: true - '@esbuild/aix-ppc64@0.25.9': + '@esbuild/aix-ppc64@0.25.11': optional: true '@esbuild/android-arm64@0.19.12': optional: true - '@esbuild/android-arm64@0.25.9': + '@esbuild/android-arm64@0.25.11': optional: true '@esbuild/android-arm@0.19.12': optional: true - '@esbuild/android-arm@0.25.9': + '@esbuild/android-arm@0.25.11': optional: true '@esbuild/android-x64@0.19.12': optional: true - '@esbuild/android-x64@0.25.9': + '@esbuild/android-x64@0.25.11': optional: true '@esbuild/darwin-arm64@0.19.12': optional: true - '@esbuild/darwin-arm64@0.25.9': + '@esbuild/darwin-arm64@0.25.11': optional: true '@esbuild/darwin-x64@0.19.12': optional: true - '@esbuild/darwin-x64@0.25.9': + '@esbuild/darwin-x64@0.25.11': optional: true '@esbuild/freebsd-arm64@0.19.12': optional: true - '@esbuild/freebsd-arm64@0.25.9': + '@esbuild/freebsd-arm64@0.25.11': optional: true '@esbuild/freebsd-x64@0.19.12': optional: true - '@esbuild/freebsd-x64@0.25.9': + '@esbuild/freebsd-x64@0.25.11': optional: true '@esbuild/linux-arm64@0.19.12': optional: true - '@esbuild/linux-arm64@0.25.9': + '@esbuild/linux-arm64@0.25.11': optional: true '@esbuild/linux-arm@0.19.12': optional: true - '@esbuild/linux-arm@0.25.9': + '@esbuild/linux-arm@0.25.11': optional: true '@esbuild/linux-ia32@0.19.12': optional: true - '@esbuild/linux-ia32@0.25.9': + '@esbuild/linux-ia32@0.25.11': optional: true '@esbuild/linux-loong64@0.19.12': optional: true - '@esbuild/linux-loong64@0.25.9': + '@esbuild/linux-loong64@0.25.11': optional: true '@esbuild/linux-mips64el@0.19.12': optional: true - '@esbuild/linux-mips64el@0.25.9': + '@esbuild/linux-mips64el@0.25.11': optional: true '@esbuild/linux-ppc64@0.19.12': optional: true - '@esbuild/linux-ppc64@0.25.9': + '@esbuild/linux-ppc64@0.25.11': optional: true '@esbuild/linux-riscv64@0.19.12': optional: true - '@esbuild/linux-riscv64@0.25.9': + '@esbuild/linux-riscv64@0.25.11': optional: true '@esbuild/linux-s390x@0.19.12': optional: true - '@esbuild/linux-s390x@0.25.9': + '@esbuild/linux-s390x@0.25.11': optional: true '@esbuild/linux-x64@0.19.12': optional: true - '@esbuild/linux-x64@0.25.9': + '@esbuild/linux-x64@0.25.11': optional: true - '@esbuild/netbsd-arm64@0.25.9': + '@esbuild/netbsd-arm64@0.25.11': optional: true '@esbuild/netbsd-x64@0.19.12': optional: true - '@esbuild/netbsd-x64@0.25.9': + '@esbuild/netbsd-x64@0.25.11': optional: true - '@esbuild/openbsd-arm64@0.25.9': + '@esbuild/openbsd-arm64@0.25.11': optional: true '@esbuild/openbsd-x64@0.19.12': optional: true - '@esbuild/openbsd-x64@0.25.9': + '@esbuild/openbsd-x64@0.25.11': optional: true - '@esbuild/openharmony-arm64@0.25.9': + '@esbuild/openharmony-arm64@0.25.11': optional: true '@esbuild/sunos-x64@0.19.12': optional: true - '@esbuild/sunos-x64@0.25.9': + '@esbuild/sunos-x64@0.25.11': optional: true '@esbuild/win32-arm64@0.19.12': optional: true - '@esbuild/win32-arm64@0.25.9': + '@esbuild/win32-arm64@0.25.11': optional: true '@esbuild/win32-ia32@0.19.12': optional: true - '@esbuild/win32-ia32@0.25.9': + '@esbuild/win32-ia32@0.25.11': optional: true '@esbuild/win32-x64@0.19.12': optional: true - '@esbuild/win32-x64@0.25.9': + '@esbuild/win32-x64@0.25.11': optional: true '@eslint-community/eslint-utils@4.9.0(eslint@9.34.0)': @@ -17185,12 +18878,12 @@ snapshots: eslint: 9.34.0 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.12.1': {} + '@eslint-community/regexpp@4.12.2': {} - '@eslint/config-array@0.21.0': + '@eslint/config-array@0.21.1': dependencies: - '@eslint/object-schema': 2.1.6 - debug: 4.4.1(supports-color@8.1.1) + '@eslint/object-schema': 2.1.7 + debug: 4.4.3(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -17204,7 +18897,7 @@ snapshots: '@eslint/eslintrc@3.3.1': dependencies: ajv: 6.12.6 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) espree: 10.4.0 globals: 14.0.0 ignore: 5.3.2 @@ -17217,7 +18910,7 @@ snapshots: '@eslint/js@9.34.0': {} - '@eslint/object-schema@2.1.6': {} + '@eslint/object-schema@2.1.7': {} '@eslint/plugin-kit@0.3.5': dependencies: @@ -17270,13 +18963,13 @@ snapshots: '@ethersproject/abstract-provider@5.7.0': dependencies: - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/networks': 5.7.1 - '@ethersproject/properties': 5.7.0 + '@ethersproject/bignumber': 5.8.0 + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/networks': 5.8.0 + '@ethersproject/properties': 5.8.0 '@ethersproject/transactions': 5.7.0 - '@ethersproject/web': 5.7.1 + '@ethersproject/web': 5.8.0 '@ethersproject/abstract-provider@5.8.0': dependencies: @@ -17333,6 +19026,11 @@ snapshots: '@ethersproject/bytes': 5.7.0 '@ethersproject/properties': 5.7.0 + '@ethersproject/basex@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/properties': 5.8.0 + '@ethersproject/bignumber@5.7.0': dependencies: '@ethersproject/bytes': 5.7.0 @@ -17483,7 +19181,7 @@ snapshots: '@ethersproject/abstract-signer': 5.8.0 '@ethersproject/address': 5.8.0 '@ethersproject/base64': 5.8.0 - '@ethersproject/basex': 5.7.0 + '@ethersproject/basex': 5.8.0 '@ethersproject/bignumber': 5.8.0 '@ethersproject/bytes': 5.8.0 '@ethersproject/constants': 5.8.0 @@ -17491,11 +19189,11 @@ snapshots: '@ethersproject/logger': 5.8.0 '@ethersproject/networks': 5.8.0 '@ethersproject/properties': 5.8.0 - '@ethersproject/random': 5.7.0 + '@ethersproject/random': 5.8.0 '@ethersproject/rlp': 5.8.0 - '@ethersproject/sha2': 5.7.0 + '@ethersproject/sha2': 5.8.0 '@ethersproject/strings': 5.8.0 - '@ethersproject/transactions': 5.8.0 + '@ethersproject/transactions': 5.7.0 '@ethersproject/web': 5.8.0 bech32: 1.1.4 ws: 7.4.6(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -17534,6 +19232,11 @@ snapshots: '@ethersproject/bytes': 5.7.0 '@ethersproject/logger': 5.7.0 + '@ethersproject/random@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + '@ethersproject/rlp@5.7.0': dependencies: '@ethersproject/bytes': 5.7.0 @@ -17550,6 +19253,12 @@ snapshots: '@ethersproject/logger': 5.7.0 hash.js: 1.1.7 + '@ethersproject/sha2@5.8.0': + dependencies: + '@ethersproject/bytes': 5.8.0 + '@ethersproject/logger': 5.8.0 + hash.js: 1.1.7 + '@ethersproject/signing-key@5.7.0': dependencies: '@ethersproject/bytes': 5.7.0 @@ -17661,40 +19370,33 @@ snapshots: '@ethersproject/properties': 5.7.0 '@ethersproject/strings': 5.7.0 - '@gemini-wallet/core@0.2.0(viem@2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))': + '@gemini-wallet/core@0.2.0(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))': dependencies: '@metamask/rpc-errors': 7.0.2 eventemitter3: 5.0.1 - viem: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + viem: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) transitivePeerDependencies: - supports-color - '@gerrit0/mini-shiki@3.12.2': + '@gerrit0/mini-shiki@3.13.1': dependencies: - '@shikijs/engine-oniguruma': 3.12.2 - '@shikijs/langs': 3.12.2 - '@shikijs/themes': 3.12.2 - '@shikijs/types': 3.12.2 + '@shikijs/engine-oniguruma': 3.13.0 + '@shikijs/langs': 3.13.0 + '@shikijs/themes': 3.13.0 + '@shikijs/types': 3.13.0 '@shikijs/vscode-textmate': 10.0.2 - '@google-cloud/monitoring@5.3.0': + '@google-cloud/monitoring@5.3.1': dependencies: google-gax: 5.0.4 transitivePeerDependencies: - supports-color - '@grpc/grpc-js@1.13.4': + '@grpc/grpc-js@1.14.0': dependencies: - '@grpc/proto-loader': 0.7.15 + '@grpc/proto-loader': 0.8.0 '@js-sdsl/ordered-map': 4.4.2 - '@grpc/proto-loader@0.7.15': - dependencies: - lodash.camelcase: 4.3.0 - long: 5.3.2 - protobufjs: 7.5.4 - yargs: 17.7.2 - '@grpc/proto-loader@0.8.0': dependencies: lodash.camelcase: 4.3.0 @@ -17719,134 +19421,136 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@inquirer/checkbox@4.2.2(@types/node@20.19.13)': + '@inquirer/ansi@1.0.1': {} + + '@inquirer/checkbox@4.3.0(@types/node@20.0.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@20.19.13) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@20.19.13) - ansi-escapes: 4.3.2 + '@inquirer/ansi': 1.0.1 + '@inquirer/core': 10.3.0(@types/node@20.0.0) + '@inquirer/figures': 1.0.14 + '@inquirer/type': 3.0.9(@types/node@20.0.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.19.13 + '@types/node': 20.0.0 - '@inquirer/confirm@5.1.16(@types/node@20.19.13)': + '@inquirer/confirm@5.1.19(@types/node@20.0.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@20.19.13) - '@inquirer/type': 3.0.8(@types/node@20.19.13) + '@inquirer/core': 10.3.0(@types/node@20.0.0) + '@inquirer/type': 3.0.9(@types/node@20.0.0) optionalDependencies: - '@types/node': 20.19.13 + '@types/node': 20.0.0 - '@inquirer/core@10.2.0(@types/node@20.19.13)': + '@inquirer/core@10.3.0(@types/node@20.0.0)': dependencies: - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@20.19.13) - ansi-escapes: 4.3.2 + '@inquirer/ansi': 1.0.1 + '@inquirer/figures': 1.0.14 + '@inquirer/type': 3.0.9(@types/node@20.0.0) cli-width: 4.1.0 mute-stream: 2.0.0 signal-exit: 4.1.0 wrap-ansi: 6.2.0 yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.19.13 + '@types/node': 20.0.0 - '@inquirer/editor@4.2.18(@types/node@20.19.13)': + '@inquirer/editor@4.2.21(@types/node@20.0.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@20.19.13) - '@inquirer/external-editor': 1.0.1(@types/node@20.19.13) - '@inquirer/type': 3.0.8(@types/node@20.19.13) + '@inquirer/core': 10.3.0(@types/node@20.0.0) + '@inquirer/external-editor': 1.0.2(@types/node@20.0.0) + '@inquirer/type': 3.0.9(@types/node@20.0.0) optionalDependencies: - '@types/node': 20.19.13 + '@types/node': 20.0.0 - '@inquirer/expand@4.0.18(@types/node@20.19.13)': + '@inquirer/expand@4.0.21(@types/node@20.0.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@20.19.13) - '@inquirer/type': 3.0.8(@types/node@20.19.13) + '@inquirer/core': 10.3.0(@types/node@20.0.0) + '@inquirer/type': 3.0.9(@types/node@20.0.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.19.13 + '@types/node': 20.0.0 - '@inquirer/external-editor@1.0.1(@types/node@20.19.13)': + '@inquirer/external-editor@1.0.2(@types/node@20.0.0)': dependencies: chardet: 2.1.0 - iconv-lite: 0.6.3 + iconv-lite: 0.7.0 optionalDependencies: - '@types/node': 20.19.13 + '@types/node': 20.0.0 - '@inquirer/figures@1.0.13': {} + '@inquirer/figures@1.0.14': {} - '@inquirer/input@4.2.2(@types/node@20.19.13)': + '@inquirer/input@4.2.5(@types/node@20.0.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@20.19.13) - '@inquirer/type': 3.0.8(@types/node@20.19.13) + '@inquirer/core': 10.3.0(@types/node@20.0.0) + '@inquirer/type': 3.0.9(@types/node@20.0.0) optionalDependencies: - '@types/node': 20.19.13 + '@types/node': 20.0.0 - '@inquirer/number@3.0.18(@types/node@20.19.13)': + '@inquirer/number@3.0.21(@types/node@20.0.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@20.19.13) - '@inquirer/type': 3.0.8(@types/node@20.19.13) + '@inquirer/core': 10.3.0(@types/node@20.0.0) + '@inquirer/type': 3.0.9(@types/node@20.0.0) optionalDependencies: - '@types/node': 20.19.13 + '@types/node': 20.0.0 - '@inquirer/password@4.0.18(@types/node@20.19.13)': + '@inquirer/password@4.0.21(@types/node@20.0.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@20.19.13) - '@inquirer/type': 3.0.8(@types/node@20.19.13) - ansi-escapes: 4.3.2 + '@inquirer/ansi': 1.0.1 + '@inquirer/core': 10.3.0(@types/node@20.0.0) + '@inquirer/type': 3.0.9(@types/node@20.0.0) optionalDependencies: - '@types/node': 20.19.13 - - '@inquirer/prompts@7.8.4(@types/node@20.19.13)': - dependencies: - '@inquirer/checkbox': 4.2.2(@types/node@20.19.13) - '@inquirer/confirm': 5.1.16(@types/node@20.19.13) - '@inquirer/editor': 4.2.18(@types/node@20.19.13) - '@inquirer/expand': 4.0.18(@types/node@20.19.13) - '@inquirer/input': 4.2.2(@types/node@20.19.13) - '@inquirer/number': 3.0.18(@types/node@20.19.13) - '@inquirer/password': 4.0.18(@types/node@20.19.13) - '@inquirer/rawlist': 4.1.6(@types/node@20.19.13) - '@inquirer/search': 3.1.1(@types/node@20.19.13) - '@inquirer/select': 4.3.2(@types/node@20.19.13) + '@types/node': 20.0.0 + + '@inquirer/prompts@7.9.0(@types/node@20.0.0)': + dependencies: + '@inquirer/checkbox': 4.3.0(@types/node@20.0.0) + '@inquirer/confirm': 5.1.19(@types/node@20.0.0) + '@inquirer/editor': 4.2.21(@types/node@20.0.0) + '@inquirer/expand': 4.0.21(@types/node@20.0.0) + '@inquirer/input': 4.2.5(@types/node@20.0.0) + '@inquirer/number': 3.0.21(@types/node@20.0.0) + '@inquirer/password': 4.0.21(@types/node@20.0.0) + '@inquirer/rawlist': 4.1.9(@types/node@20.0.0) + '@inquirer/search': 3.2.0(@types/node@20.0.0) + '@inquirer/select': 4.4.0(@types/node@20.0.0) optionalDependencies: - '@types/node': 20.19.13 + '@types/node': 20.0.0 - '@inquirer/rawlist@4.1.6(@types/node@20.19.13)': + '@inquirer/rawlist@4.1.9(@types/node@20.0.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@20.19.13) - '@inquirer/type': 3.0.8(@types/node@20.19.13) + '@inquirer/core': 10.3.0(@types/node@20.0.0) + '@inquirer/type': 3.0.9(@types/node@20.0.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.19.13 + '@types/node': 20.0.0 - '@inquirer/search@3.1.1(@types/node@20.19.13)': + '@inquirer/search@3.2.0(@types/node@20.0.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@20.19.13) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@20.19.13) + '@inquirer/core': 10.3.0(@types/node@20.0.0) + '@inquirer/figures': 1.0.14 + '@inquirer/type': 3.0.9(@types/node@20.0.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.19.13 + '@types/node': 20.0.0 - '@inquirer/select@4.3.2(@types/node@20.19.13)': + '@inquirer/select@4.4.0(@types/node@20.0.0)': dependencies: - '@inquirer/core': 10.2.0(@types/node@20.19.13) - '@inquirer/figures': 1.0.13 - '@inquirer/type': 3.0.8(@types/node@20.19.13) - ansi-escapes: 4.3.2 + '@inquirer/ansi': 1.0.1 + '@inquirer/core': 10.3.0(@types/node@20.0.0) + '@inquirer/figures': 1.0.14 + '@inquirer/type': 3.0.9(@types/node@20.0.0) yoctocolors-cjs: 2.1.3 optionalDependencies: - '@types/node': 20.19.13 + '@types/node': 20.0.0 - '@inquirer/type@3.0.8(@types/node@20.19.13)': + '@inquirer/type@3.0.9(@types/node@20.0.0)': optionalDependencies: - '@types/node': 20.19.13 + '@types/node': 20.0.0 - '@ioredis/commands@1.3.1': {} + '@ioredis/commands@1.4.0': {} '@ipld/dag-pb@4.1.5': dependencies: - multiformats: 13.4.0 + multiformats: 13.4.1 '@isaacs/balanced-match@4.0.1': {} @@ -17882,7 +19586,16 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3))': + '@jest/console@30.2.0': + dependencies: + '@jest/types': 30.2.0 + '@types/node': 20.0.0 + chalk: 4.1.2 + jest-message-util: 30.2.0 + jest-util: 30.2.0 + slash: 3.0.0 + + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -17896,7 +19609,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -17917,6 +19630,44 @@ snapshots: - supports-color - ts-node + '@jest/core@30.2.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3))': + dependencies: + '@jest/console': 30.2.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 + '@types/node': 20.0.0 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + ci-info: 4.3.1 + exit-x: 0.2.2 + graceful-fs: 4.2.11 + jest-changed-files: 30.2.0 + jest-config: 30.2.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)) + jest-haste-map: 30.2.0 + jest-message-util: 30.2.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 + slash: 3.0.0 + transitivePeerDependencies: + - babel-plugin-macros + - esbuild-register + - supports-color + - ts-node + + '@jest/diff-sequences@30.0.1': {} + '@jest/environment@29.7.0': dependencies: '@jest/fake-timers': 29.7.0 @@ -17924,10 +19675,21 @@ snapshots: '@types/node': 20.0.0 jest-mock: 29.7.0 + '@jest/environment@30.2.0': + dependencies: + '@jest/fake-timers': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 20.0.0 + jest-mock: 30.2.0 + '@jest/expect-utils@29.7.0': dependencies: jest-get-type: 29.6.3 + '@jest/expect-utils@30.2.0': + dependencies: + '@jest/get-type': 30.1.0 + '@jest/expect@29.7.0': dependencies: expect: 29.7.0 @@ -17935,6 +19697,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@jest/expect@30.2.0': + dependencies: + expect: 30.2.0 + jest-snapshot: 30.2.0 + transitivePeerDependencies: + - supports-color + '@jest/fake-timers@29.7.0': dependencies: '@jest/types': 29.6.3 @@ -17944,6 +19713,17 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 + '@jest/fake-timers@30.2.0': + dependencies: + '@jest/types': 30.2.0 + '@sinonjs/fake-timers': 13.0.5 + '@types/node': 20.0.0 + jest-message-util: 30.2.0 + jest-mock: 30.2.0 + jest-util: 30.2.0 + + '@jest/get-type@30.1.0': {} + '@jest/globals@29.7.0': dependencies: '@jest/environment': 29.7.0 @@ -17953,6 +19733,20 @@ snapshots: transitivePeerDependencies: - supports-color + '@jest/globals@30.2.0': + dependencies: + '@jest/environment': 30.2.0 + '@jest/expect': 30.2.0 + '@jest/types': 30.2.0 + jest-mock: 30.2.0 + transitivePeerDependencies: + - supports-color + + '@jest/pattern@30.0.1': + dependencies: + '@types/node': 20.0.0 + jest-regex-util: 30.0.1 + '@jest/reporters@29.7.0': dependencies: '@bcoe/v8-coverage': 0.2.3 @@ -17963,7 +19757,7 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 '@types/node': 20.0.0 chalk: 4.1.2 - collect-v8-coverage: 1.0.2 + collect-v8-coverage: 1.0.3 exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.11 @@ -17982,22 +19776,74 @@ snapshots: transitivePeerDependencies: - supports-color + '@jest/reporters@30.2.0': + 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 + '@jridgewell/trace-mapping': 0.3.31 + '@types/node': 20.0.0 + chalk: 4.1.2 + collect-v8-coverage: 1.0.3 + exit-x: 0.2.2 + glob: 10.4.5 + graceful-fs: 4.2.11 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 6.0.3 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6 + istanbul-reports: 3.2.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.3.0 + transitivePeerDependencies: + - supports-color + '@jest/schemas@29.6.3': dependencies: '@sinclair/typebox': 0.27.8 + '@jest/schemas@30.0.5': + dependencies: + '@sinclair/typebox': 0.34.41 + + '@jest/snapshot-utils@30.2.0': + dependencies: + '@jest/types': 30.2.0 + chalk: 4.1.2 + graceful-fs: 4.2.11 + natural-compare: 1.4.0 + '@jest/source-map@29.6.3': dependencies: '@jridgewell/trace-mapping': 0.3.31 callsites: 3.1.0 graceful-fs: 4.2.11 + '@jest/source-map@30.0.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + callsites: 3.1.0 + graceful-fs: 4.2.11 + '@jest/test-result@29.7.0': dependencies: '@jest/console': 29.7.0 '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 - collect-v8-coverage: 1.0.2 + collect-v8-coverage: 1.0.3 + + '@jest/test-result@30.2.0': + dependencies: + '@jest/console': 30.2.0 + '@jest/types': 30.2.0 + '@types/istanbul-lib-coverage': 2.0.6 + collect-v8-coverage: 1.0.3 '@jest/test-sequencer@29.7.0': dependencies: @@ -18006,9 +19852,16 @@ snapshots: jest-haste-map: 29.7.0 slash: 3.0.0 + '@jest/test-sequencer@30.2.0': + dependencies: + '@jest/test-result': 30.2.0 + graceful-fs: 4.2.11 + jest-haste-map: 30.2.0 + slash: 3.0.0 + '@jest/transform@29.7.0': dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.31 babel-plugin-istanbul: 6.1.1 @@ -18026,6 +19879,26 @@ snapshots: transitivePeerDependencies: - supports-color + '@jest/transform@30.2.0': + dependencies: + '@babel/core': 7.28.5 + '@jest/types': 30.2.0 + '@jridgewell/trace-mapping': 0.3.31 + 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-regex-util: 30.0.1 + jest-util: 30.2.0 + micromatch: 4.0.8 + pirates: 4.0.7 + slash: 3.0.0 + write-file-atomic: 5.0.1 + transitivePeerDependencies: + - supports-color + '@jest/types@29.6.3': dependencies: '@jest/schemas': 29.6.3 @@ -18035,6 +19908,16 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 + '@jest/types@30.2.0': + dependencies: + '@jest/pattern': 30.0.1 + '@jest/schemas': 30.0.5 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 20.0.0 + '@types/yargs': 17.0.33 + chalk: 4.1.2 + '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -18097,7 +19980,7 @@ snapshots: '@lit-protocol/lit-status-sdk@0.1.8(typescript@5.8.3)': dependencies: - '@google-cloud/monitoring': 5.3.0 + '@google-cloud/monitoring': 5.3.1 cors: 2.8.5 express: 5.1.0 prom-client: 15.1.3 @@ -18238,7 +20121,7 @@ snapshots: '@metamask/rpc-errors@7.0.2': dependencies: - '@metamask/utils': 11.7.0 + '@metamask/utils': 11.8.1 fast-safe-stringify: 2.1.1 transitivePeerDependencies: - supports-color @@ -18247,13 +20130,18 @@ snapshots: '@metamask/safe-event-emitter@3.1.2': {} - '@metamask/sdk-communication-layer@0.32.0(cross-fetch@4.1.0(encoding@0.1.13))(eciesjs@0.4.15)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.8.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + '@metamask/sdk-analytics@0.0.5': + dependencies: + openapi-fetch: 0.13.8 + + '@metamask/sdk-communication-layer@0.33.1(cross-fetch@4.1.0)(eciesjs@0.4.16)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.8.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: + '@metamask/sdk-analytics': 0.0.5 bufferutil: 4.0.9 - cross-fetch: 4.1.0(encoding@0.1.13) + cross-fetch: 4.1.0 date-fns: 2.30.0 - debug: 4.4.1(supports-color@8.1.1) - eciesjs: 0.4.15 + debug: 4.3.4 + eciesjs: 0.4.16 eventemitter2: 6.4.9 readable-stream: 3.6.2 socket.io-client: 4.8.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -18262,22 +20150,23 @@ snapshots: transitivePeerDependencies: - supports-color - '@metamask/sdk-install-modal-web@0.32.0': + '@metamask/sdk-install-modal-web@0.32.1': dependencies: '@paulmillr/qr': 0.2.1 - '@metamask/sdk@0.32.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@metamask/sdk@0.33.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: '@babel/runtime': 7.28.4 '@metamask/onboarding': 1.0.1 '@metamask/providers': 16.1.0 - '@metamask/sdk-communication-layer': 0.32.0(cross-fetch@4.1.0(encoding@0.1.13))(eciesjs@0.4.15)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.8.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)) - '@metamask/sdk-install-modal-web': 0.32.0 + '@metamask/sdk-analytics': 0.0.5 + '@metamask/sdk-communication-layer': 0.33.1(cross-fetch@4.1.0)(eciesjs@0.4.16)(eventemitter2@6.4.9)(readable-stream@3.6.2)(socket.io-client@4.8.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@metamask/sdk-install-modal-web': 0.32.1 '@paulmillr/qr': 0.2.1 bowser: 2.12.1 - cross-fetch: 4.1.0(encoding@0.1.13) - debug: 4.4.1(supports-color@8.1.1) - eciesjs: 0.4.15 + cross-fetch: 4.1.0 + debug: 4.3.4 + eciesjs: 0.4.16 eth-rpc-errors: 4.0.3 eventemitter2: 6.4.9 obj-multiplex: 1.0.0 @@ -18295,7 +20184,7 @@ snapshots: '@metamask/superstruct@3.2.1': {} - '@metamask/utils@11.7.0': + '@metamask/utils@11.8.1': dependencies: '@ethereumjs/tx': 4.2.0 '@metamask/superstruct': 3.2.1 @@ -18303,10 +20192,10 @@ snapshots: '@scure/base': 1.2.6 '@types/debug': 4.1.12 '@types/lodash': 4.17.20 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) lodash: 4.17.21 pony-cause: 2.1.11 - semver: 7.7.2 + semver: 7.7.3 uuid: 9.0.1 transitivePeerDependencies: - supports-color @@ -18315,8 +20204,8 @@ snapshots: dependencies: '@ethereumjs/tx': 4.2.0 '@types/debug': 4.1.12 - debug: 4.4.1(supports-color@8.1.1) - semver: 7.7.2 + debug: 4.4.3(supports-color@8.1.1) + semver: 7.7.3 superstruct: 1.0.4 transitivePeerDependencies: - supports-color @@ -18328,9 +20217,9 @@ snapshots: '@noble/hashes': 1.8.0 '@scure/base': 1.2.6 '@types/debug': 4.1.12 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) pony-cause: 2.1.11 - semver: 7.7.2 + semver: 7.7.3 uuid: 9.0.1 transitivePeerDependencies: - supports-color @@ -18342,9 +20231,9 @@ snapshots: '@noble/hashes': 1.8.0 '@scure/base': 1.2.6 '@types/debug': 4.1.12 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) pony-cause: 2.1.11 - semver: 7.7.2 + semver: 7.7.3 uuid: 9.0.1 transitivePeerDependencies: - supports-color @@ -18371,13 +20260,20 @@ snapshots: '@multiformats/murmur3@2.1.8': dependencies: - multiformats: 13.4.0 + multiformats: 13.4.1 murmurhash3js-revisited: 3.0.0 + '@napi-rs/wasm-runtime@0.2.12': + dependencies: + '@emnapi/core': 1.6.0 + '@emnapi/runtime': 1.6.0 + '@tybys/wasm-util': 0.10.1 + optional: true + '@napi-rs/wasm-runtime@0.2.4': dependencies: - '@emnapi/core': 1.5.0 - '@emnapi/runtime': 1.5.0 + '@emnapi/core': 1.6.0 + '@emnapi/runtime': 1.6.0 '@tybys/wasm-util': 0.9.0 '@ngneat/falso@7.4.0': @@ -18425,8 +20321,6 @@ snapshots: '@noble/hashes@1.7.1': {} - '@noble/hashes@1.7.2': {} - '@noble/hashes@1.8.0': {} '@noble/secp256k1@1.7.1': {} @@ -18452,15 +20346,15 @@ snapshots: ignore: 5.3.2 minimatch: 9.0.3 nx: 21.2.1 - semver: 7.7.2 + semver: 7.7.3 tmp: 0.2.5 tslib: 2.8.1 yargs-parser: 21.1.1 - '@nx/esbuild@21.2.1(@babel/traverse@7.28.4)(esbuild@0.19.12)(nx@21.2.1)': + '@nx/esbuild@21.2.1(@babel/traverse@7.28.5)(esbuild@0.19.12)(nx@21.2.1)': dependencies: '@nx/devkit': 21.2.1(nx@21.2.1) - '@nx/js': 21.2.1(@babel/traverse@7.28.4)(nx@21.2.1) + '@nx/js': 21.2.1(@babel/traverse@7.28.5)(nx@21.2.1) picocolors: 1.1.1 tinyglobby: 0.2.15 tsconfig-paths: 4.2.0 @@ -18476,18 +20370,18 @@ snapshots: - supports-color - verdaccio - '@nx/eslint-plugin@21.2.1(@babel/traverse@7.28.4)(@typescript-eslint/parser@6.21.0(eslint@9.34.0)(typescript@5.8.3))(eslint-config-prettier@9.1.0(eslint@9.34.0))(eslint@9.34.0)(nx@21.2.1)(typescript@5.8.3)': + '@nx/eslint-plugin@21.2.1(@babel/traverse@7.28.5)(@typescript-eslint/parser@6.21.0(eslint@9.34.0)(typescript@5.8.3))(eslint-config-prettier@9.1.0(eslint@9.34.0))(eslint@9.34.0)(nx@21.2.1)(typescript@5.8.3)': dependencies: '@nx/devkit': 21.2.1(nx@21.2.1) - '@nx/js': 21.2.1(@babel/traverse@7.28.4)(nx@21.2.1) + '@nx/js': 21.2.1(@babel/traverse@7.28.5)(nx@21.2.1) '@typescript-eslint/parser': 6.21.0(eslint@9.34.0)(typescript@5.8.3) - '@typescript-eslint/type-utils': 8.43.0(eslint@9.34.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.43.0(eslint@9.34.0)(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.46.2(eslint@9.34.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.46.2(eslint@9.34.0)(typescript@5.8.3) chalk: 4.1.2 confusing-browser-globals: 1.0.11 globals: 15.15.0 - jsonc-eslint-parser: 2.4.0 - semver: 7.7.2 + jsonc-eslint-parser: 2.4.1 + semver: 7.7.3 tslib: 2.8.1 optionalDependencies: eslint-config-prettier: 9.1.0(eslint@9.34.0) @@ -18502,12 +20396,12 @@ snapshots: - typescript - verdaccio - '@nx/eslint@21.2.1(@babel/traverse@7.28.4)(@zkochan/js-yaml@0.0.7)(eslint@9.34.0)(nx@21.2.1)': + '@nx/eslint@21.2.1(@babel/traverse@7.28.5)(@zkochan/js-yaml@0.0.7)(eslint@9.34.0)(nx@21.2.1)': dependencies: '@nx/devkit': 21.2.1(nx@21.2.1) - '@nx/js': 21.2.1(@babel/traverse@7.28.4)(nx@21.2.1) + '@nx/js': 21.2.1(@babel/traverse@7.28.5)(nx@21.2.1) eslint: 9.34.0 - semver: 7.7.2 + semver: 7.7.3 tslib: 2.8.1 typescript: 5.8.3 optionalDependencies: @@ -18521,21 +20415,21 @@ snapshots: - supports-color - verdaccio - '@nx/jest@21.2.1(@babel/traverse@7.28.4)(@types/node@20.19.13)(babel-plugin-macros@3.1.0)(nx@21.2.1)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3))(typescript@5.8.3)': + '@nx/jest@21.2.1(@babel/traverse@7.28.5)(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(nx@21.2.1)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3))(typescript@5.8.3)': dependencies: '@jest/reporters': 29.7.0 '@jest/test-result': 29.7.0 '@nx/devkit': 21.2.1(nx@21.2.1) - '@nx/js': 21.2.1(@babel/traverse@7.28.4)(nx@21.2.1) + '@nx/js': 21.2.1(@babel/traverse@7.28.5)(nx@21.2.1) '@phenomnomnominal/tsquery': 5.0.1(typescript@5.8.3) identity-obj-proxy: 3.0.0 - jest-config: 29.7.0(@types/node@20.19.13)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)) jest-resolve: 29.7.0 jest-util: 29.7.0 minimatch: 9.0.3 picocolors: 1.1.1 resolve.exports: 2.0.3 - semver: 7.7.2 + semver: 7.7.3 tslib: 2.8.1 yargs-parser: 21.1.1 transitivePeerDependencies: @@ -18552,21 +20446,21 @@ snapshots: - typescript - verdaccio - '@nx/js@21.2.1(@babel/traverse@7.28.4)(nx@21.2.1)': + '@nx/js@21.2.1(@babel/traverse@7.28.5)(nx@21.2.1)': dependencies: - '@babel/core': 7.28.4 - '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.4) - '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-runtime': 7.28.3(@babel/core@7.28.4) - '@babel/preset-env': 7.28.3(@babel/core@7.28.4) - '@babel/preset-typescript': 7.27.1(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/plugin-proposal-decorators': 7.28.0(@babel/core@7.28.5) + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-transform-runtime': 7.28.5(@babel/core@7.28.5) + '@babel/preset-env': 7.28.3(@babel/core@7.28.5) + '@babel/preset-typescript': 7.27.1(@babel/core@7.28.5) '@babel/runtime': 7.28.4 '@nx/devkit': 21.2.1(nx@21.2.1) '@nx/workspace': 21.2.1 '@zkochan/js-yaml': 0.0.7 - babel-plugin-const-enum: 1.2.0(@babel/core@7.28.4) + babel-plugin-const-enum: 1.2.0(@babel/core@7.28.5) babel-plugin-macros: 3.1.0 - babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.28.4)(@babel/traverse@7.28.4) + babel-plugin-transform-typescript-metadata: 0.3.2(@babel/core@7.28.5)(@babel/traverse@7.28.5) chalk: 4.1.2 columnify: 1.6.0 detect-port: 1.6.1 @@ -18579,7 +20473,7 @@ snapshots: ora: 5.3.0 picocolors: 1.1.1 picomatch: 4.0.2 - semver: 7.7.2 + semver: 7.7.3 source-map-support: 0.5.19 tinyglobby: 0.2.15 tslib: 2.8.1 @@ -18591,12 +20485,12 @@ snapshots: - nx - supports-color - '@nx/node@21.2.1(@babel/traverse@7.28.4)(@types/node@20.19.13)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.34.0)(nx@21.2.1)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3))(typescript@5.8.3)': + '@nx/node@21.2.1(@babel/traverse@7.28.5)(@types/node@20.0.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.34.0)(nx@21.2.1)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3))(typescript@5.8.3)': dependencies: '@nx/devkit': 21.2.1(nx@21.2.1) - '@nx/eslint': 21.2.1(@babel/traverse@7.28.4)(@zkochan/js-yaml@0.0.7)(eslint@9.34.0)(nx@21.2.1) - '@nx/jest': 21.2.1(@babel/traverse@7.28.4)(@types/node@20.19.13)(babel-plugin-macros@3.1.0)(nx@21.2.1)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3))(typescript@5.8.3) - '@nx/js': 21.2.1(@babel/traverse@7.28.4)(nx@21.2.1) + '@nx/eslint': 21.2.1(@babel/traverse@7.28.5)(@zkochan/js-yaml@0.0.7)(eslint@9.34.0)(nx@21.2.1) + '@nx/jest': 21.2.1(@babel/traverse@7.28.5)(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(nx@21.2.1)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3))(typescript@5.8.3) + '@nx/js': 21.2.1(@babel/traverse@7.28.5)(nx@21.2.1) kill-port: 1.6.1 tcp-port-used: 1.0.2 tslib: 2.8.1 @@ -18646,12 +20540,12 @@ snapshots: '@nx/nx-win32-x64-msvc@21.2.1': optional: true - '@nx/plugin@21.2.1(@babel/traverse@7.28.4)(@types/node@20.19.13)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.34.0)(nx@21.2.1)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3))(typescript@5.8.3)': + '@nx/plugin@21.2.1(@babel/traverse@7.28.5)(@types/node@20.0.0)(@zkochan/js-yaml@0.0.7)(babel-plugin-macros@3.1.0)(eslint@9.34.0)(nx@21.2.1)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3))(typescript@5.8.3)': dependencies: '@nx/devkit': 21.2.1(nx@21.2.1) - '@nx/eslint': 21.2.1(@babel/traverse@7.28.4)(@zkochan/js-yaml@0.0.7)(eslint@9.34.0)(nx@21.2.1) - '@nx/jest': 21.2.1(@babel/traverse@7.28.4)(@types/node@20.19.13)(babel-plugin-macros@3.1.0)(nx@21.2.1)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3))(typescript@5.8.3) - '@nx/js': 21.2.1(@babel/traverse@7.28.4)(nx@21.2.1) + '@nx/eslint': 21.2.1(@babel/traverse@7.28.5)(@zkochan/js-yaml@0.0.7)(eslint@9.34.0)(nx@21.2.1) + '@nx/jest': 21.2.1(@babel/traverse@7.28.5)(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(nx@21.2.1)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3))(typescript@5.8.3) + '@nx/js': 21.2.1(@babel/traverse@7.28.5)(nx@21.2.1) tslib: 2.8.1 transitivePeerDependencies: - '@babel/traverse' @@ -18684,20 +20578,20 @@ snapshots: - '@swc/core' - debug - '@oclif/core@4.5.3': + '@oclif/core@4.7.2': dependencies: ansi-escapes: 4.3.2 ansis: 3.17.0 clean-stack: 3.0.1 cli-spinners: 2.9.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) ejs: 3.1.10 get-package-type: 0.1.0 indent-string: 4.0.0 is-wsl: 2.2.0 lilconfig: 3.1.3 minimatch: 9.0.5 - semver: 7.7.2 + semver: 7.7.3 string-width: 4.2.3 supports-color: 8.1.1 tinyglobby: 0.2.15 @@ -18705,14 +20599,14 @@ snapshots: wordwrap: 1.0.0 wrap-ansi: 7.0.0 - '@oclif/plugin-help@6.2.32': + '@oclif/plugin-help@6.2.33': dependencies: - '@oclif/core': 4.5.3 + '@oclif/core': 4.7.2 - '@oclif/plugin-not-found@3.2.67(@types/node@20.19.13)': + '@oclif/plugin-not-found@3.2.70(@types/node@20.0.0)': dependencies: - '@inquirer/prompts': 7.8.4(@types/node@20.19.13) - '@oclif/core': 4.5.3 + '@inquirer/prompts': 7.9.0(@types/node@20.0.0) + '@oclif/core': 4.7.2 ansis: 3.17.0 fast-levenshtein: 3.0.0 transitivePeerDependencies: @@ -18761,7 +20655,7 @@ snapshots: '@opentelemetry/exporter-metrics-otlp-grpc@0.41.2(@opentelemetry/api@1.9.0)': dependencies: - '@grpc/grpc-js': 1.13.4 + '@grpc/grpc-js': 1.14.0 '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-metrics-otlp-http': 0.41.2(@opentelemetry/api@1.9.0) @@ -18792,7 +20686,7 @@ snapshots: '@opentelemetry/exporter-trace-otlp-grpc@0.43.0(@opentelemetry/api@1.9.0)': dependencies: - '@grpc/grpc-js': 1.13.4 + '@grpc/grpc-js': 1.14.0 '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.17.0(@opentelemetry/api@1.9.0) '@opentelemetry/otlp-grpc-exporter-base': 0.43.0(@opentelemetry/api@1.9.0) @@ -18839,7 +20733,7 @@ snapshots: '@opentelemetry/otlp-grpc-exporter-base@0.41.2(@opentelemetry/api@1.9.0)': dependencies: - '@grpc/grpc-js': 1.13.4 + '@grpc/grpc-js': 1.14.0 '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.15.2(@opentelemetry/api@1.9.0) '@opentelemetry/otlp-exporter-base': 0.41.2(@opentelemetry/api@1.9.0) @@ -18847,7 +20741,7 @@ snapshots: '@opentelemetry/otlp-grpc-exporter-base@0.43.0(@opentelemetry/api@1.9.0)': dependencies: - '@grpc/grpc-js': 1.13.4 + '@grpc/grpc-js': 1.14.0 '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.17.0(@opentelemetry/api@1.9.0) '@opentelemetry/otlp-exporter-base': 0.43.0(@opentelemetry/api@1.9.0) @@ -18987,13 +20881,20 @@ snapshots: esquery: 1.6.0 typescript: 5.8.3 - '@playwright/browser-chromium@1.54.2': + '@pinojs/redact@0.4.0': {} + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pkgr/core@0.2.9': {} + + '@playwright/browser-chromium@1.55.0': dependencies: - playwright-core: 1.54.2 + playwright-core: 1.55.0 - '@playwright/test@1.54.2': + '@playwright/test@1.55.0': dependencies: - playwright: 1.54.2 + playwright: 1.55.0 '@protobufjs/aspromise@1.1.2': {} @@ -19048,7 +20949,7 @@ snapshots: dependencies: big.js: 6.2.2 dayjs: 1.11.13 - viem: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) + viem: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4) transitivePeerDependencies: - bufferutil - typescript @@ -19059,20 +20960,20 @@ snapshots: dependencies: big.js: 6.2.2 dayjs: 1.11.13 - viem: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + viem: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) transitivePeerDependencies: - bufferutil - typescript - utf-8-validate - zod - '@reown/appkit-controllers@1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': + '@reown/appkit-controllers@1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': dependencies: '@reown/appkit-common': 1.7.8(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) '@reown/appkit-wallet': 1.7.8(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) - '@walletconnect/universal-provider': 2.21.0(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - valtio: 1.13.2(@types/react@19.1.13)(react@19.1.1) - viem: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@walletconnect/universal-provider': 2.21.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + valtio: 1.13.2(react@18.3.1) + viem: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -19101,14 +21002,14 @@ snapshots: - utf-8-validate - zod - '@reown/appkit-pay@1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': + '@reown/appkit-pay@1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': dependencies: '@reown/appkit-common': 1.7.8(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - '@reown/appkit-controllers': 1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - '@reown/appkit-ui': 1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - '@reown/appkit-utils': 1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@19.1.13)(react@19.1.1))(zod@3.24.3) + '@reown/appkit-controllers': 1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@reown/appkit-ui': 1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@reown/appkit-utils': 1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(react@18.3.1))(zod@3.24.3) lit: 3.3.0 - valtio: 1.13.2(@types/react@19.1.13)(react@19.1.1) + valtio: 1.13.2(react@18.3.1) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -19141,12 +21042,12 @@ snapshots: dependencies: buffer: 6.0.3 - '@reown/appkit-scaffold-ui@1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@19.1.13)(react@19.1.1))(zod@3.24.3)': + '@reown/appkit-scaffold-ui@1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(react@18.3.1))(zod@3.24.3)': dependencies: '@reown/appkit-common': 1.7.8(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - '@reown/appkit-controllers': 1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - '@reown/appkit-ui': 1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - '@reown/appkit-utils': 1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@19.1.13)(react@19.1.1))(zod@3.24.3) + '@reown/appkit-controllers': 1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@reown/appkit-ui': 1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@reown/appkit-utils': 1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(react@18.3.1))(zod@3.24.3) '@reown/appkit-wallet': 1.7.8(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) lit: 3.3.0 transitivePeerDependencies: @@ -19178,10 +21079,10 @@ snapshots: - valtio - zod - '@reown/appkit-ui@1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': + '@reown/appkit-ui@1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': dependencies: '@reown/appkit-common': 1.7.8(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - '@reown/appkit-controllers': 1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@reown/appkit-controllers': 1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) '@reown/appkit-wallet': 1.7.8(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) lit: 3.3.0 qrcode: 1.5.3 @@ -19213,16 +21114,16 @@ snapshots: - utf-8-validate - zod - '@reown/appkit-utils@1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@19.1.13)(react@19.1.1))(zod@3.24.3)': + '@reown/appkit-utils@1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(react@18.3.1))(zod@3.24.3)': dependencies: '@reown/appkit-common': 1.7.8(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - '@reown/appkit-controllers': 1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@reown/appkit-controllers': 1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) '@reown/appkit-polyfills': 1.7.8 '@reown/appkit-wallet': 1.7.8(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) '@walletconnect/logger': 2.1.2 - '@walletconnect/universal-provider': 2.21.0(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - valtio: 1.13.2(@types/react@19.1.13)(react@19.1.1) - viem: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@walletconnect/universal-provider': 2.21.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + valtio: 1.13.2(react@18.3.1) + viem: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -19262,21 +21163,21 @@ snapshots: - typescript - utf-8-validate - '@reown/appkit@1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': + '@reown/appkit@1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': dependencies: '@reown/appkit-common': 1.7.8(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - '@reown/appkit-controllers': 1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - '@reown/appkit-pay': 1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@reown/appkit-controllers': 1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@reown/appkit-pay': 1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) '@reown/appkit-polyfills': 1.7.8 - '@reown/appkit-scaffold-ui': 1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@19.1.13)(react@19.1.1))(zod@3.24.3) - '@reown/appkit-ui': 1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - '@reown/appkit-utils': 1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(@types/react@19.1.13)(react@19.1.1))(zod@3.24.3) + '@reown/appkit-scaffold-ui': 1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(react@18.3.1))(zod@3.24.3) + '@reown/appkit-ui': 1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@reown/appkit-utils': 1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(valtio@1.13.2(react@18.3.1))(zod@3.24.3) '@reown/appkit-wallet': 1.7.8(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10) - '@walletconnect/types': 2.21.0(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) - '@walletconnect/universal-provider': 2.21.0(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@walletconnect/types': 2.21.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) + '@walletconnect/universal-provider': 2.21.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) bs58: 6.0.0 - valtio: 1.13.2(@types/react@19.1.13)(react@19.1.1) - viem: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + valtio: 1.13.2(react@18.3.1) + viem: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -19320,7 +21221,7 @@ snapshots: '@safe-global/safe-apps-sdk@9.1.0(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': dependencies: '@safe-global/safe-gateway-typescript-sdk': 3.23.1 - viem: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + viem: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) transitivePeerDependencies: - bufferutil - typescript @@ -19348,7 +21249,7 @@ snapshots: '@scure/bip32@1.6.2': dependencies: '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.2 + '@noble/hashes': 1.7.1 '@scure/base': 1.2.6 '@scure/bip32@1.7.0': @@ -19369,7 +21270,7 @@ snapshots: '@scure/bip39@1.5.4': dependencies: - '@noble/hashes': 1.7.2 + '@noble/hashes': 1.7.1 '@scure/base': 1.2.6 '@scure/bip39@1.6.0': @@ -19377,20 +21278,20 @@ snapshots: '@noble/hashes': 1.8.0 '@scure/base': 1.2.6 - '@shikijs/engine-oniguruma@3.12.2': + '@shikijs/engine-oniguruma@3.13.0': dependencies: - '@shikijs/types': 3.12.2 + '@shikijs/types': 3.13.0 '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@3.12.2': + '@shikijs/langs@3.13.0': dependencies: - '@shikijs/types': 3.12.2 + '@shikijs/types': 3.13.0 - '@shikijs/themes@3.12.2': + '@shikijs/themes@3.13.0': dependencies: - '@shikijs/types': 3.12.2 + '@shikijs/types': 3.13.0 - '@shikijs/types@3.12.2': + '@shikijs/types@3.13.0': dependencies: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 @@ -19409,7 +21310,7 @@ snapshots: dependencies: '@simplewebauthn/typescript-types': 7.4.0 - '@simplewebauthn/server@6.2.1(encoding@0.1.13)': + '@simplewebauthn/server@6.2.1': dependencies: '@noble/ed25519': 1.7.5 '@peculiar/asn1-android': 2.5.0 @@ -19418,10 +21319,10 @@ snapshots: '@simplewebauthn/typescript-types': 6.2.1 base64url: 3.0.1 cbor: 5.2.0 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) jsrsasign: 10.9.0 jwk-to-pem: 2.0.7 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 transitivePeerDependencies: - encoding - supports-color @@ -19432,6 +21333,8 @@ snapshots: '@sinclair/typebox@0.27.8': {} + '@sinclair/typebox@0.34.41': {} + '@sindresorhus/is@4.6.0': {} '@sinonjs/commons@3.0.1': @@ -19442,210 +21345,271 @@ snapshots: dependencies: '@sinonjs/commons': 3.0.1 - '@smithy/abort-controller@4.1.1': + '@sinonjs/fake-timers@13.0.5': + dependencies: + '@sinonjs/commons': 3.0.1 + + '@smithy/abort-controller@4.2.3': dependencies: - '@smithy/types': 4.5.0 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/config-resolver@4.2.1': + '@smithy/chunked-blob-reader-native@4.2.1': dependencies: - '@smithy/node-config-provider': 4.2.1 - '@smithy/types': 4.5.0 - '@smithy/util-config-provider': 4.1.0 - '@smithy/util-middleware': 4.1.1 + '@smithy/util-base64': 4.3.0 tslib: 2.8.1 - '@smithy/core@3.11.0': - dependencies: - '@smithy/middleware-serde': 4.1.1 - '@smithy/protocol-http': 5.2.1 - '@smithy/types': 4.5.0 - '@smithy/util-base64': 4.1.0 - '@smithy/util-body-length-browser': 4.1.0 - '@smithy/util-middleware': 4.1.1 - '@smithy/util-stream': 4.3.1 - '@smithy/util-utf8': 4.1.0 - '@types/uuid': 9.0.8 + '@smithy/chunked-blob-reader@5.2.0': + dependencies: + tslib: 2.8.1 + + '@smithy/config-resolver@4.4.0': + dependencies: + '@smithy/node-config-provider': 4.3.3 + '@smithy/types': 4.8.0 + '@smithy/util-config-provider': 4.2.0 + '@smithy/util-endpoints': 3.2.3 + '@smithy/util-middleware': 4.2.3 + tslib: 2.8.1 + + '@smithy/core@3.17.1': + dependencies: + '@smithy/middleware-serde': 4.2.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/types': 4.8.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-body-length-browser': 4.2.0 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-stream': 4.5.4 + '@smithy/util-utf8': 4.2.0 + '@smithy/uuid': 1.1.0 + tslib: 2.8.1 + + '@smithy/credential-provider-imds@4.2.3': + dependencies: + '@smithy/node-config-provider': 4.3.3 + '@smithy/property-provider': 4.2.3 + '@smithy/types': 4.8.0 + '@smithy/url-parser': 4.2.3 + tslib: 2.8.1 + + '@smithy/eventstream-codec@4.2.3': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@smithy/types': 4.8.0 + '@smithy/util-hex-encoding': 4.2.0 + tslib: 2.8.1 + + '@smithy/eventstream-serde-browser@4.2.3': + dependencies: + '@smithy/eventstream-serde-universal': 4.2.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 - uuid: 9.0.1 - '@smithy/credential-provider-imds@4.1.1': + '@smithy/eventstream-serde-config-resolver@4.3.3': dependencies: - '@smithy/node-config-provider': 4.2.1 - '@smithy/property-provider': 4.1.1 - '@smithy/types': 4.5.0 - '@smithy/url-parser': 4.1.1 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/fetch-http-handler@5.2.1': + '@smithy/eventstream-serde-node@4.2.3': dependencies: - '@smithy/protocol-http': 5.2.1 - '@smithy/querystring-builder': 4.1.1 - '@smithy/types': 4.5.0 - '@smithy/util-base64': 4.1.0 + '@smithy/eventstream-serde-universal': 4.2.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/hash-node@4.1.1': + '@smithy/eventstream-serde-universal@4.2.3': dependencies: - '@smithy/types': 4.5.0 - '@smithy/util-buffer-from': 4.1.0 - '@smithy/util-utf8': 4.1.0 + '@smithy/eventstream-codec': 4.2.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/invalid-dependency@4.1.1': + '@smithy/fetch-http-handler@5.3.4': dependencies: - '@smithy/types': 4.5.0 + '@smithy/protocol-http': 5.3.3 + '@smithy/querystring-builder': 4.2.3 + '@smithy/types': 4.8.0 + '@smithy/util-base64': 4.3.0 + tslib: 2.8.1 + + '@smithy/hash-blob-browser@4.2.4': + dependencies: + '@smithy/chunked-blob-reader': 5.2.0 + '@smithy/chunked-blob-reader-native': 4.2.1 + '@smithy/types': 4.8.0 + tslib: 2.8.1 + + '@smithy/hash-node@4.2.3': + dependencies: + '@smithy/types': 4.8.0 + '@smithy/util-buffer-from': 4.2.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@smithy/hash-stream-node@4.2.3': + dependencies: + '@smithy/types': 4.8.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@smithy/invalid-dependency@4.2.3': + dependencies: + '@smithy/types': 4.8.0 tslib: 2.8.1 '@smithy/is-array-buffer@2.2.0': dependencies: tslib: 2.8.1 - '@smithy/is-array-buffer@4.1.0': + '@smithy/is-array-buffer@4.2.0': dependencies: tslib: 2.8.1 - '@smithy/middleware-compression@4.2.1': + '@smithy/md5-js@4.2.3': dependencies: - '@smithy/core': 3.11.0 - '@smithy/is-array-buffer': 4.1.0 - '@smithy/node-config-provider': 4.2.1 - '@smithy/protocol-http': 5.2.1 - '@smithy/types': 4.5.0 - '@smithy/util-config-provider': 4.1.0 - '@smithy/util-middleware': 4.1.1 - '@smithy/util-utf8': 4.1.0 + '@smithy/types': 4.8.0 + '@smithy/util-utf8': 4.2.0 + tslib: 2.8.1 + + '@smithy/middleware-compression@4.3.5': + dependencies: + '@smithy/core': 3.17.1 + '@smithy/is-array-buffer': 4.2.0 + '@smithy/node-config-provider': 4.3.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/types': 4.8.0 + '@smithy/util-config-provider': 4.2.0 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-utf8': 4.2.0 fflate: 0.8.1 tslib: 2.8.1 - '@smithy/middleware-content-length@4.1.1': + '@smithy/middleware-content-length@4.2.3': dependencies: - '@smithy/protocol-http': 5.2.1 - '@smithy/types': 4.5.0 + '@smithy/protocol-http': 5.3.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/middleware-endpoint@4.2.1': + '@smithy/middleware-endpoint@4.3.5': dependencies: - '@smithy/core': 3.11.0 - '@smithy/middleware-serde': 4.1.1 - '@smithy/node-config-provider': 4.2.1 - '@smithy/shared-ini-file-loader': 4.1.1 - '@smithy/types': 4.5.0 - '@smithy/url-parser': 4.1.1 - '@smithy/util-middleware': 4.1.1 + '@smithy/core': 3.17.1 + '@smithy/middleware-serde': 4.2.3 + '@smithy/node-config-provider': 4.3.3 + '@smithy/shared-ini-file-loader': 4.3.3 + '@smithy/types': 4.8.0 + '@smithy/url-parser': 4.2.3 + '@smithy/util-middleware': 4.2.3 tslib: 2.8.1 - '@smithy/middleware-retry@4.2.1': + '@smithy/middleware-retry@4.4.5': dependencies: - '@smithy/node-config-provider': 4.2.1 - '@smithy/protocol-http': 5.2.1 - '@smithy/service-error-classification': 4.1.1 - '@smithy/smithy-client': 4.6.1 - '@smithy/types': 4.5.0 - '@smithy/util-middleware': 4.1.1 - '@smithy/util-retry': 4.1.1 - '@types/uuid': 9.0.8 + '@smithy/node-config-provider': 4.3.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/service-error-classification': 4.2.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-retry': 4.2.3 + '@smithy/uuid': 1.1.0 tslib: 2.8.1 - uuid: 9.0.1 - '@smithy/middleware-serde@4.1.1': + '@smithy/middleware-serde@4.2.3': dependencies: - '@smithy/protocol-http': 5.2.1 - '@smithy/types': 4.5.0 + '@smithy/protocol-http': 5.3.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/middleware-stack@4.1.1': + '@smithy/middleware-stack@4.2.3': dependencies: - '@smithy/types': 4.5.0 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/node-config-provider@4.2.1': + '@smithy/node-config-provider@4.3.3': dependencies: - '@smithy/property-provider': 4.1.1 - '@smithy/shared-ini-file-loader': 4.1.1 - '@smithy/types': 4.5.0 + '@smithy/property-provider': 4.2.3 + '@smithy/shared-ini-file-loader': 4.3.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/node-http-handler@4.2.1': + '@smithy/node-http-handler@4.4.3': dependencies: - '@smithy/abort-controller': 4.1.1 - '@smithy/protocol-http': 5.2.1 - '@smithy/querystring-builder': 4.1.1 - '@smithy/types': 4.5.0 + '@smithy/abort-controller': 4.2.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/querystring-builder': 4.2.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/property-provider@4.1.1': + '@smithy/property-provider@4.2.3': dependencies: - '@smithy/types': 4.5.0 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/protocol-http@5.2.1': + '@smithy/protocol-http@5.3.3': dependencies: - '@smithy/types': 4.5.0 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/querystring-builder@4.1.1': + '@smithy/querystring-builder@4.2.3': dependencies: - '@smithy/types': 4.5.0 - '@smithy/util-uri-escape': 4.1.0 + '@smithy/types': 4.8.0 + '@smithy/util-uri-escape': 4.2.0 tslib: 2.8.1 - '@smithy/querystring-parser@4.1.1': + '@smithy/querystring-parser@4.2.3': dependencies: - '@smithy/types': 4.5.0 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/service-error-classification@4.1.1': + '@smithy/service-error-classification@4.2.3': dependencies: - '@smithy/types': 4.5.0 + '@smithy/types': 4.8.0 - '@smithy/shared-ini-file-loader@4.1.1': + '@smithy/shared-ini-file-loader@4.3.3': dependencies: - '@smithy/types': 4.5.0 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/signature-v4@5.2.1': + '@smithy/signature-v4@5.3.3': dependencies: - '@smithy/is-array-buffer': 4.1.0 - '@smithy/protocol-http': 5.2.1 - '@smithy/types': 4.5.0 - '@smithy/util-hex-encoding': 4.1.0 - '@smithy/util-middleware': 4.1.1 - '@smithy/util-uri-escape': 4.1.0 - '@smithy/util-utf8': 4.1.0 + '@smithy/is-array-buffer': 4.2.0 + '@smithy/protocol-http': 5.3.3 + '@smithy/types': 4.8.0 + '@smithy/util-hex-encoding': 4.2.0 + '@smithy/util-middleware': 4.2.3 + '@smithy/util-uri-escape': 4.2.0 + '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@smithy/smithy-client@4.6.1': + '@smithy/smithy-client@4.9.1': dependencies: - '@smithy/core': 3.11.0 - '@smithy/middleware-endpoint': 4.2.1 - '@smithy/middleware-stack': 4.1.1 - '@smithy/protocol-http': 5.2.1 - '@smithy/types': 4.5.0 - '@smithy/util-stream': 4.3.1 + '@smithy/core': 3.17.1 + '@smithy/middleware-endpoint': 4.3.5 + '@smithy/middleware-stack': 4.2.3 + '@smithy/protocol-http': 5.3.3 + '@smithy/types': 4.8.0 + '@smithy/util-stream': 4.5.4 tslib: 2.8.1 - '@smithy/types@4.5.0': + '@smithy/types@4.8.0': dependencies: tslib: 2.8.1 - '@smithy/url-parser@4.1.1': + '@smithy/url-parser@4.2.3': dependencies: - '@smithy/querystring-parser': 4.1.1 - '@smithy/types': 4.5.0 + '@smithy/querystring-parser': 4.2.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/util-base64@4.1.0': + '@smithy/util-base64@4.3.0': dependencies: - '@smithy/util-buffer-from': 4.1.0 - '@smithy/util-utf8': 4.1.0 + '@smithy/util-buffer-from': 4.2.0 + '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@smithy/util-body-length-browser@4.1.0': + '@smithy/util-body-length-browser@4.2.0': dependencies: tslib: 2.8.1 - '@smithy/util-body-length-node@4.1.0': + '@smithy/util-body-length-node@4.2.1': dependencies: tslib: 2.8.1 @@ -19654,66 +21618,65 @@ snapshots: '@smithy/is-array-buffer': 2.2.0 tslib: 2.8.1 - '@smithy/util-buffer-from@4.1.0': + '@smithy/util-buffer-from@4.2.0': dependencies: - '@smithy/is-array-buffer': 4.1.0 + '@smithy/is-array-buffer': 4.2.0 tslib: 2.8.1 - '@smithy/util-config-provider@4.1.0': + '@smithy/util-config-provider@4.2.0': dependencies: tslib: 2.8.1 - '@smithy/util-defaults-mode-browser@4.1.1': + '@smithy/util-defaults-mode-browser@4.3.4': dependencies: - '@smithy/property-provider': 4.1.1 - '@smithy/smithy-client': 4.6.1 - '@smithy/types': 4.5.0 - bowser: 2.12.1 + '@smithy/property-provider': 4.2.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/util-defaults-mode-node@4.1.1': + '@smithy/util-defaults-mode-node@4.2.6': dependencies: - '@smithy/config-resolver': 4.2.1 - '@smithy/credential-provider-imds': 4.1.1 - '@smithy/node-config-provider': 4.2.1 - '@smithy/property-provider': 4.1.1 - '@smithy/smithy-client': 4.6.1 - '@smithy/types': 4.5.0 + '@smithy/config-resolver': 4.4.0 + '@smithy/credential-provider-imds': 4.2.3 + '@smithy/node-config-provider': 4.3.3 + '@smithy/property-provider': 4.2.3 + '@smithy/smithy-client': 4.9.1 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/util-endpoints@3.1.1': + '@smithy/util-endpoints@3.2.3': dependencies: - '@smithy/node-config-provider': 4.2.1 - '@smithy/types': 4.5.0 + '@smithy/node-config-provider': 4.3.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/util-hex-encoding@4.1.0': + '@smithy/util-hex-encoding@4.2.0': dependencies: tslib: 2.8.1 - '@smithy/util-middleware@4.1.1': + '@smithy/util-middleware@4.2.3': dependencies: - '@smithy/types': 4.5.0 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/util-retry@4.1.1': + '@smithy/util-retry@4.2.3': dependencies: - '@smithy/service-error-classification': 4.1.1 - '@smithy/types': 4.5.0 + '@smithy/service-error-classification': 4.2.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/util-stream@4.3.1': + '@smithy/util-stream@4.5.4': dependencies: - '@smithy/fetch-http-handler': 5.2.1 - '@smithy/node-http-handler': 4.2.1 - '@smithy/types': 4.5.0 - '@smithy/util-base64': 4.1.0 - '@smithy/util-buffer-from': 4.1.0 - '@smithy/util-hex-encoding': 4.1.0 - '@smithy/util-utf8': 4.1.0 + '@smithy/fetch-http-handler': 5.3.4 + '@smithy/node-http-handler': 4.4.3 + '@smithy/types': 4.8.0 + '@smithy/util-base64': 4.3.0 + '@smithy/util-buffer-from': 4.2.0 + '@smithy/util-hex-encoding': 4.2.0 + '@smithy/util-utf8': 4.2.0 tslib: 2.8.1 - '@smithy/util-uri-escape@4.1.0': + '@smithy/util-uri-escape@4.2.0': dependencies: tslib: 2.8.1 @@ -19722,15 +21685,19 @@ snapshots: '@smithy/util-buffer-from': 2.2.0 tslib: 2.8.1 - '@smithy/util-utf8@4.1.0': + '@smithy/util-utf8@4.2.0': + dependencies: + '@smithy/util-buffer-from': 4.2.0 + tslib: 2.8.1 + + '@smithy/util-waiter@4.2.3': dependencies: - '@smithy/util-buffer-from': 4.1.0 + '@smithy/abort-controller': 4.2.3 + '@smithy/types': 4.8.0 tslib: 2.8.1 - '@smithy/util-waiter@4.1.1': + '@smithy/uuid@1.1.0': dependencies: - '@smithy/abort-controller': 4.1.1 - '@smithy/types': 4.5.0 tslib: 2.8.1 '@socket.io/component-emitter@3.1.2': {} @@ -19739,10 +21706,10 @@ snapshots: dependencies: buffer: 6.0.3 - '@solana/web3.js@1.95.3(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': + '@solana/web3.js@1.95.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: '@babel/runtime': 7.28.4 - '@noble/curves': 1.9.7 + '@noble/curves': 1.8.1 '@noble/hashes': 1.8.0 '@solana/buffer-layout': 4.0.1 agentkeepalive: 4.6.0 @@ -19753,8 +21720,8 @@ snapshots: buffer: 6.0.3 fast-stable-stringify: 1.0.0 jayson: 4.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) - node-fetch: 2.7.0(encoding@0.1.13) - rpc-websockets: 9.1.3 + node-fetch: 2.7.0 + rpc-websockets: 9.2.0 superstruct: 2.0.2 transitivePeerDependencies: - bufferutil @@ -19794,12 +21761,12 @@ snapshots: typescript: 5.8.3 zod: 3.24.3 - '@tanstack/query-core@5.87.4': {} + '@tanstack/query-core@5.90.5': {} - '@tanstack/react-query@5.87.4(react@19.1.1)': + '@tanstack/react-query@5.90.5(react@18.3.1)': dependencies: - '@tanstack/query-core': 5.87.4 - react: 19.1.1 + '@tanstack/query-core': 5.90.5 + react: 18.3.1 '@tootallnate/once@2.0.0': {} @@ -19811,10 +21778,23 @@ snapshots: '@tsconfig/node16@1.0.4': {} + '@tybys/wasm-util@0.10.1': + dependencies: + tslib: 2.8.1 + optional: true + '@tybys/wasm-util@0.9.0': dependencies: tslib: 2.8.1 + '@typechain/ethers-v6@0.5.1(ethers@5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3)': + dependencies: + ethers: 5.7.2(bufferutil@4.0.9)(utf-8-validate@5.0.10) + lodash: 4.17.21 + ts-essentials: 7.0.3(typescript@5.8.3) + typechain: 8.3.2(typescript@5.8.3) + typescript: 5.8.3 + '@typechain/ethers-v6@0.5.1(ethers@6.15.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(typechain@8.3.2(typescript@5.8.3))(typescript@5.8.3)': dependencies: ethers: 6.15.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -19825,24 +21805,24 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 '@types/babel__traverse': 7.28.0 '@types/babel__generator@7.27.0': dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.28.4 - '@babel/types': 7.28.4 + '@babel/parser': 7.28.5 + '@babel/types': 7.28.5 '@types/babel__traverse@7.28.0': dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 '@types/body-parser@1.19.6': dependencies: @@ -19870,24 +21850,24 @@ snapshots: '@types/depd@1.1.37': dependencies: - '@types/node': 20.19.13 + '@types/node': 20.0.0 '@types/estree@1.0.8': {} '@types/events@3.0.3': {} - '@types/express-serve-static-core@5.0.7': + '@types/express-serve-static-core@5.1.0': dependencies: '@types/node': 20.0.0 '@types/qs': 6.14.0 '@types/range-parser': 1.2.7 - '@types/send': 0.17.5 + '@types/send': 1.2.0 '@types/express@5.0.3': dependencies: '@types/body-parser': 1.19.6 - '@types/express-serve-static-core': 5.0.7 - '@types/serve-static': 1.15.8 + '@types/express-serve-static-core': 5.1.0 + '@types/serve-static': 1.15.9 '@types/graceful-fs@4.1.9': dependencies: @@ -19921,6 +21901,11 @@ snapshots: jest-matcher-utils: 27.5.1 pretty-format: 27.5.1 + '@types/jest@30.0.0': + dependencies: + expect: 30.2.0 + pretty-format: 30.2.0 + '@types/jsdom@20.0.1': dependencies: '@types/node': 20.0.0 @@ -19949,16 +21934,12 @@ snapshots: '@types/node-localstorage@1.3.3': dependencies: - '@types/node': 20.19.13 + '@types/node': 20.0.0 '@types/node@12.20.55': {} '@types/node@20.0.0': {} - '@types/node@20.19.13': - dependencies: - undici-types: 6.21.0 - '@types/node@22.7.5': dependencies: undici-types: 6.19.8 @@ -19973,18 +21954,13 @@ snapshots: '@types/range-parser@1.2.7': {} - '@types/react@19.1.13': - dependencies: - csstype: 3.1.3 - optional: true - '@types/responselike@1.0.3': dependencies: '@types/node': 20.0.0 - '@types/secp256k1@4.0.6': + '@types/secp256k1@4.0.7': dependencies: - '@types/node': 20.19.13 + '@types/node': 20.0.0 '@types/semver@7.7.1': {} @@ -19993,7 +21969,11 @@ snapshots: '@types/mime': 1.3.5 '@types/node': 20.0.0 - '@types/serve-static@1.15.8': + '@types/send@1.2.0': + dependencies: + '@types/node': 20.0.0 + + '@types/serve-static@1.15.9': dependencies: '@types/http-errors': 2.0.5 '@types/node': 20.0.0 @@ -20013,8 +21993,6 @@ snapshots: '@types/uuid@8.3.4': {} - '@types/uuid@9.0.8': {} - '@types/ws@7.4.7': dependencies: '@types/node': 20.0.0 @@ -20031,18 +22009,18 @@ snapshots: '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@9.34.0)(typescript@5.8.3))(eslint@9.34.0)(typescript@5.8.3)': dependencies: - '@eslint-community/regexpp': 4.12.1 + '@eslint-community/regexpp': 4.12.2 '@typescript-eslint/parser': 6.21.0(eslint@9.34.0)(typescript@5.8.3) '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/type-utils': 6.21.0(eslint@9.34.0)(typescript@5.8.3) '@typescript-eslint/utils': 6.21.0(eslint@9.34.0)(typescript@5.8.3) '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) eslint: 9.34.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - semver: 7.7.2 + semver: 7.7.3 ts-api-utils: 1.4.3(typescript@5.8.3) optionalDependencies: typescript: 5.8.3 @@ -20055,18 +22033,18 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.3) '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) eslint: 9.34.0 optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.43.0(typescript@5.8.3)': + '@typescript-eslint/project-service@8.46.2(typescript@5.8.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.43.0(typescript@5.8.3) - '@typescript-eslint/types': 8.43.0 - debug: 4.4.1(supports-color@8.1.1) + '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.8.3) + '@typescript-eslint/types': 8.46.2 + debug: 4.4.3(supports-color@8.1.1) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -20076,12 +22054,12 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - '@typescript-eslint/scope-manager@8.43.0': + '@typescript-eslint/scope-manager@8.46.2': dependencies: - '@typescript-eslint/types': 8.43.0 - '@typescript-eslint/visitor-keys': 8.43.0 + '@typescript-eslint/types': 8.46.2 + '@typescript-eslint/visitor-keys': 8.46.2 - '@typescript-eslint/tsconfig-utils@8.43.0(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.46.2(typescript@5.8.3)': dependencies: typescript: 5.8.3 @@ -20089,7 +22067,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.3) '@typescript-eslint/utils': 6.21.0(eslint@9.34.0)(typescript@5.8.3) - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) eslint: 9.34.0 ts-api-utils: 1.4.3(typescript@5.8.3) optionalDependencies: @@ -20097,64 +22075,48 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.43.0(eslint@9.34.0)(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.46.2(eslint@9.34.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.43.0 - '@typescript-eslint/typescript-estree': 8.43.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.43.0(eslint@9.34.0)(typescript@5.8.3) - debug: 4.4.1(supports-color@8.1.1) + '@typescript-eslint/types': 8.46.2 + '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.8.3) + '@typescript-eslint/utils': 8.46.2(eslint@9.34.0)(typescript@5.8.3) + debug: 4.4.3(supports-color@8.1.1) eslint: 9.34.0 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@5.62.0': {} - '@typescript-eslint/types@6.21.0': {} - '@typescript-eslint/types@8.43.0': {} - - '@typescript-eslint/typescript-estree@5.62.0(typescript@5.8.3)': - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.4.1(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.7.2 - tsutils: 3.21.0(typescript@5.8.3) - optionalDependencies: - typescript: 5.8.3 - transitivePeerDependencies: - - supports-color + '@typescript-eslint/types@8.46.2': {} '@typescript-eslint/typescript-estree@6.21.0(typescript@5.8.3)': dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.7.2 + semver: 7.7.3 ts-api-utils: 1.4.3(typescript@5.8.3) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.43.0(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.46.2(typescript@5.8.3)': dependencies: - '@typescript-eslint/project-service': 8.43.0(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.43.0(typescript@5.8.3) - '@typescript-eslint/types': 8.43.0 - '@typescript-eslint/visitor-keys': 8.43.0 - debug: 4.4.1(supports-color@8.1.1) + '@typescript-eslint/project-service': 8.46.2(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.46.2(typescript@5.8.3) + '@typescript-eslint/types': 8.46.2 + '@typescript-eslint/visitor-keys': 8.46.2 + debug: 4.4.3(supports-color@8.1.1) fast-glob: 3.3.3 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.7.2 + semver: 7.7.3 ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: @@ -20169,35 +22131,30 @@ snapshots: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.8.3) eslint: 9.34.0 - semver: 7.7.2 + semver: 7.7.3 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.43.0(eslint@9.34.0)(typescript@5.8.3)': + '@typescript-eslint/utils@8.46.2(eslint@9.34.0)(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.34.0) - '@typescript-eslint/scope-manager': 8.43.0 - '@typescript-eslint/types': 8.43.0 - '@typescript-eslint/typescript-estree': 8.43.0(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.46.2 + '@typescript-eslint/types': 8.46.2 + '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.8.3) eslint: 9.34.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@5.62.0': - dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@6.21.0': dependencies: '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.43.0': + '@typescript-eslint/visitor-keys@8.46.2': dependencies: - '@typescript-eslint/types': 8.43.0 + '@typescript-eslint/types': 8.46.2 eslint-visitor-keys: 4.2.1 '@typespec/ts-http-runtime@0.3.1': @@ -20208,50 +22165,116 @@ snapshots: transitivePeerDependencies: - supports-color - '@vue/compiler-core@3.5.21': + '@ungap/structured-clone@1.3.0': {} + + '@unrs/resolver-binding-android-arm-eabi@1.11.1': + optional: true + + '@unrs/resolver-binding-android-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-arm64@1.11.1': + optional: true + + '@unrs/resolver-binding-darwin-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-freebsd-x64@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-gnueabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm-musleabihf@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-arm64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-riscv64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-s390x-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-gnu@1.11.1': + optional: true + + '@unrs/resolver-binding-linux-x64-musl@1.11.1': + optional: true + + '@unrs/resolver-binding-wasm32-wasi@1.11.1': + dependencies: + '@napi-rs/wasm-runtime': 0.2.12 + optional: true + + '@unrs/resolver-binding-win32-arm64-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-ia32-msvc@1.11.1': + optional: true + + '@unrs/resolver-binding-win32-x64-msvc@1.11.1': + optional: true + + '@upstash/redis@1.35.6': dependencies: - '@babel/parser': 7.28.4 - '@vue/shared': 3.5.21 + uncrypto: 0.1.3 + + '@vue/compiler-core@3.5.22': + dependencies: + '@babel/parser': 7.28.5 + '@vue/shared': 3.5.22 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.21': + '@vue/compiler-dom@3.5.22': dependencies: - '@vue/compiler-core': 3.5.21 - '@vue/shared': 3.5.21 + '@vue/compiler-core': 3.5.22 + '@vue/shared': 3.5.22 - '@vue/compiler-sfc@3.5.21': + '@vue/compiler-sfc@3.5.22': dependencies: - '@babel/parser': 7.28.4 - '@vue/compiler-core': 3.5.21 - '@vue/compiler-dom': 3.5.21 - '@vue/compiler-ssr': 3.5.21 - '@vue/shared': 3.5.21 + '@babel/parser': 7.28.5 + '@vue/compiler-core': 3.5.22 + '@vue/compiler-dom': 3.5.22 + '@vue/compiler-ssr': 3.5.22 + '@vue/shared': 3.5.22 estree-walker: 2.0.2 magic-string: 0.30.19 postcss: 8.5.6 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.21': + '@vue/compiler-ssr@3.5.22': dependencies: - '@vue/compiler-dom': 3.5.21 - '@vue/shared': 3.5.21 + '@vue/compiler-dom': 3.5.22 + '@vue/shared': 3.5.22 - '@vue/shared@3.5.21': {} + '@vue/shared@3.5.22': {} - '@wagmi/connectors@5.9.9(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(@wagmi/core@2.20.3(@tanstack/query-core@5.87.4)(@types/react@19.1.13)(react@19.1.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(viem@2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))(zod@3.24.3)': + '@wagmi/connectors@6.1.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@tanstack/react-query@5.90.5(react@18.3.1))(@upstash/redis@1.35.6)(@wagmi/core@2.22.1(@tanstack/query-core@5.90.5)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)))(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))(wagmi@2.18.2(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@tanstack/query-core@5.90.5)(@tanstack/react-query@5.90.5(react@18.3.1))(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))(zod@3.24.3))(zod@3.24.3)': dependencies: - '@base-org/account': 1.1.1(@types/react@19.1.13)(bufferutil@4.0.9)(react@19.1.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@3.24.3) - '@coinbase/wallet-sdk': 4.3.6(@types/react@19.1.13)(bufferutil@4.0.9)(react@19.1.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(zod@3.24.3) - '@gemini-wallet/core': 0.2.0(viem@2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)) - '@metamask/sdk': 0.32.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) + '@base-org/account': 1.1.1(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@3.24.3) + '@coinbase/wallet-sdk': 4.3.6(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(zod@3.24.3) + '@gemini-wallet/core': 0.2.0(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)) + '@metamask/sdk': 0.33.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@safe-global/safe-apps-provider': 0.18.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) '@safe-global/safe-apps-sdk': 9.1.0(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - '@wagmi/core': 2.20.3(@tanstack/query-core@5.87.4)(@types/react@19.1.13)(react@19.1.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)) - '@walletconnect/ethereum-provider': 2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@wagmi/core': 2.22.1(@tanstack/query-core@5.90.5)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)) + '@walletconnect/ethereum-provider': 2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) cbw-sdk: '@coinbase/wallet-sdk@3.9.3' - viem: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + porto: 0.2.19(@tanstack/react-query@5.90.5(react@18.3.1))(@wagmi/core@2.22.1(@tanstack/query-core@5.90.5)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)))(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))(wagmi@2.18.2(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@tanstack/query-core@5.90.5)(@tanstack/react-query@5.90.5(react@18.3.1))(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))(zod@3.24.3)) + viem: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -20266,6 +22289,7 @@ snapshots: - '@netlify/blobs' - '@planetscale/database' - '@react-native-async-storage/async-storage' + - '@tanstack/react-query' - '@types/react' - '@upstash/redis' - '@vercel/blob' @@ -20282,16 +22306,17 @@ snapshots: - uploadthing - use-sync-external-store - utf-8-validate + - wagmi - zod - '@wagmi/core@2.20.3(@tanstack/query-core@5.87.4)(@types/react@19.1.13)(react@19.1.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))': + '@wagmi/core@2.22.1(@tanstack/query-core@5.90.5)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))': dependencies: eventemitter3: 5.0.1 mipd: 0.0.7(typescript@5.8.3) - viem: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - zustand: 5.0.0(@types/react@19.1.13)(react@19.1.1)(use-sync-external-store@1.4.0(react@19.1.1)) + viem: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + zustand: 5.0.0(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) optionalDependencies: - '@tanstack/query-core': 5.87.4 + '@tanstack/query-core': 5.90.5 typescript: 5.8.3 transitivePeerDependencies: - '@types/react' @@ -20299,21 +22324,21 @@ snapshots: - react - use-sync-external-store - '@walletconnect/core@2.21.0(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': + '@walletconnect/core@2.21.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': dependencies: '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/jsonrpc-ws-connection': 1.0.16(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@walletconnect/keyvaluestorage': 1.1.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) + '@walletconnect/keyvaluestorage': 1.1.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) '@walletconnect/logger': 2.1.2 '@walletconnect/relay-api': 1.0.11 '@walletconnect/relay-auth': 1.1.0 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.0(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) - '@walletconnect/utils': 2.21.0(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@walletconnect/types': 2.21.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) + '@walletconnect/utils': 2.21.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) '@walletconnect/window-getters': 1.0.1 es-toolkit: 1.33.0 events: 3.3.0 @@ -20343,21 +22368,21 @@ snapshots: - utf-8-validate - zod - '@walletconnect/core@2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': + '@walletconnect/core@2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': dependencies: '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/jsonrpc-ws-connection': 1.0.16(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@walletconnect/keyvaluestorage': 1.1.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) + '@walletconnect/keyvaluestorage': 1.1.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) '@walletconnect/logger': 2.1.2 '@walletconnect/relay-api': 1.0.11 '@walletconnect/relay-auth': 1.1.0 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) - '@walletconnect/utils': 2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@walletconnect/types': 2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) + '@walletconnect/utils': 2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) '@walletconnect/window-getters': 1.0.1 es-toolkit: 1.33.0 events: 3.3.0 @@ -20391,18 +22416,18 @@ snapshots: dependencies: tslib: 1.14.1 - '@walletconnect/ethereum-provider@2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': + '@walletconnect/ethereum-provider@2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': dependencies: - '@reown/appkit': 1.7.8(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13) + '@reown/appkit': 1.7.8(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@walletconnect/jsonrpc-http-connection': 1.0.8 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) - '@walletconnect/sign-client': 2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - '@walletconnect/types': 2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) - '@walletconnect/universal-provider': 2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - '@walletconnect/utils': 2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@walletconnect/keyvaluestorage': 1.1.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) + '@walletconnect/sign-client': 2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@walletconnect/types': 2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) + '@walletconnect/universal-provider': 2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@walletconnect/utils': 2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -20443,11 +22468,11 @@ snapshots: '@walletconnect/time': 1.0.2 events: 3.3.0 - '@walletconnect/jsonrpc-http-connection@1.0.8(encoding@0.1.13)': + '@walletconnect/jsonrpc-http-connection@1.0.8': dependencies: '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/safe-json': 1.0.2 - cross-fetch: 3.1.8(encoding@0.1.13) + cross-fetch: 3.1.8 events: 3.3.0 transitivePeerDependencies: - encoding @@ -20479,11 +22504,11 @@ snapshots: - bufferutil - utf-8-validate - '@walletconnect/keyvaluestorage@1.1.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0)': + '@walletconnect/keyvaluestorage@1.1.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2)': dependencies: '@walletconnect/safe-json': 1.0.2 idb-keyval: 6.2.2 - unstorage: 1.17.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(idb-keyval@6.2.2)(ioredis@5.7.0) + unstorage: 1.17.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(idb-keyval@6.2.2)(ioredis@5.8.2) transitivePeerDependencies: - '@azure/app-configuration' - '@azure/cosmos' @@ -20525,16 +22550,16 @@ snapshots: dependencies: tslib: 1.14.1 - '@walletconnect/sign-client@2.21.0(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': + '@walletconnect/sign-client@2.21.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': dependencies: - '@walletconnect/core': 2.21.0(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@walletconnect/core': 2.21.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.0(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) - '@walletconnect/utils': 2.21.0(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@walletconnect/types': 2.21.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) + '@walletconnect/utils': 2.21.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -20561,16 +22586,16 @@ snapshots: - utf-8-validate - zod - '@walletconnect/sign-client@2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': + '@walletconnect/sign-client@2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': dependencies: - '@walletconnect/core': 2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@walletconnect/core': 2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) - '@walletconnect/utils': 2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@walletconnect/types': 2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) + '@walletconnect/utils': 2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -20601,12 +22626,12 @@ snapshots: dependencies: tslib: 1.14.1 - '@walletconnect/types@2.21.0(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0)': + '@walletconnect/types@2.21.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2)': dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/keyvaluestorage': 1.1.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) + '@walletconnect/keyvaluestorage': 1.1.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) '@walletconnect/logger': 2.1.2 events: 3.3.0 transitivePeerDependencies: @@ -20630,12 +22655,12 @@ snapshots: - ioredis - uploadthing - '@walletconnect/types@2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0)': + '@walletconnect/types@2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2)': dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/keyvaluestorage': 1.1.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) + '@walletconnect/keyvaluestorage': 1.1.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) '@walletconnect/logger': 2.1.2 events: 3.3.0 transitivePeerDependencies: @@ -20659,18 +22684,18 @@ snapshots: - ioredis - uploadthing - '@walletconnect/universal-provider@2.21.0(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': + '@walletconnect/universal-provider@2.21.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': dependencies: '@walletconnect/events': 1.0.1 - '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13) + '@walletconnect/jsonrpc-http-connection': 1.0.8 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) + '@walletconnect/keyvaluestorage': 1.1.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.21.0(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - '@walletconnect/types': 2.21.0(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) - '@walletconnect/utils': 2.21.0(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@walletconnect/sign-client': 2.21.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@walletconnect/types': 2.21.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) + '@walletconnect/utils': 2.21.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) es-toolkit: 1.33.0 events: 3.3.0 transitivePeerDependencies: @@ -20699,18 +22724,18 @@ snapshots: - utf-8-validate - zod - '@walletconnect/universal-provider@2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': + '@walletconnect/universal-provider@2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': dependencies: '@walletconnect/events': 1.0.1 - '@walletconnect/jsonrpc-http-connection': 1.0.8(encoding@0.1.13) + '@walletconnect/jsonrpc-http-connection': 1.0.8 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) + '@walletconnect/keyvaluestorage': 1.1.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) - '@walletconnect/types': 2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) - '@walletconnect/utils': 2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@walletconnect/sign-client': 2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@walletconnect/types': 2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) + '@walletconnect/utils': 2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) es-toolkit: 1.33.0 events: 3.3.0 transitivePeerDependencies: @@ -20739,18 +22764,18 @@ snapshots: - utf-8-validate - zod - '@walletconnect/utils@2.21.0(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': + '@walletconnect/utils@2.21.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': dependencies: '@noble/ciphers': 1.2.1 '@noble/curves': 1.8.1 '@noble/hashes': 1.7.1 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) + '@walletconnect/keyvaluestorage': 1.1.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) '@walletconnect/relay-api': 1.0.11 '@walletconnect/relay-auth': 1.1.0 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.0(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) + '@walletconnect/types': 2.21.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) '@walletconnect/window-getters': 1.0.1 '@walletconnect/window-metadata': 1.0.1 bs58: 6.0.0 @@ -20783,18 +22808,18 @@ snapshots: - utf-8-validate - zod - '@walletconnect/utils@2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': + '@walletconnect/utils@2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)': dependencies: '@noble/ciphers': 1.2.1 '@noble/curves': 1.8.1 '@noble/hashes': 1.7.1 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) + '@walletconnect/keyvaluestorage': 1.1.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) '@walletconnect/relay-api': 1.0.11 '@walletconnect/relay-auth': 1.1.0 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.21.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(ioredis@5.7.0) + '@walletconnect/types': 2.21.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(ioredis@5.8.2) '@walletconnect/window-getters': 1.0.1 '@walletconnect/window-metadata': 1.0.1 bs58: 6.0.0 @@ -20864,6 +22889,16 @@ snapshots: typescript: 5.8.3 zod: 3.24.3 + abitype@1.1.1(typescript@5.8.3)(zod@3.24.3): + optionalDependencies: + typescript: 5.8.3 + zod: 3.24.3 + + abitype@1.1.1(typescript@5.8.3)(zod@4.1.12): + optionalDependencies: + typescript: 5.8.3 + zod: 4.1.12 + accepts@2.0.0: dependencies: mime-types: 3.0.1 @@ -20892,7 +22927,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -21061,52 +23096,52 @@ snapshots: arrivals@2.1.2: dependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) nanotimer: 0.3.14 transitivePeerDependencies: - supports-color - artillery-engine-playwright@1.21.0: + artillery-engine-playwright@1.23.0: dependencies: - '@playwright/browser-chromium': 1.54.2 - '@playwright/test': 1.54.2 - debug: 4.4.1(supports-color@8.1.1) - playwright: 1.54.2 + '@playwright/browser-chromium': 1.55.0 + '@playwright/test': 1.55.0 + debug: 4.4.3(supports-color@8.1.1) + playwright: 1.55.0 transitivePeerDependencies: - supports-color - artillery-plugin-apdex@1.15.0: {} + artillery-plugin-apdex@1.17.0: {} - artillery-plugin-ensure@1.18.0: + artillery-plugin-ensure@1.20.0: dependencies: chalk: 2.4.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) filtrex: 2.2.3 transitivePeerDependencies: - supports-color - artillery-plugin-expect@2.18.0: + artillery-plugin-expect@2.20.0: dependencies: chalk: 4.1.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) jmespath: 0.16.0 lodash: 4.17.21 transitivePeerDependencies: - supports-color - artillery-plugin-fake-data@1.15.0: + artillery-plugin-fake-data@1.17.0: dependencies: '@ngneat/falso': 7.4.0 - artillery-plugin-metrics-by-endpoint@1.18.0: + artillery-plugin-metrics-by-endpoint@1.20.0: dependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color - artillery-plugin-publish-metrics@2.29.0: + artillery-plugin-publish-metrics@2.31.0: dependencies: - '@aws-sdk/client-cloudwatch': 3.887.0 + '@aws-sdk/client-cloudwatch': 3.916.0 '@opentelemetry/api': 1.9.0 '@opentelemetry/context-async-hooks': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/exporter-metrics-otlp-grpc': 0.41.2(@opentelemetry/api@1.9.0) @@ -21122,56 +23157,65 @@ snapshots: '@opentelemetry/semantic-conventions': 1.37.0 async: 2.6.4 datadog-metrics: 0.9.3 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) dogapi: 2.8.4 hot-shots: 6.8.7 mixpanel: 0.13.0 opentracing: 0.14.7 prom-client: 14.2.0 - semver: 7.7.2 + semver: 7.7.3 uuid: 8.3.2 transitivePeerDependencies: - aws-crt - supports-color - artillery-plugin-slack@1.13.0: + artillery-plugin-slack@1.15.0: dependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) got: 11.8.6 transitivePeerDependencies: - supports-color - artillery@2.0.24(@types/node@20.19.13)(bufferutil@4.0.9)(utf-8-validate@5.0.10): - dependencies: - '@artilleryio/int-commons': 2.15.0 - '@artilleryio/int-core': 2.19.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@aws-sdk/credential-providers': 3.887.0 + artillery@2.0.26(@types/node@20.0.0)(bufferutil@4.0.9)(utf-8-validate@5.0.10): + dependencies: + '@artilleryio/int-commons': 2.17.0 + '@artilleryio/int-core': 2.21.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@aws-sdk/client-cloudwatch-logs': 3.916.0 + '@aws-sdk/client-ec2': 3.916.0 + '@aws-sdk/client-ecs': 3.916.0 + '@aws-sdk/client-iam': 3.916.0 + '@aws-sdk/client-lambda': 3.916.0 + '@aws-sdk/client-s3': 3.916.0 + '@aws-sdk/client-sqs': 3.916.0 + '@aws-sdk/client-ssm': 3.916.0 + '@aws-sdk/client-sts': 3.916.0 + '@aws-sdk/credential-providers': 3.916.0 '@azure/arm-containerinstance': 9.1.0 - '@azure/identity': 4.12.0 - '@azure/storage-blob': 12.28.0 - '@azure/storage-queue': 12.27.0 - '@oclif/core': 4.5.3 - '@oclif/plugin-help': 6.2.32 - '@oclif/plugin-not-found': 3.2.67(@types/node@20.19.13) + '@azure/identity': 4.13.0 + '@azure/storage-blob': 12.29.1 + '@azure/storage-queue': 12.28.1 + '@oclif/core': 4.7.2 + '@oclif/plugin-help': 6.2.33 + '@oclif/plugin-not-found': 3.2.70(@types/node@20.0.0) + '@upstash/redis': 1.35.6 archiver: 5.3.2 - artillery-engine-playwright: 1.21.0 - artillery-plugin-apdex: 1.15.0 - artillery-plugin-ensure: 1.18.0 - artillery-plugin-expect: 2.18.0 - artillery-plugin-fake-data: 1.15.0 - artillery-plugin-metrics-by-endpoint: 1.18.0 - artillery-plugin-publish-metrics: 2.29.0 - artillery-plugin-slack: 1.13.0 + artillery-engine-playwright: 1.23.0 + artillery-plugin-apdex: 1.17.0 + artillery-plugin-ensure: 1.20.0 + artillery-plugin-expect: 2.20.0 + artillery-plugin-fake-data: 1.17.0 + artillery-plugin-metrics-by-endpoint: 1.20.0 + artillery-plugin-publish-metrics: 2.31.0 + artillery-plugin-slack: 1.15.0 async: 2.6.4 - aws-sdk: 2.1692.0 chalk: 2.4.2 chokidar: 3.6.0 - ci-info: 4.3.0 + ci-info: 4.3.1 cli-table3: 0.6.5 cross-spawn: 7.0.6 csv-parse: 4.16.3 - debug: 4.4.1(supports-color@8.1.1) - dependency-tree: 10.0.9 + debug: 4.4.3(supports-color@8.1.1) + dependency-tree: 11.2.0 detective-es6: 4.0.1 dotenv: 16.6.1 driftless: 2.0.3 @@ -21186,11 +23230,9 @@ snapshots: moment: 2.30.1 nanoid: 3.3.11 ora: 4.1.1 - posthog-node: 4.18.0(debug@4.4.1) rc: 1.2.8 - sqs-consumer: 5.8.0(aws-sdk@2.1692.0) - temp: 0.9.4 - tmp: 0.2.1 + sqs-consumer: 6.0.2(@aws-sdk/client-sqs@3.916.0) + tempy: 3.1.0 walk-sync: 0.2.7 yaml-js: 0.2.3 transitivePeerDependencies: @@ -21229,7 +23271,7 @@ snapshots: assertion-error@1.1.0: {} - ast-module-types@5.0.0: {} + ast-module-types@6.0.1: {} ast-types-flow@0.0.8: {} @@ -21253,24 +23295,11 @@ snapshots: dependencies: possible-typed-array-names: 1.1.0 - aws-sdk@2.1692.0: - dependencies: - buffer: 4.9.2 - events: 1.1.1 - ieee754: 1.1.13 - jmespath: 0.16.0 - querystring: 0.2.0 - sax: 1.2.1 - url: 0.10.3 - util: 0.12.5 - uuid: 8.0.0 - xml2js: 0.6.2 - - axe-core@4.10.3: {} + axe-core@4.11.0: {} - axios@1.12.0(debug@4.4.1): + axios@1.12.2: dependencies: - follow-redirects: 1.15.11(debug@4.4.1) + follow-redirects: 1.15.11 form-data: 4.0.4 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -21280,25 +23309,38 @@ snapshots: dependencies: deep-equal: 2.2.3 - babel-jest@29.7.0(@babel/core@7.28.4): + babel-jest@29.7.0(@babel/core@7.28.5): dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.6.3(@babel/core@7.28.4) + babel-preset-jest: 29.6.3(@babel/core@7.28.5) + chalk: 4.1.2 + graceful-fs: 4.2.11 + slash: 3.0.0 + transitivePeerDependencies: + - supports-color + + babel-jest@30.2.0(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@jest/transform': 30.2.0 + '@types/babel__core': 7.20.5 + babel-plugin-istanbul: 7.0.1 + babel-preset-jest: 30.2.0(@babel/core@7.28.5) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 transitivePeerDependencies: - supports-color - babel-plugin-const-enum@1.2.0(@babel/core@7.28.4): + babel-plugin-const-enum@1.2.0(@babel/core@7.28.5): dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) - '@babel/traverse': 7.28.4 + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) + '@babel/traverse': 7.28.5 transitivePeerDependencies: - supports-color @@ -21312,74 +23354,94 @@ snapshots: transitivePeerDependencies: - supports-color + babel-plugin-istanbul@7.0.1: + dependencies: + '@babel/helper-plugin-utils': 7.27.1 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 6.0.3 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + babel-plugin-jest-hoist@29.6.3: dependencies: '@babel/template': 7.27.2 - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.28.0 + babel-plugin-jest-hoist@30.2.0: + dependencies: + '@types/babel__core': 7.20.5 + babel-plugin-macros@3.1.0: dependencies: '@babel/runtime': 7.28.4 cosmiconfig: 7.1.0 - resolve: 1.22.10 + resolve: 1.22.11 - babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.4): + babel-plugin-polyfill-corejs2@0.4.14(@babel/core@7.28.5): dependencies: - '@babel/compat-data': 7.28.4 - '@babel/core': 7.28.4 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4) + '@babel/compat-data': 7.28.5 + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.4): + babel-plugin-polyfill-corejs3@0.13.0(@babel/core@7.28.5): dependencies: - '@babel/core': 7.28.4 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4) - core-js-compat: 3.45.1 + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) + core-js-compat: 3.46.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.4): + babel-plugin-polyfill-regenerator@0.6.5(@babel/core@7.28.5): dependencies: - '@babel/core': 7.28.4 - '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@babel/helper-define-polyfill-provider': 0.6.5(@babel/core@7.28.5) transitivePeerDependencies: - supports-color - babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.28.4)(@babel/traverse@7.28.4): + babel-plugin-transform-typescript-metadata@0.3.2(@babel/core@7.28.5)(@babel/traverse@7.28.5): dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@babel/helper-plugin-utils': 7.27.1 optionalDependencies: - '@babel/traverse': 7.28.4 - - babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.4): - dependencies: - '@babel/core': 7.28.4 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.4) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.4) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.4) - '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.4) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.4) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.4) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.4) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.4) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.4) - - babel-preset-jest@29.6.3(@babel/core@7.28.4): - dependencies: - '@babel/core': 7.28.4 + '@babel/traverse': 7.28.5 + + babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.5) + '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.5) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.5) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.5) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.5) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.5) + + babel-preset-jest@29.6.3(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 babel-plugin-jest-hoist: 29.6.3 - babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4) + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) + + babel-preset-jest@30.2.0(@babel/core@7.28.5): + dependencies: + '@babel/core': 7.28.5 + babel-plugin-jest-hoist: 30.2.0 + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) balanced-match@1.0.2: {} @@ -21393,6 +23455,8 @@ snapshots: base64url@3.0.1: {} + baseline-browser-mapping@2.8.20: {} + bech32@1.1.4: {} better-path-resolve@1.0.0: @@ -21437,7 +23501,7 @@ snapshots: dependencies: bytes: 3.1.2 content-type: 1.0.5 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) http-errors: 2.0.0 iconv-lite: 0.6.3 on-finished: 2.4.1 @@ -21475,7 +23539,7 @@ snapshots: browserify-aes@1.2.0: dependencies: buffer-xor: 1.0.3 - cipher-base: 1.0.6 + cipher-base: 1.0.7 create-hash: 1.2.0 evp_bytestokey: 1.0.3 inherits: 2.0.4 @@ -21489,7 +23553,7 @@ snapshots: browserify-des@1.0.2: dependencies: - cipher-base: 1.0.6 + cipher-base: 1.0.7 des.js: 1.1.0 inherits: 2.0.4 safe-buffer: 5.2.1 @@ -21500,16 +23564,15 @@ snapshots: randombytes: 2.1.0 safe-buffer: 5.2.1 - browserify-sign@4.2.3: + browserify-sign@4.2.5: dependencies: bn.js: 5.2.2 browserify-rsa: 4.1.1 create-hash: 1.2.0 create-hmac: 1.1.7 elliptic: 6.6.1 - hash-base: 3.0.5 inherits: 2.0.4 - parse-asn1: 5.1.7 + parse-asn1: 5.1.9 readable-stream: 2.3.8 safe-buffer: 5.2.1 @@ -21517,12 +23580,13 @@ snapshots: dependencies: pako: 1.0.11 - browserslist@4.25.4: + browserslist@4.27.0: dependencies: - caniuse-lite: 1.0.30001741 - electron-to-chromium: 1.5.218 - node-releases: 2.0.20 - update-browserslist-db: 1.1.3(browserslist@4.25.4) + baseline-browser-mapping: 2.8.20 + caniuse-lite: 1.0.30001751 + electron-to-chromium: 1.5.240 + node-releases: 2.0.26 + update-browserslist-db: 1.1.4(browserslist@4.27.0) bs-logger@0.2.6: dependencies: @@ -21548,12 +23612,6 @@ snapshots: buffer-xor@1.0.3: {} - buffer@4.9.2: - dependencies: - base64-js: 1.5.1 - ieee754: 1.1.13 - isarray: 1.0.0 - buffer@5.7.1: dependencies: base64-js: 1.5.1 @@ -21570,15 +23628,15 @@ snapshots: builtin-status-codes@3.0.0: {} - bullmq@5.58.5: + bullmq@5.61.2: dependencies: cron-parser: 4.9.0 - ioredis: 5.7.0 + ioredis: 5.8.2 msgpackr: 1.11.5 node-abort-controller: 3.1.1 - semver: 7.7.2 + semver: 7.7.3 tslib: 2.8.1 - uuid: 9.0.1 + uuid: 11.1.0 transitivePeerDependencies: - supports-color @@ -21631,7 +23689,7 @@ snapshots: camelcase@6.3.0: {} - caniuse-lite@1.0.30001741: {} + caniuse-lite@1.0.30001751: {} canonicalize@2.1.0: {} @@ -21703,7 +23761,7 @@ snapshots: ci-info@3.9.0: {} - ci-info@4.3.0: {} + ci-info@4.3.1: {} cids@1.1.9: dependencies: @@ -21712,13 +23770,16 @@ snapshots: multihashes: 4.0.3 uint8arrays: 3.1.0 - cipher-base@1.0.6: + cipher-base@1.0.7: dependencies: inherits: 2.0.4 safe-buffer: 5.2.1 + to-buffer: 1.2.2 cjs-module-lexer@1.4.3: {} + cjs-module-lexer@2.1.0: {} + clean-stack@3.0.1: dependencies: escape-string-regexp: 4.0.0 @@ -21769,7 +23830,7 @@ snapshots: co@4.6.0: {} - collect-v8-coverage@1.0.2: {} + collect-v8-coverage@1.0.3: {} color-convert@1.9.3: dependencies: @@ -21808,10 +23869,10 @@ snapshots: table-layout: 1.0.2 typical: 5.2.0 - commander@10.0.1: {} - commander@11.1.0: {} + commander@12.1.0: {} + commander@2.20.3: {} compress-commons@4.1.2: @@ -21859,9 +23920,9 @@ snapshots: cookie@0.7.2: {} - core-js-compat@3.45.1: + core-js-compat@3.46.0: dependencies: - browserslist: 4.25.4 + browserslist: 4.27.0 core-util-is@1.0.3: {} @@ -21890,37 +23951,30 @@ snapshots: bn.js: 4.12.2 elliptic: 6.6.1 - create-hash@1.1.3: - dependencies: - cipher-base: 1.0.6 - inherits: 2.0.4 - ripemd160: 2.0.1 - sha.js: 2.4.12 - create-hash@1.2.0: dependencies: - cipher-base: 1.0.6 + cipher-base: 1.0.7 inherits: 2.0.4 md5.js: 1.3.5 - ripemd160: 2.0.2 + ripemd160: 2.0.3 sha.js: 2.4.12 create-hmac@1.1.7: dependencies: - cipher-base: 1.0.6 + cipher-base: 1.0.7 create-hash: 1.2.0 inherits: 2.0.4 - ripemd160: 2.0.2 + ripemd160: 2.0.3 safe-buffer: 5.2.1 sha.js: 2.4.12 - create-jest@29.7.0(@types/node@20.19.13)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3)): + create-jest@29.7.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.19.13)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -21935,15 +23989,15 @@ snapshots: dependencies: luxon: 3.7.2 - cross-fetch@3.1.8(encoding@0.1.13): + cross-fetch@3.1.8: dependencies: - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 transitivePeerDependencies: - encoding - cross-fetch@4.1.0(encoding@0.1.13): + cross-fetch@4.1.0: dependencies: - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 transitivePeerDependencies: - encoding @@ -21960,18 +24014,22 @@ snapshots: crypto-browserify@3.12.1: dependencies: browserify-cipher: 1.0.1 - browserify-sign: 4.2.3 + browserify-sign: 4.2.5 create-ecdh: 4.0.4 create-hash: 1.2.0 create-hmac: 1.1.7 diffie-hellman: 5.0.3 hash-base: 3.0.5 inherits: 2.0.4 - pbkdf2: 3.1.3 + pbkdf2: 3.1.5 public-encrypt: 4.0.3 randombytes: 2.1.0 randomfill: 1.0.4 + crypto-random-string@4.0.0: + dependencies: + type-fest: 1.4.0 + css-select@5.2.2: dependencies: boolbase: 1.0.0 @@ -21990,9 +24048,6 @@ snapshots: dependencies: cssom: 0.3.8 - csstype@3.1.3: - optional: true - csv-parse@4.16.3: {} damerau-levenshtein@1.0.8: {} @@ -22050,11 +24105,15 @@ snapshots: dependencies: ms: 2.1.2 + debug@4.3.4: + dependencies: + ms: 2.1.2 + debug@4.3.7: dependencies: ms: 2.1.3 - debug@4.4.1(supports-color@8.1.1): + debug@4.4.3(supports-color@8.1.1): dependencies: ms: 2.1.3 optionalDependencies: @@ -22149,13 +24208,13 @@ snapshots: depcheck@1.4.7: dependencies: - '@babel/parser': 7.28.4 - '@babel/traverse': 7.28.4 - '@vue/compiler-sfc': 3.5.21 + '@babel/parser': 7.28.5 + '@babel/traverse': 7.28.5 + '@vue/compiler-sfc': 3.5.22 callsite: 1.0.0 camelcase: 6.3.0 cosmiconfig: 7.1.0 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) deps-regex: 0.2.0 findup-sync: 5.0.0 ignore: 5.3.2 @@ -22168,29 +24227,29 @@ snapshots: please-upgrade-node: 3.2.0 readdirp: 3.6.0 require-package-name: 2.0.1 - resolve: 1.22.10 + resolve: 1.22.11 resolve-from: 5.0.0 - semver: 7.7.2 + semver: 7.7.3 yargs: 16.2.0 transitivePeerDependencies: - supports-color depd@2.0.0: {} - dependency-tree@10.0.9: + dependency-tree@11.2.0: dependencies: - commander: 10.0.1 - filing-cabinet: 4.2.0 - precinct: 11.0.5 + commander: 12.1.0 + filing-cabinet: 5.0.3 + precinct: 12.2.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color deps-regex@0.2.0: {} - derive-valtio@0.1.0(valtio@1.13.2(@types/react@19.1.13)(react@19.1.1)): + derive-valtio@0.1.0(valtio@1.13.2(react@18.3.1)): dependencies: - valtio: 1.13.2(@types/react@19.1.13)(react@19.1.1) + valtio: 1.13.2(react@18.3.1) des.js@1.1.0: dependencies: @@ -22205,7 +24264,7 @@ snapshots: detect-indent@6.1.0: {} - detect-libc@2.0.4: + detect-libc@2.1.2: optional: true detect-newline@3.1.0: {} @@ -22213,49 +24272,66 @@ snapshots: detect-port@1.6.1: dependencies: address: 1.2.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color - detective-amd@5.0.2: + detective-amd@6.0.1: dependencies: - ast-module-types: 5.0.0 + ast-module-types: 6.0.1 escodegen: 2.1.0 - get-amd-module-type: 5.0.1 - node-source-walk: 6.0.2 + get-amd-module-type: 6.0.1 + node-source-walk: 7.0.1 - detective-cjs@5.0.1: + detective-cjs@6.0.1: dependencies: - ast-module-types: 5.0.0 - node-source-walk: 6.0.2 + ast-module-types: 6.0.1 + node-source-walk: 7.0.1 detective-es6@4.0.1: dependencies: node-source-walk: 6.0.2 - detective-postcss@6.1.3: + detective-es6@5.0.1: + dependencies: + node-source-walk: 7.0.1 + + detective-postcss@7.0.1(postcss@8.5.6): dependencies: is-url: 1.2.4 postcss: 8.5.6 postcss-values-parser: 6.0.2(postcss@8.5.6) - detective-sass@5.0.3: + detective-sass@6.0.1: dependencies: gonzales-pe: 4.3.0 - node-source-walk: 6.0.2 + node-source-walk: 7.0.1 - detective-scss@4.0.3: + detective-scss@5.0.1: dependencies: gonzales-pe: 4.3.0 - node-source-walk: 6.0.2 + node-source-walk: 7.0.1 - detective-stylus@4.0.0: {} + detective-stylus@5.0.1: {} - detective-typescript@11.2.0: + detective-typescript@14.0.0(typescript@5.8.3): dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.8.3) - ast-module-types: 5.0.0 - node-source-walk: 6.0.2 + '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.8.3) + ast-module-types: 6.0.1 + node-source-walk: 7.0.1 + typescript: 5.8.3 + transitivePeerDependencies: + - supports-color + + detective-vue2@2.2.0(typescript@5.8.3): + dependencies: + '@dependents/detective-less': 5.0.1 + '@vue/compiler-sfc': 3.5.22 + detective-es6: 5.0.1 + detective-sass: 6.0.1 + detective-scss: 5.0.1 + detective-stylus: 5.0.1 + detective-typescript: 14.0.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -22322,7 +24398,7 @@ snapshots: dotenv@16.6.1: {} - dotenv@17.2.2: {} + dotenv@17.2.3: {} driftless@2.0.3: dependencies: @@ -22347,7 +24423,7 @@ snapshots: dependencies: safe-buffer: 5.2.1 - eciesjs@0.4.15: + eciesjs@0.4.16: dependencies: '@ecies/ciphers': 0.2.4(@noble/ciphers@1.3.0) '@noble/ciphers': 1.3.0 @@ -22360,7 +24436,7 @@ snapshots: dependencies: jake: 10.9.4 - electron-to-chromium@1.5.218: {} + electron-to-chromium@1.5.240: {} elliptic@6.5.4: dependencies: @@ -22397,11 +24473,6 @@ snapshots: iconv-lite: 0.6.3 whatwg-encoding: 3.1.1 - encoding@0.1.13: - dependencies: - iconv-lite: 0.6.3 - optional: true - end-of-stream@1.4.5: dependencies: once: 1.4.0 @@ -22423,7 +24494,7 @@ snapshots: enhanced-resolve@5.18.3: dependencies: graceful-fs: 4.2.11 - tapable: 2.2.3 + tapable: 2.3.0 enquirer@2.3.6: dependencies: @@ -22442,7 +24513,7 @@ snapshots: err-code@3.0.1: {} - error-ex@1.3.2: + error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 @@ -22632,34 +24703,34 @@ snapshots: '@esbuild/win32-ia32': 0.19.12 '@esbuild/win32-x64': 0.19.12 - esbuild@0.25.9: + esbuild@0.25.11: optionalDependencies: - '@esbuild/aix-ppc64': 0.25.9 - '@esbuild/android-arm': 0.25.9 - '@esbuild/android-arm64': 0.25.9 - '@esbuild/android-x64': 0.25.9 - '@esbuild/darwin-arm64': 0.25.9 - '@esbuild/darwin-x64': 0.25.9 - '@esbuild/freebsd-arm64': 0.25.9 - '@esbuild/freebsd-x64': 0.25.9 - '@esbuild/linux-arm': 0.25.9 - '@esbuild/linux-arm64': 0.25.9 - '@esbuild/linux-ia32': 0.25.9 - '@esbuild/linux-loong64': 0.25.9 - '@esbuild/linux-mips64el': 0.25.9 - '@esbuild/linux-ppc64': 0.25.9 - '@esbuild/linux-riscv64': 0.25.9 - '@esbuild/linux-s390x': 0.25.9 - '@esbuild/linux-x64': 0.25.9 - '@esbuild/netbsd-arm64': 0.25.9 - '@esbuild/netbsd-x64': 0.25.9 - '@esbuild/openbsd-arm64': 0.25.9 - '@esbuild/openbsd-x64': 0.25.9 - '@esbuild/openharmony-arm64': 0.25.9 - '@esbuild/sunos-x64': 0.25.9 - '@esbuild/win32-arm64': 0.25.9 - '@esbuild/win32-ia32': 0.25.9 - '@esbuild/win32-x64': 0.25.9 + '@esbuild/aix-ppc64': 0.25.11 + '@esbuild/android-arm': 0.25.11 + '@esbuild/android-arm64': 0.25.11 + '@esbuild/android-x64': 0.25.11 + '@esbuild/darwin-arm64': 0.25.11 + '@esbuild/darwin-x64': 0.25.11 + '@esbuild/freebsd-arm64': 0.25.11 + '@esbuild/freebsd-x64': 0.25.11 + '@esbuild/linux-arm': 0.25.11 + '@esbuild/linux-arm64': 0.25.11 + '@esbuild/linux-ia32': 0.25.11 + '@esbuild/linux-loong64': 0.25.11 + '@esbuild/linux-mips64el': 0.25.11 + '@esbuild/linux-ppc64': 0.25.11 + '@esbuild/linux-riscv64': 0.25.11 + '@esbuild/linux-s390x': 0.25.11 + '@esbuild/linux-x64': 0.25.11 + '@esbuild/netbsd-arm64': 0.25.11 + '@esbuild/netbsd-x64': 0.25.11 + '@esbuild/openbsd-arm64': 0.25.11 + '@esbuild/openbsd-x64': 0.25.11 + '@esbuild/openharmony-arm64': 0.25.11 + '@esbuild/sunos-x64': 0.25.11 + '@esbuild/win32-arm64': 0.25.11 + '@esbuild/win32-ia32': 0.25.11 + '@esbuild/win32-x64': 0.25.11 escalade@3.2.0: {} @@ -22687,19 +24758,19 @@ snapshots: dependencies: debug: 3.2.7 is-core-module: 2.16.1 - resolve: 1.22.10 + resolve: 1.22.11 transitivePeerDependencies: - supports-color eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@9.34.0)(typescript@5.8.3))(eslint-plugin-import@2.32.0)(eslint@9.34.0): dependencies: '@nolyfill/is-core-module': 1.0.39 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) enhanced-resolve: 5.18.3 eslint: 9.34.0 eslint-module-utils: 2.12.1(@typescript-eslint/parser@6.21.0(eslint@9.34.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3)(eslint@9.34.0) fast-glob: 3.3.3 - get-tsconfig: 4.10.1 + get-tsconfig: 4.13.0 is-bun-module: 1.3.0 is-glob: 4.0.3 optionalDependencies: @@ -22756,7 +24827,7 @@ snapshots: array-includes: 3.1.9 array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 - axe-core: 4.10.3 + axe-core: 4.11.0 axobject-query: 3.1.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 @@ -22782,8 +24853,8 @@ snapshots: eslint@9.34.0: dependencies: '@eslint-community/eslint-utils': 4.9.0(eslint@9.34.0) - '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.21.0 + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.21.1 '@eslint/config-helpers': 0.3.1 '@eslint/core': 0.15.2 '@eslint/eslintrc': 3.3.1 @@ -22797,7 +24868,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) escape-string-regexp: 4.0.0 eslint-scope: 8.4.0 eslint-visitor-keys: 4.2.1 @@ -22950,8 +25021,6 @@ snapshots: eventemitter3@5.0.1: {} - events@1.1.1: {} - events@3.3.0: {} evp_bytestokey@1.0.3: @@ -22971,6 +25040,8 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 + exit-x@0.2.2: {} + exit@0.1.2: {} expand-tilde@2.0.2: @@ -22985,6 +25056,15 @@ snapshots: jest-message-util: 29.7.0 jest-util: 29.7.0 + expect@30.2.0: + dependencies: + '@jest/expect-utils': 30.2.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 + express-rate-limit@8.1.0(express@5.1.0): dependencies: express: 5.1.0 @@ -22998,7 +25078,7 @@ snapshots: content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -23065,6 +25145,10 @@ snapshots: dependencies: strnum: 2.1.1 + fast-xml-parser@5.3.0: + dependencies: + strnum: 2.1.1 + fastest-levenshtein@1.0.16: {} fastq@1.19.1: @@ -23100,18 +25184,17 @@ snapshots: dependencies: minimatch: 5.1.6 - filing-cabinet@4.2.0: + filing-cabinet@5.0.3: dependencies: app-module-path: 2.2.0 - commander: 10.0.1 + commander: 12.1.0 enhanced-resolve: 5.18.3 - is-relative-path: 1.0.2 - module-definition: 5.0.1 - module-lookup-amd: 8.0.5 - resolve: 1.22.10 - resolve-dependency-path: 3.0.2 - sass-lookup: 5.0.1 - stylus-lookup: 5.0.1 + module-definition: 6.0.1 + module-lookup-amd: 9.0.5 + resolve: 1.22.11 + resolve-dependency-path: 4.0.1 + sass-lookup: 6.1.0 + stylus-lookup: 6.1.0 tsconfig-paths: 4.2.0 typescript: 5.8.3 @@ -23127,7 +25210,7 @@ snapshots: finalhandler@2.1.0: dependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 @@ -23166,9 +25249,7 @@ snapshots: flatted@3.3.3: {} - follow-redirects@1.15.11(debug@4.4.1): - optionalDependencies: - debug: 4.4.1(supports-color@8.1.1) + follow-redirects@1.15.11: {} for-each@0.3.5: dependencies: @@ -23248,12 +25329,12 @@ snapshots: functions-have-names@1.2.3: {} - gaxios@6.7.1(encoding@0.1.13): + gaxios@6.7.1: dependencies: extend: 3.0.2 https-proxy-agent: 7.0.6 is-stream: 2.0.1 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 uuid: 9.0.1 transitivePeerDependencies: - encoding @@ -23267,16 +25348,16 @@ snapshots: transitivePeerDependencies: - supports-color - gcp-metadata@6.1.1(encoding@0.1.13): + gcp-metadata@6.1.1: dependencies: - gaxios: 6.7.1(encoding@0.1.13) + gaxios: 6.7.1 google-logging-utils: 0.0.2 json-bigint: 1.0.0 transitivePeerDependencies: - encoding - supports-color - gcp-metadata@7.0.1: + gcp-metadata@8.1.1: dependencies: gaxios: 7.1.2 google-logging-utils: 1.1.1 @@ -23284,14 +25365,16 @@ snapshots: transitivePeerDependencies: - supports-color + generator-function@2.0.1: {} + generic-pool@3.9.0: {} gensync@1.0.0-beta.2: {} - get-amd-module-type@5.0.1: + get-amd-module-type@6.0.1: dependencies: - ast-module-types: 5.0.0 - node-source-walk: 6.0.2 + ast-module-types: 6.0.1 + node-source-walk: 7.0.1 get-caller-file@2.0.5: {} @@ -23331,7 +25414,7 @@ snapshots: get-them-args@1.3.2: {} - get-tsconfig@4.10.1: + get-tsconfig@4.13.0: dependencies: resolve-pkg-maps: 1.0.0 @@ -23343,6 +25426,15 @@ snapshots: dependencies: is-glob: 4.0.3 + glob@10.4.5: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + glob@11.0.3: dependencies: foreground-child: 3.3.1 @@ -23406,25 +25498,25 @@ snapshots: dependencies: minimist: 1.2.8 - google-auth-library@10.4.0: + google-auth-library@10.4.2: dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 gaxios: 7.1.2 - gcp-metadata: 7.0.1 + gcp-metadata: 8.1.1 google-logging-utils: 1.1.1 gtoken: 8.0.0 jws: 4.0.0 transitivePeerDependencies: - supports-color - google-auth-library@9.15.1(encoding@0.1.13): + google-auth-library@9.15.1: dependencies: base64-js: 1.5.1 ecdsa-sig-formatter: 1.0.11 - gaxios: 6.7.1(encoding@0.1.13) - gcp-metadata: 6.1.1(encoding@0.1.13) - gtoken: 7.1.0(encoding@0.1.13) + gaxios: 6.7.1 + gcp-metadata: 6.1.1 + gtoken: 7.1.0 jws: 4.0.0 transitivePeerDependencies: - encoding @@ -23432,14 +25524,14 @@ snapshots: google-gax@5.0.4: dependencies: - '@grpc/grpc-js': 1.13.4 + '@grpc/grpc-js': 1.14.0 '@grpc/proto-loader': 0.8.0 duplexify: 4.1.3 - google-auth-library: 10.4.0 + google-auth-library: 10.4.2 google-logging-utils: 1.1.1 node-fetch: 3.3.2 object-hash: 3.0.0 - proto3-json-serializer: 3.0.2 + proto3-json-serializer: 3.0.3 protobufjs: 7.5.4 retry-request: 8.0.2 transitivePeerDependencies: @@ -23469,9 +25561,9 @@ snapshots: graphemer@1.4.0: {} - gtoken@7.1.0(encoding@0.1.13): + gtoken@7.1.0: dependencies: - gaxios: 6.7.1(encoding@0.1.13) + gaxios: 6.7.1 jws: 4.0.0 transitivePeerDependencies: - encoding @@ -23530,14 +25622,17 @@ snapshots: dependencies: has-symbols: 1.1.0 - hash-base@2.0.2: + hash-base@3.0.5: dependencies: inherits: 2.0.4 + safe-buffer: 5.2.1 - hash-base@3.0.5: + hash-base@3.1.2: dependencies: inherits: 2.0.4 + readable-stream: 2.3.8 safe-buffer: 5.2.1 + to-buffer: 1.2.2 hash.js@1.1.7: dependencies: @@ -23562,6 +25657,8 @@ snapshots: dependencies: parse-passwd: 1.0.0 + hono@4.10.2: {} + hosted-git-info@2.8.9: {} hosted-git-info@4.1.0: @@ -23605,14 +25702,14 @@ snapshots: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -23626,25 +25723,25 @@ snapshots: https-proxy-agent@5.0.0: dependencies: agent-base: 6.0.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color https-proxy-agent@7.0.6: dependencies: agent-base: 7.1.4 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color - human-id@4.1.1: {} + human-id@4.1.2: {} human-signals@2.1.0: {} @@ -23668,8 +25765,6 @@ snapshots: dependencies: harmony-reflect: 1.6.2 - ieee754@1.1.13: {} - ieee754@1.2.1: {} ignore@5.3.2: {} @@ -23718,11 +25813,11 @@ snapshots: hasown: 2.0.2 side-channel: 1.1.0 - ioredis@5.7.0: + ioredis@5.8.2: dependencies: - '@ioredis/commands': 1.3.1 + '@ioredis/commands': 1.4.0 cluster-key-slot: 1.1.2 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) denque: 2.1.0 lodash.defaults: 4.2.0 lodash.isarguments: 3.1.0 @@ -23738,15 +25833,15 @@ snapshots: ipaddr.js@1.9.1: {} - ipfs-only-hash@4.0.0(encoding@0.1.13): + ipfs-only-hash@4.0.0: dependencies: - ipfs-unixfs-importer: 7.0.3(encoding@0.1.13) + ipfs-unixfs-importer: 7.0.3 meow: 9.0.0 transitivePeerDependencies: - encoding - supports-color - ipfs-unixfs-importer@12.0.1(encoding@0.1.13): + ipfs-unixfs-importer@12.0.1: dependencies: '@ipld/dag-pb': 4.1.5 '@multiformats/murmur3': 2.1.8 @@ -23760,14 +25855,14 @@ snapshots: it-parallel-batch: 2.0.1 merge-options: 3.0.4 multiformats: 11.0.2 - rabin-wasm: 0.1.5(encoding@0.1.13) + rabin-wasm: 0.1.5 uint8arraylist: 2.4.8 uint8arrays: 4.0.10 transitivePeerDependencies: - encoding - supports-color - ipfs-unixfs-importer@7.0.3(encoding@0.1.13): + ipfs-unixfs-importer@7.0.3: dependencies: bl: 5.1.0 cids: 1.1.9 @@ -23781,7 +25876,7 @@ snapshots: it-parallel-batch: 1.0.11 merge-options: 3.0.4 multihashing-async: 2.1.4 - rabin-wasm: 0.1.5(encoding@0.1.13) + rabin-wasm: 0.1.5 uint8arrays: 2.1.10 transitivePeerDependencies: - encoding @@ -23845,7 +25940,7 @@ snapshots: is-bun-module@1.3.0: dependencies: - semver: 7.7.2 + semver: 7.7.3 is-callable@1.2.7: {} @@ -23878,9 +25973,10 @@ snapshots: is-generator-fn@2.1.0: {} - is-generator-function@1.1.0: + is-generator-function@1.1.2: dependencies: call-bound: 1.0.4 + generator-function: 2.0.1 get-proto: 1.0.1 has-tostringtag: 1.0.2 safe-regex-test: 1.1.0 @@ -23932,8 +26028,6 @@ snapshots: is-regexp@1.0.0: {} - is-relative-path@1.0.2: {} - is-set@2.0.3: {} is-shared-array-buffer@1.0.4: @@ -23942,6 +26036,8 @@ snapshots: is-stream@2.0.1: {} + is-stream@3.0.0: {} + is-string@1.1.1: dependencies: call-bound: 1.0.4 @@ -24018,8 +26114,8 @@ snapshots: istanbul-lib-instrument@5.2.1: dependencies: - '@babel/core': 7.28.4 - '@babel/parser': 7.28.4 + '@babel/core': 7.28.5 + '@babel/parser': 7.28.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 6.3.1 @@ -24028,11 +26124,11 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: - '@babel/core': 7.28.4 - '@babel/parser': 7.28.4 + '@babel/core': 7.28.5 + '@babel/parser': 7.28.5 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 - semver: 7.7.2 + semver: 7.7.3 transitivePeerDependencies: - supports-color @@ -24044,12 +26140,20 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: - supports-color + istanbul-lib-source-maps@5.0.6: + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + debug: 4.4.3(supports-color@8.1.1) + istanbul-lib-coverage: 3.2.2 + transitivePeerDependencies: + - supports-color + istanbul-reports@3.2.0: dependencies: html-escaper: 2.0.2 @@ -24084,6 +26188,12 @@ snapshots: has-symbols: 1.1.0 set-function-name: 2.0.2 + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + jackspeak@4.1.1: dependencies: '@isaacs/cliui': 8.0.2 @@ -24112,10 +26222,16 @@ snapshots: - bufferutil - utf-8-validate - jest-changed-files@29.7.0: + jest-changed-files@29.7.0: + dependencies: + execa: 5.1.1 + jest-util: 29.7.0 + p-limit: 3.1.0 + + jest-changed-files@30.2.0: dependencies: execa: 5.1.1 - jest-util: 29.7.0 + jest-util: 30.2.0 p-limit: 3.1.0 jest-circus@29.7.0(babel-plugin-macros@3.1.0): @@ -24144,16 +26260,42 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@20.19.13)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3)): + jest-circus@30.2.0(babel-plugin-macros@3.1.0): + dependencies: + '@jest/environment': 30.2.0 + '@jest/expect': 30.2.0 + '@jest/test-result': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 20.0.0 + chalk: 4.1.2 + co: 4.6.0 + dedent: 1.7.0(babel-plugin-macros@3.1.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 + p-limit: 3.1.0 + pretty-format: 30.2.0 + pure-rand: 7.0.1 + slash: 3.0.0 + stack-utils: 2.0.6 + transitivePeerDependencies: + - babel-plugin-macros + - supports-color + + jest-cli@29.7.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.19.13)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3)) + create-jest: 29.7.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@20.19.13)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3)) + jest-config: 29.7.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -24163,12 +26305,31 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3)): + jest-cli@30.2.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)): + dependencies: + '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)) + '@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.2.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)) + jest-util: 30.2.0 + jest-validate: 30.2.0 + yargs: 17.7.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - esbuild-register + - supports-color + - ts-node + + jest-config@29.7.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)): dependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@jest/test-sequencer': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.4) + babel-jest: 29.7.0(@babel/core@7.28.5) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 @@ -24189,38 +26350,40 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 20.0.0 - ts-node: 10.9.2(@types/node@20.19.13)(typescript@5.8.3) + ts-node: 10.9.2(@types/node@20.0.0)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color - jest-config@29.7.0(@types/node@20.19.13)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3)): + jest-config@30.2.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)): dependencies: - '@babel/core': 7.28.4 - '@jest/test-sequencer': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.4) + '@babel/core': 7.28.5 + '@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(@babel/core@7.28.5) chalk: 4.1.2 - ci-info: 3.9.0 + ci-info: 4.3.1 deepmerge: 4.3.1 - glob: 7.2.3 + glob: 10.4.5 graceful-fs: 4.2.11 - jest-circus: 29.7.0(babel-plugin-macros@3.1.0) - jest-environment-node: 29.7.0 - jest-get-type: 29.6.3 - jest-regex-util: 29.6.3 - jest-resolve: 29.7.0 - jest-runner: 29.7.0 - jest-util: 29.7.0 - jest-validate: 29.7.0 + jest-circus: 30.2.0(babel-plugin-macros@3.1.0) + jest-docblock: 30.2.0 + jest-environment-node: 30.2.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 parse-json: 5.2.0 - pretty-format: 29.7.0 + pretty-format: 30.2.0 slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 20.19.13 - ts-node: 10.9.2(@types/node@20.19.13)(typescript@5.8.3) + '@types/node': 20.0.0 + ts-node: 10.9.2(@types/node@20.0.0)(typescript@5.8.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -24239,10 +26402,21 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 + jest-diff@30.2.0: + dependencies: + '@jest/diff-sequences': 30.0.1 + '@jest/get-type': 30.1.0 + chalk: 4.1.2 + pretty-format: 30.2.0 + jest-docblock@29.7.0: dependencies: detect-newline: 3.1.0 + jest-docblock@30.2.0: + dependencies: + detect-newline: 3.1.0 + jest-each@29.7.0: dependencies: '@jest/types': 29.6.3 @@ -24251,13 +26425,21 @@ snapshots: jest-util: 29.7.0 pretty-format: 29.7.0 + jest-each@30.2.0: + dependencies: + '@jest/get-type': 30.1.0 + '@jest/types': 30.2.0 + chalk: 4.1.2 + jest-util: 30.2.0 + pretty-format: 30.2.0 + jest-environment-jsdom@29.7.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): dependencies: '@jest/environment': 29.7.0 '@jest/fake-timers': 29.7.0 '@jest/types': 29.6.3 '@types/jsdom': 20.0.1 - '@types/node': 20.19.13 + '@types/node': 20.0.0 jest-mock: 29.7.0 jest-util: 29.7.0 jsdom: 20.0.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) @@ -24275,6 +26457,16 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 + jest-environment-node@30.2.0: + dependencies: + '@jest/environment': 30.2.0 + '@jest/fake-timers': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 20.0.0 + jest-mock: 30.2.0 + jest-util: 30.2.0 + jest-validate: 30.2.0 + jest-get-type@27.5.1: {} jest-get-type@29.6.3: {} @@ -24295,11 +26487,31 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + jest-haste-map@30.2.0: + dependencies: + '@jest/types': 30.2.0 + '@types/node': 20.0.0 + 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 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + jest-leak-detector@29.7.0: dependencies: jest-get-type: 29.6.3 pretty-format: 29.7.0 + jest-leak-detector@30.2.0: + dependencies: + '@jest/get-type': 30.1.0 + pretty-format: 30.2.0 + jest-matcher-utils@27.5.1: dependencies: chalk: 4.1.2 @@ -24314,6 +26526,13 @@ snapshots: jest-get-type: 29.6.3 pretty-format: 29.7.0 + jest-matcher-utils@30.2.0: + dependencies: + '@jest/get-type': 30.1.0 + chalk: 4.1.2 + jest-diff: 30.2.0 + pretty-format: 30.2.0 + jest-message-util@29.7.0: dependencies: '@babel/code-frame': 7.27.1 @@ -24326,18 +26545,42 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 + jest-message-util@30.2.0: + dependencies: + '@babel/code-frame': 7.27.1 + '@jest/types': 30.2.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 + slash: 3.0.0 + stack-utils: 2.0.6 + jest-mock@29.7.0: dependencies: '@jest/types': 29.6.3 '@types/node': 20.0.0 jest-util: 29.7.0 + jest-mock@30.2.0: + dependencies: + '@jest/types': 30.2.0 + '@types/node': 20.0.0 + jest-util: 30.2.0 + jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): optionalDependencies: jest-resolve: 29.7.0 + jest-pnp-resolver@1.2.3(jest-resolve@30.2.0): + optionalDependencies: + jest-resolve: 30.2.0 + jest-regex-util@29.6.3: {} + jest-regex-util@30.0.1: {} + jest-resolve-dependencies@29.7.0: dependencies: jest-regex-util: 29.6.3 @@ -24345,6 +26588,13 @@ snapshots: transitivePeerDependencies: - supports-color + jest-resolve-dependencies@30.2.0: + dependencies: + jest-regex-util: 30.0.1 + jest-snapshot: 30.2.0 + transitivePeerDependencies: + - supports-color + jest-resolve@29.7.0: dependencies: chalk: 4.1.2 @@ -24353,10 +26603,21 @@ snapshots: jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) jest-util: 29.7.0 jest-validate: 29.7.0 - resolve: 1.22.10 + resolve: 1.22.11 resolve.exports: 2.0.3 slash: 3.0.0 + jest-resolve@30.2.0: + dependencies: + chalk: 4.1.2 + graceful-fs: 4.2.11 + jest-haste-map: 30.2.0 + jest-pnp-resolver: 1.2.3(jest-resolve@30.2.0) + jest-util: 30.2.0 + jest-validate: 30.2.0 + slash: 3.0.0 + unrs-resolver: 1.11.1 + jest-runner@29.7.0: dependencies: '@jest/console': 29.7.0 @@ -24383,6 +26644,33 @@ snapshots: transitivePeerDependencies: - supports-color + jest-runner@30.2.0: + 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 + '@types/node': 20.0.0 + 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 + p-limit: 3.1.0 + source-map-support: 0.5.13 + transitivePeerDependencies: + - supports-color + jest-runtime@29.7.0: dependencies: '@jest/environment': 29.7.0 @@ -24395,7 +26683,7 @@ snapshots: '@types/node': 20.0.0 chalk: 4.1.2 cjs-module-lexer: 1.4.3 - collect-v8-coverage: 1.0.2 + collect-v8-coverage: 1.0.3 glob: 7.2.3 graceful-fs: 4.2.11 jest-haste-map: 29.7.0 @@ -24410,17 +26698,44 @@ snapshots: transitivePeerDependencies: - supports-color + jest-runtime@30.2.0: + dependencies: + '@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.2.0 + '@jest/transform': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 20.0.0 + chalk: 4.1.2 + cjs-module-lexer: 2.1.0 + collect-v8-coverage: 1.0.3 + glob: 10.4.5 + graceful-fs: 4.2.11 + 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.2.0 + jest-snapshot: 30.2.0 + jest-util: 30.2.0 + slash: 3.0.0 + strip-bom: 4.0.0 + transitivePeerDependencies: + - supports-color + jest-snapshot@29.7.0: dependencies: - '@babel/core': 7.28.4 - '@babel/generator': 7.28.3 - '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4) - '@babel/types': 7.28.4 + '@babel/core': 7.28.5 + '@babel/generator': 7.28.5 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) + '@babel/types': 7.28.5 '@jest/expect-utils': 29.7.0 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4) + babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.5) chalk: 4.1.2 expect: 29.7.0 graceful-fs: 4.2.11 @@ -24431,7 +26746,33 @@ snapshots: jest-util: 29.7.0 natural-compare: 1.4.0 pretty-format: 29.7.0 - semver: 7.7.2 + semver: 7.7.3 + transitivePeerDependencies: + - supports-color + + jest-snapshot@30.2.0: + dependencies: + '@babel/core': 7.28.5 + '@babel/generator': 7.28.5 + '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.5) + '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.5) + '@babel/types': 7.28.5 + '@jest/expect-utils': 30.2.0 + '@jest/get-type': 30.1.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(@babel/core@7.28.5) + chalk: 4.1.2 + expect: 30.2.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 + semver: 7.7.3 + synckit: 0.11.11 transitivePeerDependencies: - supports-color @@ -24444,6 +26785,15 @@ snapshots: graceful-fs: 4.2.11 picomatch: 2.3.1 + jest-util@30.2.0: + dependencies: + '@jest/types': 30.2.0 + '@types/node': 20.0.0 + chalk: 4.1.2 + ci-info: 4.3.1 + graceful-fs: 4.2.11 + picomatch: 4.0.3 + jest-validate@29.7.0: dependencies: '@jest/types': 29.6.3 @@ -24453,6 +26803,15 @@ snapshots: leven: 3.1.0 pretty-format: 29.7.0 + jest-validate@30.2.0: + dependencies: + '@jest/get-type': 30.1.0 + '@jest/types': 30.2.0 + camelcase: 6.3.0 + chalk: 4.1.2 + leven: 3.1.0 + pretty-format: 30.2.0 + jest-watcher@29.7.0: dependencies: '@jest/test-result': 29.7.0 @@ -24464,6 +26823,17 @@ snapshots: jest-util: 29.7.0 string-length: 4.0.2 + jest-watcher@30.2.0: + dependencies: + '@jest/test-result': 30.2.0 + '@jest/types': 30.2.0 + '@types/node': 20.0.0 + ansi-escapes: 4.3.2 + chalk: 4.1.2 + emittery: 0.13.1 + jest-util: 30.2.0 + string-length: 4.0.2 + jest-worker@29.7.0: dependencies: '@types/node': 20.0.0 @@ -24471,15 +26841,36 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@20.19.13)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3)): + jest-worker@30.2.0: + dependencies: + '@types/node': 20.0.0 + '@ungap/structured-clone': 1.3.0 + jest-util: 30.2.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jest@29.7.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@20.19.13)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3)) + jest-cli: 29.7.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)) + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + + jest@30.2.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)): + dependencies: + '@jest/core': 30.2.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)) + '@jest/types': 30.2.0 + import-local: 3.2.0 + jest-cli: 30.2.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros + - esbuild-register - supports-color - ts-node @@ -24549,8 +26940,6 @@ snapshots: jsep@1.4.0: {} - jsesc@3.0.2: {} - jsesc@3.1.0: {} json-bigint@1.0.0: @@ -24584,12 +26973,12 @@ snapshots: json5@2.2.3: {} - jsonc-eslint-parser@2.4.0: + jsonc-eslint-parser@2.4.1: dependencies: acorn: 8.15.0 eslint-visitor-keys: 3.4.3 espree: 9.6.1 - semver: 7.7.2 + semver: 7.7.3 jsonc-parser@3.2.0: {} @@ -24620,7 +27009,7 @@ snapshots: lodash.isstring: 4.0.1 lodash.once: 4.1.1 ms: 2.1.3 - semver: 7.7.2 + semver: 7.7.3 jsrsasign@10.9.0: {} @@ -24780,11 +27169,15 @@ snapshots: long@5.3.2: {} + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + lowercase-keys@2.0.0: {} lru-cache@10.4.3: {} - lru-cache@11.2.1: {} + lru-cache@11.2.2: {} lru-cache@5.1.1: dependencies: @@ -24804,7 +27197,7 @@ snapshots: make-dir@4.0.0: dependencies: - semver: 7.7.2 + semver: 7.7.3 make-error@1.3.6: {} @@ -24946,20 +27339,16 @@ snapshots: transitivePeerDependencies: - supports-color - mkdirp@0.5.6: - dependencies: - minimist: 1.2.8 - mkdirp@1.0.4: {} - module-definition@5.0.1: + module-definition@6.0.1: dependencies: - ast-module-types: 5.0.0 - node-source-walk: 6.0.2 + ast-module-types: 6.0.1 + node-source-walk: 7.0.1 - module-lookup-amd@8.0.5: + module-lookup-amd@9.0.5: dependencies: - commander: 10.0.1 + commander: 12.1.0 glob: 7.2.3 requirejs: 2.3.7 requirejs-config-file: 4.0.0 @@ -25003,7 +27392,7 @@ snapshots: multiformats@12.1.3: {} - multiformats@13.4.0: {} + multiformats@13.4.1: {} multiformats@9.9.0: {} @@ -25043,6 +27432,8 @@ snapshots: nanotimer@0.3.14: {} + napi-postinstall@0.3.4: {} + natural-compare@1.4.0: {} negotiator@1.0.0: {} @@ -25055,11 +27446,9 @@ snapshots: node-fetch-native@1.6.7: {} - node-fetch@2.7.0(encoding@0.1.13): + node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - optionalDependencies: - encoding: 0.1.13 node-fetch@3.3.2: dependencies: @@ -25069,7 +27458,7 @@ snapshots: node-gyp-build-optional-packages@5.2.2: dependencies: - detect-libc: 2.0.4 + detect-libc: 2.1.2 optional: true node-gyp-build@4.8.4: {} @@ -25084,18 +27473,22 @@ snapshots: node-mock-http@1.0.3: {} - node-releases@2.0.20: {} + node-releases@2.0.26: {} node-source-walk@6.0.2: dependencies: - '@babel/parser': 7.28.4 + '@babel/parser': 7.28.5 + + node-source-walk@7.0.1: + dependencies: + '@babel/parser': 7.28.5 nofilter@1.0.4: {} normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.10 + resolve: 1.22.11 semver: 5.7.2 validate-npm-package-license: 3.0.4 @@ -25103,7 +27496,7 @@ snapshots: dependencies: hosted-git-info: 4.1.0 is-core-module: 2.16.1 - semver: 7.7.2 + semver: 7.7.3 validate-npm-package-license: 3.0.4 normalize-path@3.0.0: {} @@ -25114,7 +27507,7 @@ snapshots: dependencies: hosted-git-info: 7.0.2 proc-log: 3.0.0 - semver: 7.7.2 + semver: 7.7.3 validate-npm-package-name: 5.0.1 npm-run-path@4.0.1: @@ -25133,7 +27526,7 @@ snapshots: '@yarnpkg/lockfile': 1.1.0 '@yarnpkg/parsers': 3.0.2 '@zkochan/js-yaml': 0.0.7 - axios: 1.12.0(debug@4.4.1) + axios: 1.12.2 chalk: 4.1.2 cli-cursor: 3.1.0 cli-spinners: 2.6.1 @@ -25154,7 +27547,7 @@ snapshots: open: 8.4.2 ora: 5.3.0 resolve.exports: 2.0.3 - semver: 7.7.2 + semver: 7.7.3 string-width: 4.2.3 tar-stream: 2.2.0 tmp: 0.2.5 @@ -25263,6 +27656,12 @@ snapshots: is-docker: 2.2.1 is-wsl: 2.2.0 + openapi-fetch@0.13.8: + dependencies: + openapi-typescript-helpers: 0.0.15 + + openapi-typescript-helpers@0.0.15: {} + opentracing@0.14.7: {} optionator@0.9.4: @@ -25308,12 +27707,12 @@ snapshots: ox@0.6.7(typescript@5.8.3)(zod@3.24.3): dependencies: - '@adraffy/ens-normalize': 1.11.0 + '@adraffy/ens-normalize': 1.11.1 '@noble/curves': 1.8.1 '@noble/hashes': 1.8.0 - '@scure/bip32': 1.7.0 - '@scure/bip39': 1.6.0 - abitype: 1.1.0(typescript@5.8.3)(zod@3.24.3) + '@scure/bip32': 1.6.2 + '@scure/bip39': 1.5.4 + abitype: 1.0.8(typescript@5.8.3)(zod@3.24.3) eventemitter3: 5.0.1 optionalDependencies: typescript: 5.8.3 @@ -25322,12 +27721,27 @@ snapshots: ox@0.6.9(typescript@5.8.3)(zod@3.24.3): dependencies: - '@adraffy/ens-normalize': 1.11.0 + '@adraffy/ens-normalize': 1.11.1 '@noble/curves': 1.8.1 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.1.0(typescript@5.8.3)(zod@3.24.3) + abitype: 1.1.1(typescript@5.8.3)(zod@3.24.3) + eventemitter3: 5.0.1 + optionalDependencies: + typescript: 5.8.3 + transitivePeerDependencies: + - zod + + ox@0.9.12(typescript@5.8.3)(zod@4.1.12): + dependencies: + '@adraffy/ens-normalize': 1.11.1 + '@noble/ciphers': 1.3.0 + '@noble/curves': 1.9.1 + '@noble/hashes': 1.8.0 + '@scure/bip32': 1.7.0 + '@scure/bip39': 1.6.0 + abitype: 1.1.1(typescript@5.8.3)(zod@4.1.12) eventemitter3: 5.0.1 optionalDependencies: typescript: 5.8.3 @@ -25336,7 +27750,7 @@ snapshots: ox@0.9.6(typescript@5.8.3)(zod@3.22.4): dependencies: - '@adraffy/ens-normalize': 1.11.0 + '@adraffy/ens-normalize': 1.11.1 '@noble/ciphers': 1.3.0 '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 @@ -25351,7 +27765,7 @@ snapshots: ox@0.9.6(typescript@5.8.3)(zod@3.24.3): dependencies: - '@adraffy/ens-normalize': 1.11.0 + '@adraffy/ens-normalize': 1.11.1 '@noble/ciphers': 1.3.0 '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 @@ -25404,19 +27818,18 @@ snapshots: dependencies: callsites: 3.1.0 - parse-asn1@5.1.7: + parse-asn1@5.1.9: dependencies: asn1.js: 4.10.1 browserify-aes: 1.2.0 evp_bytestokey: 1.0.3 - hash-base: 3.0.5 - pbkdf2: 3.1.3 + pbkdf2: 3.1.5 safe-buffer: 5.2.1 parse-json@5.2.0: dependencies: '@babel/code-frame': 7.27.1 - error-ex: 1.3.2 + error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -25447,9 +27860,14 @@ snapshots: path-parse@1.0.7: {} + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + path-scurry@2.0.0: dependencies: - lru-cache: 11.2.1 + lru-cache: 11.2.2 minipass: 7.1.2 path-to-regexp@8.3.0: {} @@ -25461,14 +27879,14 @@ snapshots: process: 0.11.10 util: 0.10.4 - pbkdf2@3.1.3: + pbkdf2@3.1.5: dependencies: - create-hash: 1.1.3 + create-hash: 1.2.0 create-hmac: 1.1.7 - ripemd160: 2.0.1 + ripemd160: 2.0.3 safe-buffer: 5.2.1 sha.js: 2.4.12 - to-buffer: 1.2.1 + to-buffer: 1.2.2 picocolors@1.1.1: {} @@ -25497,7 +27915,7 @@ snapshots: dependencies: source-map-support: 0.5.21 - pino-pretty@13.1.1: + pino-pretty@13.1.2: dependencies: colorette: 2.0.20 dateformat: 4.6.3 @@ -25509,7 +27927,7 @@ snapshots: on-exit-leak-free: 2.1.2 pino-abstract-transport: 2.0.0 pump: 3.0.3 - secure-json-parse: 4.0.0 + secure-json-parse: 4.1.0 sonic-boom: 4.2.0 strip-json-comments: 5.0.3 @@ -25531,10 +27949,10 @@ snapshots: sonic-boom: 2.8.0 thread-stream: 0.15.2 - pino@9.9.5: + pino@9.14.0: dependencies: + '@pinojs/redact': 0.4.0 atomic-sleep: 1.0.0 - fast-redact: 3.5.0 on-exit-leak-free: 2.1.2 pino-abstract-transport: 2.0.0 pino-std-serializers: 7.0.0 @@ -25551,11 +27969,11 @@ snapshots: dependencies: find-up: 4.1.0 - playwright-core@1.54.2: {} + playwright-core@1.55.0: {} - playwright@1.54.2: + playwright@1.55.0: dependencies: - playwright-core: 1.54.2 + playwright-core: 1.55.0 optionalDependencies: fsevents: 2.3.2 @@ -25567,6 +27985,26 @@ snapshots: pony-cause@2.1.11: {} + porto@0.2.19(@tanstack/react-query@5.90.5(react@18.3.1))(@wagmi/core@2.22.1(@tanstack/query-core@5.90.5)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)))(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))(wagmi@2.18.2(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@tanstack/query-core@5.90.5)(@tanstack/react-query@5.90.5(react@18.3.1))(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))(zod@3.24.3)): + dependencies: + '@wagmi/core': 2.22.1(@tanstack/query-core@5.90.5)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)) + hono: 4.10.2 + idb-keyval: 6.2.2 + mipd: 0.0.7(typescript@5.8.3) + ox: 0.9.12(typescript@5.8.3)(zod@4.1.12) + viem: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + zod: 4.1.12 + zustand: 5.0.8(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)) + optionalDependencies: + '@tanstack/react-query': 5.90.5(react@18.3.1) + react: 18.3.1 + typescript: 5.8.3 + wagmi: 2.18.2(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@tanstack/query-core@5.90.5)(@tanstack/react-query@5.90.5(react@18.3.1))(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))(zod@3.24.3) + transitivePeerDependencies: + - '@types/react' + - immer + - use-sync-external-store + possible-typed-array-names@1.1.0: {} postcss-values-parser@6.0.2(postcss@8.5.6): @@ -25582,30 +28020,27 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - posthog-node@4.18.0(debug@4.4.1): - dependencies: - axios: 1.12.0(debug@4.4.1) - transitivePeerDependencies: - - debug - preact@10.24.2: {} - preact@10.27.1: {} - - precinct@11.0.5: - dependencies: - '@dependents/detective-less': 4.1.0 - commander: 10.0.1 - detective-amd: 5.0.2 - detective-cjs: 5.0.1 - detective-es6: 4.0.1 - detective-postcss: 6.1.3 - detective-sass: 5.0.3 - detective-scss: 4.0.3 - detective-stylus: 4.0.0 - detective-typescript: 11.2.0 - module-definition: 5.0.1 - node-source-walk: 6.0.2 + preact@10.27.2: {} + + precinct@12.2.0: + dependencies: + '@dependents/detective-less': 5.0.1 + commander: 12.1.0 + detective-amd: 6.0.1 + detective-cjs: 6.0.1 + detective-es6: 5.0.1 + detective-postcss: 7.0.1(postcss@8.5.6) + detective-sass: 6.0.1 + detective-scss: 5.0.1 + detective-stylus: 5.0.1 + detective-typescript: 14.0.0(typescript@5.8.3) + detective-vue2: 2.2.0(typescript@5.8.3) + module-definition: 6.0.1 + node-source-walk: 7.0.1 + postcss: 8.5.6 + typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -25627,6 +28062,12 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 + pretty-format@30.2.0: + dependencies: + '@jest/schemas': 30.0.5 + ansi-styles: 5.2.0 + react-is: 18.3.1 + proc-log@3.0.0: {} process-nextick-args@2.0.1: {} @@ -25651,7 +28092,7 @@ snapshots: kleur: 3.0.3 sisteransi: 1.0.5 - proto3-json-serializer@3.0.2: + proto3-json-serializer@3.0.3: dependencies: protobufjs: 7.5.4 @@ -25704,7 +28145,7 @@ snapshots: bn.js: 4.12.2 browserify-rsa: 4.1.1 create-hash: 1.2.0 - parse-asn1: 5.1.7 + parse-asn1: 5.1.9 randombytes: 2.1.0 safe-buffer: 5.2.1 @@ -25715,14 +28156,14 @@ snapshots: punycode.js@2.3.1: {} - punycode@1.3.2: {} - punycode@1.4.1: {} punycode@2.3.1: {} pure-rand@6.1.0: {} + pure-rand@7.0.1: {} + pvtsutils@1.3.6: dependencies: tslib: 2.8.1 @@ -25751,8 +28192,6 @@ snapshots: querystring-es3@0.2.1: {} - querystring@0.2.0: {} - querystringify@2.2.0: {} queue-microtask@1.2.3: {} @@ -25765,13 +28204,13 @@ snapshots: quote-unquote@1.0.0: {} - rabin-wasm@0.1.5(encoding@0.1.13): + rabin-wasm@0.1.5: dependencies: '@assemblyscript/loader': 0.9.4 bl: 5.1.0 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) minimist: 1.2.8 - node-fetch: 2.7.0(encoding@0.1.13) + node-fetch: 2.7.0 readable-stream: 3.6.2 transitivePeerDependencies: - encoding @@ -25808,7 +28247,9 @@ snapshots: react-is@18.3.1: {} - react@19.1.1: {} + react@18.3.1: + dependencies: + loose-envify: 1.4.0 read-pkg-up@7.0.1: dependencies: @@ -25908,20 +28349,20 @@ snapshots: gopd: 1.2.0 set-function-name: 2.0.2 - regexpu-core@6.3.1: + regexpu-core@6.4.0: dependencies: regenerate: 1.4.2 regenerate-unicode-properties: 10.2.2 regjsgen: 0.8.0 - regjsparser: 0.12.0 + regjsparser: 0.13.0 unicode-match-property-ecmascript: 2.0.0 unicode-match-property-value-ecmascript: 2.2.1 regjsgen@0.8.0: {} - regjsparser@0.12.0: + regjsparser@0.13.0: dependencies: - jsesc: 3.0.2 + jsesc: 3.1.0 require-directory@2.1.1: {} @@ -25946,7 +28387,7 @@ snapshots: dependencies: resolve-from: 5.0.0 - resolve-dependency-path@3.0.2: {} + resolve-dependency-path@4.0.1: {} resolve-dir@1.0.1: dependencies: @@ -25961,7 +28402,7 @@ snapshots: resolve.exports@2.0.3: {} - resolve@1.22.10: + resolve@1.22.11: dependencies: is-core-module: 2.16.1 path-parse: 1.0.7 @@ -25985,32 +28426,19 @@ snapshots: reusify@1.1.0: {} - rimraf@2.6.3: - dependencies: - glob: 7.2.3 - - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - rimraf@6.0.1: dependencies: glob: 11.0.3 package-json-from-dist: 1.0.1 - ripemd160@2.0.1: + ripemd160@2.0.3: dependencies: - hash-base: 2.0.2 - inherits: 2.0.4 - - ripemd160@2.0.2: - dependencies: - hash-base: 3.0.5 + hash-base: 3.1.2 inherits: 2.0.4 router@2.2.0: dependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 @@ -26018,7 +28446,7 @@ snapshots: transitivePeerDependencies: - supports-color - rpc-websockets@9.1.3: + rpc-websockets@9.2.0: dependencies: '@swc/helpers': 0.5.17 '@types/uuid': 8.3.4 @@ -26068,11 +28496,10 @@ snapshots: safer-buffer@2.1.2: {} - sass-lookup@5.0.1: + sass-lookup@6.1.0: dependencies: - commander: 10.0.1 - - sax@1.2.1: {} + commander: 12.1.0 + enhanced-resolve: 5.18.3 saxes@6.0.0: dependencies: @@ -26080,7 +28507,7 @@ snapshots: scrypt-js@3.0.1: {} - secure-json-parse@4.0.0: {} + secure-json-parse@4.1.0: {} seedrandom@3.0.5: {} @@ -26090,11 +28517,11 @@ snapshots: semver@6.3.1: {} - semver@7.7.2: {} + semver@7.7.3: {} send@1.2.0: dependencies: - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -26149,7 +28576,7 @@ snapshots: dependencies: inherits: 2.0.4 safe-buffer: 5.2.1 - to-buffer: 1.2.1 + to-buffer: 1.2.2 shebang-command@2.0.0: dependencies: @@ -26288,10 +28715,10 @@ snapshots: sprintf-js@1.1.3: {} - sqs-consumer@5.8.0(aws-sdk@2.1692.0): + sqs-consumer@6.0.2(@aws-sdk/client-sqs@3.916.0): dependencies: - aws-sdk: 2.1692.0 - debug: 4.4.1(supports-color@8.1.1) + '@aws-sdk/client-sqs': 3.916.0 + debug: 4.4.3(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -26434,14 +28861,14 @@ snapshots: stubs@3.0.0: {} - stylus-lookup@5.0.1: + stylus-lookup@6.1.0: dependencies: - commander: 10.0.1 + commander: 12.1.0 - stytch@12.35.0: + stytch@12.42.1: dependencies: jose: 5.10.0 - undici: 6.21.3 + undici: 6.22.0 superstruct@1.0.4: {} @@ -26463,6 +28890,10 @@ snapshots: symbol-tree@3.2.4: {} + synckit@0.11.11: + dependencies: + '@pkgr/core': 0.2.9 + table-layout@1.0.2: dependencies: array-back: 4.0.2 @@ -26470,7 +28901,7 @@ snapshots: typical: 5.2.0 wordwrapjs: 4.0.1 - tapable@2.2.3: {} + tapable@2.3.0: {} tar-stream@2.2.0: dependencies: @@ -26500,10 +28931,14 @@ snapshots: transitivePeerDependencies: - supports-color - temp@0.9.4: + temp-dir@3.0.0: {} + + tempy@3.1.0: dependencies: - mkdirp: 0.5.6 - rimraf: 2.6.3 + is-stream: 3.0.0 + temp-dir: 3.0.0 + type-fest: 2.19.0 + unique-string: 3.0.0 term-size@2.2.1: {} @@ -26538,15 +28973,11 @@ snapshots: dependencies: tldts-core: 6.1.86 - tmp@0.2.1: - dependencies: - rimraf: 3.0.2 - tmp@0.2.5: {} tmpl@1.0.5: {} - to-buffer@1.2.1: + to-buffer@1.2.2: dependencies: isarray: 2.0.5 safe-buffer: 5.2.1 @@ -26598,34 +29029,34 @@ snapshots: dependencies: typescript: 5.8.3 - ts-jest@29.2.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.4))(esbuild@0.19.12)(jest@29.7.0(@types/node@20.19.13)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3)))(typescript@5.8.3): + ts-jest@29.2.5(@babel/core@7.28.5)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.5))(esbuild@0.19.12)(jest@29.7.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)))(typescript@5.8.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@20.19.13)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3)) + jest: 29.7.0(@types/node@20.0.0)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 - semver: 7.7.2 + semver: 7.7.3 typescript: 5.8.3 yargs-parser: 21.1.1 optionalDependencies: - '@babel/core': 7.28.4 + '@babel/core': 7.28.5 '@jest/transform': 29.7.0 '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.28.4) + babel-jest: 29.7.0(@babel/core@7.28.5) esbuild: 0.19.12 - ts-node@10.9.2(@types/node@20.19.13)(typescript@5.8.3): + ts-node@10.9.2(@types/node@20.0.0)(typescript@5.8.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.19.13 + '@types/node': 20.0.0 acorn: 8.15.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -26655,15 +29086,10 @@ snapshots: tslib@2.8.1: {} - tsutils@3.21.0(typescript@5.8.3): - dependencies: - tslib: 1.14.1 - typescript: 5.8.3 - - tsx@4.20.5: + tsx@4.20.6: dependencies: - esbuild: 0.25.9 - get-tsconfig: 4.10.1 + esbuild: 0.25.11 + get-tsconfig: 4.13.0 optionalDependencies: fsevents: 2.3.3 @@ -26687,6 +29113,10 @@ snapshots: type-fest@0.8.1: {} + type-fest@1.4.0: {} + + type-fest@2.19.0: {} + type-is@2.0.1: dependencies: content-type: 1.0.5 @@ -26696,7 +29126,7 @@ snapshots: typechain@8.3.2(typescript@5.8.3): dependencies: '@types/prettier': 2.7.3 - debug: 4.4.1(supports-color@8.1.1) + debug: 4.4.3(supports-color@8.1.1) fs-extra: 7.0.1 glob: 7.1.7 js-sha3: 0.8.0 @@ -26742,9 +29172,9 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typedoc@0.28.12(typescript@5.8.3): + typedoc@0.28.14(typescript@5.8.3): dependencies: - '@gerrit0/mini-shiki': 3.12.2 + '@gerrit0/mini-shiki': 3.13.1 lunr: 2.3.9 markdown-it: 14.1.0 minimatch: 9.0.5 @@ -26753,9 +29183,9 @@ snapshots: typescript@5.8.3: {} - typestub-ipfs-only-hash@4.0.0(encoding@0.1.13): + typestub-ipfs-only-hash@4.0.0: dependencies: - ipfs-only-hash: 4.0.0(encoding@0.1.13) + ipfs-only-hash: 4.0.0 transitivePeerDependencies: - encoding - supports-color @@ -26786,7 +29216,7 @@ snapshots: uint8arrays@5.1.0: dependencies: - multiformats: 13.4.0 + multiformats: 13.4.1 unbox-primitive@1.1.0: dependencies: @@ -26799,9 +29229,7 @@ snapshots: undici-types@6.19.8: {} - undici-types@6.21.0: {} - - undici@6.21.3: {} + undici@6.22.0: {} undici@7.16.0: {} @@ -26810,11 +29238,15 @@ snapshots: unicode-match-property-ecmascript@2.0.0: dependencies: unicode-canonical-property-names-ecmascript: 2.0.1 - unicode-property-aliases-ecmascript: 2.1.0 + unicode-property-aliases-ecmascript: 2.2.0 unicode-match-property-value-ecmascript@2.2.1: {} - unicode-property-aliases-ecmascript@2.1.0: {} + unicode-property-aliases-ecmascript@2.2.0: {} + + unique-string@3.0.0: + dependencies: + crypto-random-string: 4.0.0 universalify@0.1.2: {} @@ -26830,7 +29262,31 @@ snapshots: unpipe@1.0.0: {} - unstorage@1.17.1(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(idb-keyval@6.2.2)(ioredis@5.7.0): + unrs-resolver@1.11.1: + dependencies: + napi-postinstall: 0.3.4 + optionalDependencies: + '@unrs/resolver-binding-android-arm-eabi': 1.11.1 + '@unrs/resolver-binding-android-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-arm64': 1.11.1 + '@unrs/resolver-binding-darwin-x64': 1.11.1 + '@unrs/resolver-binding-freebsd-x64': 1.11.1 + '@unrs/resolver-binding-linux-arm-gnueabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm-musleabihf': 1.11.1 + '@unrs/resolver-binding-linux-arm64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-arm64-musl': 1.11.1 + '@unrs/resolver-binding-linux-ppc64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-riscv64-musl': 1.11.1 + '@unrs/resolver-binding-linux-s390x-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-gnu': 1.11.1 + '@unrs/resolver-binding-linux-x64-musl': 1.11.1 + '@unrs/resolver-binding-wasm32-wasi': 1.11.1 + '@unrs/resolver-binding-win32-arm64-msvc': 1.11.1 + '@unrs/resolver-binding-win32-ia32-msvc': 1.11.1 + '@unrs/resolver-binding-win32-x64-msvc': 1.11.1 + + unstorage@1.17.1(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@upstash/redis@1.35.6)(idb-keyval@6.2.2)(ioredis@5.8.2): dependencies: anymatch: 3.1.3 chokidar: 4.0.3 @@ -26841,14 +29297,15 @@ snapshots: ofetch: 1.4.1 ufo: 1.6.1 optionalDependencies: - '@azure/identity': 4.12.0 - '@azure/storage-blob': 12.28.0 + '@azure/identity': 4.13.0 + '@azure/storage-blob': 12.29.1 + '@upstash/redis': 1.35.6 idb-keyval: 6.2.2 - ioredis: 5.7.0 + ioredis: 5.8.2 - update-browserslist-db@1.1.3(browserslist@4.25.4): + update-browserslist-db@1.1.4(browserslist@4.27.0): dependencies: - browserslist: 4.25.4 + browserslist: 4.27.0 escalade: 3.2.0 picocolors: 1.1.1 @@ -26861,23 +29318,18 @@ snapshots: querystringify: 2.2.0 requires-port: 1.0.0 - url@0.10.3: - dependencies: - punycode: 1.3.2 - querystring: 0.2.0 - url@0.11.4: dependencies: punycode: 1.4.1 qs: 6.14.0 - use-sync-external-store@1.2.0(react@19.1.1): + use-sync-external-store@1.2.0(react@18.3.1): dependencies: - react: 19.1.1 + react: 18.3.1 - use-sync-external-store@1.4.0(react@19.1.1): + use-sync-external-store@1.4.0(react@18.3.1): dependencies: - react: 19.1.1 + react: 18.3.1 utf-8-validate@5.0.10: dependencies: @@ -26893,11 +29345,11 @@ snapshots: dependencies: inherits: 2.0.4 is-arguments: 1.2.0 - is-generator-function: 1.1.0 + is-generator-function: 1.1.2 is-typed-array: 1.1.15 which-typed-array: 1.1.19 - uuid@8.0.0: {} + uuid@11.1.0: {} uuid@8.3.2: {} @@ -26920,14 +29372,13 @@ snapshots: validate-npm-package-name@5.0.1: {} - valtio@1.13.2(@types/react@19.1.13)(react@19.1.1): + valtio@1.13.2(react@18.3.1): dependencies: - derive-valtio: 0.1.0(valtio@1.13.2(@types/react@19.1.13)(react@19.1.1)) + derive-valtio: 0.1.0(valtio@1.13.2(react@18.3.1)) proxy-compare: 2.6.0 - use-sync-external-store: 1.2.0(react@19.1.1) + use-sync-external-store: 1.2.0(react@18.3.1) optionalDependencies: - '@types/react': 19.1.13 - react: 19.1.1 + react: 18.3.1 varint@5.0.2: {} @@ -26952,7 +29403,7 @@ snapshots: - utf-8-validate - zod - viem@2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4): + viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4): dependencies: '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 @@ -26969,7 +29420,7 @@ snapshots: - utf-8-validate - zod - viem@2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3): + viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3): dependencies: '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 @@ -26992,14 +29443,14 @@ snapshots: dependencies: xml-name-validator: 4.0.0 - wagmi@2.16.9(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@tanstack/query-core@5.87.4)(@tanstack/react-query@5.87.4(react@19.1.1))(@types/react@19.1.13)(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))(zod@3.24.3): + wagmi@2.18.2(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@tanstack/query-core@5.90.5)(@tanstack/react-query@5.90.5(react@18.3.1))(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))(zod@3.24.3): dependencies: - '@tanstack/react-query': 5.87.4(react@19.1.1) - '@wagmi/connectors': 5.9.9(@azure/identity@4.12.0)(@azure/storage-blob@12.28.0)(@types/react@19.1.13)(@wagmi/core@2.20.3(@tanstack/query-core@5.87.4)(@types/react@19.1.13)(react@19.1.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)))(bufferutil@4.0.9)(encoding@0.1.13)(ioredis@5.7.0)(react@19.1.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.1))(utf-8-validate@5.0.10)(viem@2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))(zod@3.24.3) - '@wagmi/core': 2.20.3(@tanstack/query-core@5.87.4)(@types/react@19.1.13)(react@19.1.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@19.1.1))(viem@2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)) - react: 19.1.1 - use-sync-external-store: 1.4.0(react@19.1.1) - viem: 2.38.3(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) + '@tanstack/react-query': 5.90.5(react@18.3.1) + '@wagmi/connectors': 6.1.0(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@tanstack/react-query@5.90.5(react@18.3.1))(@upstash/redis@1.35.6)(@wagmi/core@2.22.1(@tanstack/query-core@5.90.5)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)))(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(utf-8-validate@5.0.10)(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))(wagmi@2.18.2(@azure/identity@4.13.0)(@azure/storage-blob@12.29.1)(@tanstack/query-core@5.90.5)(@tanstack/react-query@5.90.5(react@18.3.1))(@upstash/redis@1.35.6)(bufferutil@4.0.9)(ioredis@5.8.2)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3))(zod@3.24.3))(zod@3.24.3) + '@wagmi/core': 2.22.1(@tanstack/query-core@5.90.5)(react@18.3.1)(typescript@5.8.3)(use-sync-external-store@1.4.0(react@18.3.1))(viem@2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3)) + react: 18.3.1 + use-sync-external-store: 1.4.0(react@18.3.1) + viem: 2.38.4(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.24.3) optionalDependencies: typescript: 5.8.3 transitivePeerDependencies: @@ -27090,7 +29541,7 @@ snapshots: is-async-function: 2.1.1 is-date-object: 1.1.0 is-finalizationregistry: 1.1.1 - is-generator-function: 1.1.0 + is-generator-function: 1.1.2 is-regex: 1.2.1 is-weakref: 1.1.1 isarray: 2.0.5 @@ -27203,13 +29654,6 @@ snapshots: xml-name-validator@4.0.0: {} - xml2js@0.6.2: - dependencies: - sax: 1.2.1 - xmlbuilder: 11.0.1 - - xmlbuilder@11.0.1: {} - xmlchars@2.2.0: {} xmlhttprequest-ssl@2.1.2: {} @@ -27293,14 +29737,19 @@ snapshots: zod@3.24.3: {} - zustand@5.0.0(@types/react@19.1.13)(react@19.1.1)(use-sync-external-store@1.4.0(react@19.1.1)): + zod@4.1.12: {} + + zustand@5.0.0(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): + optionalDependencies: + react: 18.3.1 + use-sync-external-store: 1.4.0(react@18.3.1) + + zustand@5.0.3(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): optionalDependencies: - '@types/react': 19.1.13 - react: 19.1.1 - use-sync-external-store: 1.4.0(react@19.1.1) + react: 18.3.1 + use-sync-external-store: 1.4.0(react@18.3.1) - zustand@5.0.3(@types/react@19.1.13)(react@19.1.1)(use-sync-external-store@1.4.0(react@19.1.1)): + zustand@5.0.8(react@18.3.1)(use-sync-external-store@1.4.0(react@18.3.1)): optionalDependencies: - '@types/react': 19.1.13 - react: 19.1.1 - use-sync-external-store: 1.4.0(react@19.1.1) + react: 18.3.1 + use-sync-external-store: 1.4.0(react@18.3.1)