From 393edb1b42176f22c21327d2ac1171433b009fc9 Mon Sep 17 00:00:00 2001 From: Neil Campbell Date: Tue, 22 Jul 2025 12:38:57 +0800 Subject: [PATCH 1/3] fix: correct box decoding of uint values < 64 bits --- src/transaction/transaction.ts | 20 +--------- src/types/app-arc56.ts | 13 +++--- src/types/app-client.spec.ts | 72 +++++++++++++++++++++++++--------- src/util.ts | 21 +++++++++- 4 files changed, 84 insertions(+), 42 deletions(-) diff --git a/src/transaction/transaction.ts b/src/transaction/transaction.ts index 43666c94..b833908a 100644 --- a/src/transaction/transaction.ts +++ b/src/transaction/transaction.ts @@ -3,9 +3,9 @@ import algosdk, { ABIReturnType, Address, ApplicationTransactionFields, + stringifyJSON, TransactionBoxReference, TransactionType, - stringifyJSON, } from 'algosdk' import { Buffer } from 'buffer' import { Config } from '../config' @@ -24,7 +24,7 @@ import { TransactionNote, TransactionToSign, } from '../types/transaction' -import { asJson, convertAbiByteArrays, toNumber } from '../util' +import { asJson, convertAbiByteArrays, convertABIDecodedBigIntToNumber, toNumber } from '../util' import { performAtomicTransactionComposerSimulate } from './perform-atomic-transaction-composer-simulate' import Algodv2 = algosdk.Algodv2 import AtomicTransactionComposer = algosdk.AtomicTransactionComposer @@ -916,22 +916,6 @@ export const sendAtomicTransactionComposer = async function (atcSend: AtomicTran } } -const convertABIDecodedBigIntToNumber = (value: ABIValue, type: ABIType): ABIValue => { - if (typeof value === 'bigint') { - if (type instanceof algosdk.ABIUintType) { - return type.bitSize < 53 ? Number(value) : value - } else { - return value - } - } else if (Array.isArray(value) && (type instanceof algosdk.ABIArrayStaticType || type instanceof algosdk.ABIArrayDynamicType)) { - return value.map((v) => convertABIDecodedBigIntToNumber(v, type.childType)) - } else if (Array.isArray(value) && type instanceof algosdk.ABITupleType) { - return value.map((v, i) => convertABIDecodedBigIntToNumber(v, type.childTypes[i])) - } else { - return value - } -} - /** * Takes an algosdk `ABIResult` and converts it to an `ABIReturn`. * Converts `bigint`'s for Uint's < 64 to `number` for easier use. diff --git a/src/types/app-arc56.ts b/src/types/app-arc56.ts index 60daaea3..eeb49800 100644 --- a/src/types/app-arc56.ts +++ b/src/types/app-arc56.ts @@ -1,7 +1,8 @@ import algosdk from 'algosdk' +import { convertAbiByteArrays, convertABIDecodedBigIntToNumber } from '../util' import { ABIReturn } from './app' import { Expand } from './expand' -import { convertAbiByteArrays } from '../util' +import ABIValue = algosdk.ABIValue /** Type to describe an argument within an `Arc56Method`. */ export type Arc56MethodArg = Expand< @@ -88,11 +89,12 @@ export function getABIStructFromABITuple { const localnet = algorandFixture() @@ -976,29 +977,64 @@ describe('app-client', () => { expect(simulateResult.returns![1]).toEqual(sendResult.returns![1]) }) - describe('ARC56 BoxMap', () => { - let appClient: AppClient - + describe('ARC56', () => { beforeEach(async () => { localnet.newScope() - const { testAccount, algorand } = localnet.context - const factory = algorand.client.getAppFactory({ - appSpec: JSON.stringify(boxMapAppSpec), - defaultSender: testAccount, - }) + }) - appClient = (await factory.send.create({ method: 'createApplication' })).appClient + describe('BoxMap', () => { + let appClient: AppClient - await algorand.account.ensureFunded(appClient.appAddress, testAccount, AlgoAmount.Algo(1)) + beforeEach(async () => { + const { testAccount, algorand } = localnet.context + const factory = algorand.client.getAppFactory({ + appSpec: JSON.stringify(boxMapAppSpec), + defaultSender: testAccount, + }) - await appClient.send.call({ method: 'setValue', args: [1n, 'foo'] }) - }) + appClient = (await factory.send.create({ method: 'createApplication' })).appClient + + await algorand.account.ensureFunded(appClient.appAddress, testAccount, AlgoAmount.Algo(1)) - test('getMap with prefix', async () => { - expect(await appClient.state.box.getMap('bMap')).toEqual(new Map().set(1n, 'foo')) + await appClient.send.call({ method: 'setValue', args: [1n, 'foo'] }) + }) + + test('getMap with prefix', async () => { + expect(await appClient.state.box.getMap('bMap')).toEqual(new Map().set(1n, 'foo')) + }) + + test('getMapValue with prefix', async () => { + expect(await appClient.state.box.getMapValue('bMap', 1n)).toEqual('foo') + }) }) - test('getMapValue with prefix', async () => { - expect(await appClient.state.box.getMapValue('bMap', 1n)).toEqual('foo') + + describe('getABIDecodedValue', () => { + test('correctly decodes a struct containing a uint16', () => { + const decoded = getABIDecodedValue(new Uint8Array([0, 1, 0, 4, 0, 5, 119, 111, 114, 108, 100]), 'User', { + User: [ + { name: 'userId', type: 'uint16' }, + { name: 'name', type: 'string' }, + ], + }) as { userId: number; name: string } + + expect(typeof decoded.userId).toBe('number') + expect(decoded.userId).toBe(1) + expect(typeof decoded.name).toBe('string') + expect(decoded.name).toBe('world') + }) + + test.each([8, 16, 32, 64, 128, 256, 512])('correctly decodes a uint%i', (bitLength) => { + const encoded = new ABIUintType(bitLength).encode(1) + const decoded = getABIDecodedValue(encoded, `uint${bitLength}`, {}) + + if (bitLength < 64) { + expect(typeof decoded).toBe('number') + expect(decoded).toBe(1) + } else { + expect(typeof decoded).toBe('bigint') + expect(decoded).toBe(1n) + } + }) }) }) }) diff --git a/src/util.ts b/src/util.ts index 91abd257..c415b806 100644 --- a/src/util.ts +++ b/src/util.ts @@ -1,5 +1,5 @@ +import { ABIArrayDynamicType, ABIArrayStaticType, ABIByteType, ABIReturnType, ABITupleType, ABIType, ABIUintType, ABIValue } from 'algosdk' import { APP_PAGE_MAX_SIZE } from './types/app' -import { ABIArrayDynamicType, ABIArrayStaticType, ABIByteType, ABIReturnType, ABITupleType, ABIValue } from 'algosdk' /** * Converts a value which might be a number or a bigint into a number to be used with apis that don't support bigint. @@ -145,3 +145,22 @@ export function convertAbiByteArrays(value: ABIValue, type: ABIReturnType): ABIV // For other types, return the value as is return value } + +/** + * Convert bigint values to numbers for uint types with bit size < 53 + */ +export const convertABIDecodedBigIntToNumber = (value: ABIValue, type: ABIType): ABIValue => { + if (typeof value === 'bigint') { + if (type instanceof ABIUintType) { + return type.bitSize < 53 ? Number(value) : value + } else { + return value + } + } else if (Array.isArray(value) && (type instanceof ABIArrayStaticType || type instanceof ABIArrayDynamicType)) { + return value.map((v) => convertABIDecodedBigIntToNumber(v, type.childType)) + } else if (Array.isArray(value) && type instanceof ABITupleType) { + return value.map((v, i) => convertABIDecodedBigIntToNumber(v, type.childTypes[i])) + } else { + return value + } +} From 17bd828ecf5367d174e3b00b5ad00237fc94ec4d Mon Sep 17 00:00:00 2001 From: Neil Campbell Date: Tue, 22 Jul 2025 13:02:10 +0800 Subject: [PATCH 2/3] chore: fix audit issues --- .nsprc | 7 +- package-lock.json | 584 +++++++++++++++------------------ package.json | 4 - src/transaction/transaction.ts | 2 - src/types/app-arc56.ts | 1 - 5 files changed, 270 insertions(+), 328 deletions(-) diff --git a/.nsprc b/.nsprc index 535d19a1..0967ef42 100644 --- a/.nsprc +++ b/.nsprc @@ -1,6 +1 @@ -{ - "1105444": { - "reason": "Vulnerability is in npm's bundled dependencies (brace-expansion) and cannot be fixed automatically. This is a low severity RegEx DoS vulnerability in npm's internal tools. npm team needs to update their bundled dependencies.", - "expiry": "2025-12-31" - } -} +{} diff --git a/package-lock.json b/package-lock.json index 6443693c..f583451e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -677,6 +677,7 @@ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" @@ -693,6 +694,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -709,6 +711,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -725,6 +728,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -741,6 +745,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -757,6 +762,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -773,6 +779,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -789,6 +796,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -805,6 +813,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -821,6 +830,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -837,6 +847,7 @@ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -853,6 +864,7 @@ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -869,6 +881,7 @@ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -885,6 +898,7 @@ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -901,6 +915,7 @@ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -917,6 +932,7 @@ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -933,6 +949,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -949,6 +966,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" @@ -965,6 +983,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" @@ -981,6 +1000,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" @@ -997,6 +1017,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" @@ -1013,6 +1034,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" @@ -1029,6 +1051,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -1045,6 +1068,7 @@ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -1061,6 +1085,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -1095,13 +1120,13 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.0.tgz", - "integrity": "sha512-zdHg2FPIFNKPdcHWtiNT+jEFCHYVplAXRDlQDyqy0zGx/q2parwh7brGJSiTxRk/TSMkbM//zt/f5CHgyTyaSQ==", + "version": "0.21.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", + "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.4", + "@eslint/object-schema": "^2.1.6", "debug": "^4.3.1", "minimatch": "^3.1.2" }, @@ -1133,20 +1158,33 @@ "node": "*" } }, + "node_modules/@eslint/config-helpers": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz", + "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/core": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.0.tgz", - "integrity": "sha512-7ATR9F0e4W85D/0w7cU0SNj7qkAexMG+bAHEZOjo9akvGuhHE2m7umzWzfnpa0XAg5Kxc1BWmtPMV67jJ+9VUg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", + "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/eslintrc": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", - "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1216,19 +1254,22 @@ } }, "node_modules/@eslint/js": { - "version": "9.15.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.15.0.tgz", - "integrity": "sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==", + "version": "9.31.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.31.0.tgz", + "integrity": "sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw==", "dev": true, "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" } }, "node_modules/@eslint/object-schema": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", - "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -1236,12 +1277,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", - "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz", + "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==", "dev": true, "license": "Apache-2.0", "dependencies": { + "@eslint/core": "^0.15.1", "levn": "^0.4.1" }, "engines": { @@ -1300,9 +1342,9 @@ } }, "node_modules/@humanwhocodes/retry": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", - "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -3057,9 +3099,9 @@ } }, "node_modules/acorn": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", "bin": { @@ -4322,6 +4364,7 @@ "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -4378,32 +4421,33 @@ } }, "node_modules/eslint": { - "version": "9.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.15.0.tgz", - "integrity": "sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==", + "version": "9.31.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.31.0.tgz", + "integrity": "sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.9.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.15.0", - "@eslint/plugin-kit": "^0.2.3", + "@eslint/config-array": "^0.21.0", + "@eslint/config-helpers": "^0.3.0", + "@eslint/core": "^0.15.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.31.0", + "@eslint/plugin-kit": "^0.3.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.1", + "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.5", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -4451,9 +4495,9 @@ } }, "node_modules/eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -4507,9 +4551,9 @@ } }, "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -4538,15 +4582,15 @@ } }, "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.14.0", + "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" + "eslint-visitor-keys": "^4.2.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -4556,9 +4600,9 @@ } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -6192,9 +6236,9 @@ } }, "node_modules/npm": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/npm/-/npm-10.9.2.tgz", - "integrity": "sha512-iriPEPIkoMYUy3F6f3wwSZAU93E0Eg6cHwIR6jzzOXWSy+SD/rOODEs74cVONHKSx2obXtuUoyidVEhISrisgQ==", + "version": "10.9.3", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.9.3.tgz", + "integrity": "sha512-6Eh1u5Q+kIVXeA8e7l2c/HpnFFcwrkt37xDMujD5be1gloWa9p6j3Fsv3mByXXmqJHy+2cElRMML8opNT7xIJQ==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -6266,39 +6310,47 @@ "write-file-atomic" ], "dev": true, + "license": "Artistic-2.0", + "workspaces": [ + "docs", + "smoke-tests", + "mock-globals", + "mock-registry", + "workspaces/*" + ], "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/arborist": "^8.0.0", + "@npmcli/arborist": "^8.0.1", "@npmcli/config": "^9.0.0", "@npmcli/fs": "^4.0.0", "@npmcli/map-workspaces": "^4.0.2", - "@npmcli/package-json": "^6.1.0", + "@npmcli/package-json": "^6.2.0", "@npmcli/promise-spawn": "^8.0.2", - "@npmcli/redact": "^3.0.0", - "@npmcli/run-script": "^9.0.1", - "@sigstore/tuf": "^3.0.0", - "abbrev": "^3.0.0", + "@npmcli/redact": "^3.2.2", + "@npmcli/run-script": "^9.1.0", + "@sigstore/tuf": "^3.1.1", + "abbrev": "^3.0.1", "archy": "~1.0.0", "cacache": "^19.0.1", - "chalk": "^5.3.0", - "ci-info": "^4.1.0", + "chalk": "^5.4.1", + "ci-info": "^4.2.0", "cli-columns": "^4.0.0", "fastest-levenshtein": "^1.0.16", "fs-minipass": "^3.0.3", "glob": "^10.4.5", "graceful-fs": "^4.2.11", - "hosted-git-info": "^8.0.2", + "hosted-git-info": "^8.1.0", "ini": "^5.0.0", "init-package-json": "^7.0.2", - "is-cidr": "^5.1.0", + "is-cidr": "^5.1.1", "json-parse-even-better-errors": "^4.0.0", "libnpmaccess": "^9.0.0", - "libnpmdiff": "^7.0.0", - "libnpmexec": "^9.0.0", - "libnpmfund": "^6.0.0", + "libnpmdiff": "^7.0.1", + "libnpmexec": "^9.0.1", + "libnpmfund": "^6.0.1", "libnpmhook": "^11.0.0", "libnpmorg": "^7.0.0", - "libnpmpack": "^8.0.0", + "libnpmpack": "^8.0.1", "libnpmpublish": "^10.0.1", "libnpmsearch": "^8.0.0", "libnpmteam": "^7.0.0", @@ -6308,23 +6360,23 @@ "minipass": "^7.1.1", "minipass-pipeline": "^1.2.4", "ms": "^2.1.2", - "node-gyp": "^11.0.0", - "nopt": "^8.0.0", + "node-gyp": "^11.2.0", + "nopt": "^8.1.0", "normalize-package-data": "^7.0.0", "npm-audit-report": "^6.0.0", "npm-install-checks": "^7.1.1", - "npm-package-arg": "^12.0.0", + "npm-package-arg": "^12.0.2", "npm-pick-manifest": "^10.0.0", "npm-profile": "^11.0.1", "npm-registry-fetch": "^18.0.2", "npm-user-validate": "^3.0.0", - "p-map": "^4.0.0", + "p-map": "^7.0.3", "pacote": "^19.0.1", "parse-conflict-json": "^4.0.0", "proc-log": "^5.0.0", "qrcode-terminal": "^0.12.0", - "read": "^4.0.0", - "semver": "^7.6.3", + "read": "^4.1.0", + "semver": "^7.7.2", "spdx-expression-parse": "^4.0.0", "ssri": "^12.0.0", "supports-color": "^9.4.0", @@ -6332,7 +6384,7 @@ "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", "treeverse": "^3.0.0", - "validate-npm-package-name": "^6.0.0", + "validate-npm-package-name": "^6.0.1", "which": "^5.0.0", "write-file-atomic": "^6.0.0" }, @@ -6535,7 +6587,7 @@ } }, "node_modules/npm/node_modules/@npmcli/arborist": { - "version": "8.0.0", + "version": "8.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -6615,7 +6667,7 @@ } }, "node_modules/npm/node_modules/@npmcli/git": { - "version": "6.0.1", + "version": "6.0.3", "dev": true, "inBundle": true, "license": "ISC", @@ -6625,7 +6677,6 @@ "lru-cache": "^10.0.1", "npm-pick-manifest": "^10.0.0", "proc-log": "^5.0.0", - "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^5.0.0" @@ -6731,7 +6782,7 @@ } }, "node_modules/npm/node_modules/@npmcli/package-json": { - "version": "6.1.0", + "version": "6.2.0", "dev": true, "inBundle": true, "license": "ISC", @@ -6740,9 +6791,9 @@ "glob": "^10.2.2", "hosted-git-info": "^8.0.0", "json-parse-even-better-errors": "^4.0.0", - "normalize-package-data": "^7.0.0", "proc-log": "^5.0.0", - "semver": "^7.5.3" + "semver": "^7.5.3", + "validate-npm-package-license": "^3.0.4" }, "engines": { "node": "^18.17.0 || >=20.5.0" @@ -6761,19 +6812,19 @@ } }, "node_modules/npm/node_modules/@npmcli/query": { - "version": "4.0.0", + "version": "4.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "postcss-selector-parser": "^6.1.2" + "postcss-selector-parser": "^7.0.0" }, "engines": { "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@npmcli/redact": { - "version": "3.0.0", + "version": "3.2.2", "dev": true, "inBundle": true, "license": "ISC", @@ -6782,7 +6833,7 @@ } }, "node_modules/npm/node_modules/@npmcli/run-script": { - "version": "9.0.2", + "version": "9.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -6809,21 +6860,21 @@ } }, "node_modules/npm/node_modules/@sigstore/protobuf-specs": { - "version": "0.3.2", + "version": "0.4.3", "dev": true, "inBundle": true, "license": "Apache-2.0", "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/@sigstore/tuf": { - "version": "3.0.0", + "version": "3.1.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/protobuf-specs": "^0.4.1", "tuf-js": "^3.0.1" }, "engines": { @@ -6840,7 +6891,7 @@ } }, "node_modules/npm/node_modules/abbrev": { - "version": "3.0.0", + "version": "3.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -6849,30 +6900,14 @@ } }, "node_modules/npm/node_modules/agent-base": { - "version": "7.1.1", + "version": "7.1.3", "dev": true, "inBundle": true, "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { "node": ">= 14" } }, - "node_modules/npm/node_modules/aggregate-error": { - "version": "3.1.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/ansi-regex": { "version": "5.0.1", "dev": true, @@ -6941,7 +6976,7 @@ } }, "node_modules/npm/node_modules/brace-expansion": { - "version": "2.0.1", + "version": "2.0.2", "dev": true, "inBundle": true, "license": "MIT", @@ -6981,19 +7016,6 @@ "node": ">=18" } }, - "node_modules/npm/node_modules/cacache/node_modules/minizlib": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/npm/node_modules/cacache/node_modules/mkdirp": { "version": "3.0.1", "dev": true, @@ -7009,18 +7031,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm/node_modules/cacache/node_modules/p-map": { - "version": "7.0.2", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/npm/node_modules/cacache/node_modules/tar": { "version": "7.4.3", "dev": true, @@ -7048,7 +7058,7 @@ } }, "node_modules/npm/node_modules/chalk": { - "version": "5.3.0", + "version": "5.4.1", "dev": true, "inBundle": true, "license": "MIT", @@ -7069,7 +7079,7 @@ } }, "node_modules/npm/node_modules/ci-info": { - "version": "4.1.0", + "version": "4.2.0", "dev": true, "funding": [ { @@ -7084,7 +7094,7 @@ } }, "node_modules/npm/node_modules/cidr-regex": { - "version": "4.1.1", + "version": "4.1.3", "dev": true, "inBundle": true, "license": "BSD-2-Clause", @@ -7095,15 +7105,6 @@ "node": ">=14" } }, - "node_modules/npm/node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/npm/node_modules/cli-columns": { "version": "4.0.0", "dev": true, @@ -7192,7 +7193,7 @@ } }, "node_modules/npm/node_modules/debug": { - "version": "4.3.7", + "version": "4.4.1", "dev": true, "inBundle": true, "license": "MIT", @@ -7255,7 +7256,7 @@ "license": "MIT" }, "node_modules/npm/node_modules/exponential-backoff": { - "version": "3.1.1", + "version": "3.1.2", "dev": true, "inBundle": true, "license": "Apache-2.0" @@ -7270,12 +7271,12 @@ } }, "node_modules/npm/node_modules/foreground-child": { - "version": "3.3.0", + "version": "3.3.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", + "cross-spawn": "^7.0.6", "signal-exit": "^4.0.1" }, "engines": { @@ -7324,7 +7325,7 @@ "license": "ISC" }, "node_modules/npm/node_modules/hosted-git-info": { - "version": "8.0.2", + "version": "8.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -7336,7 +7337,7 @@ } }, "node_modules/npm/node_modules/http-cache-semantics": { - "version": "4.1.1", + "version": "4.2.0", "dev": true, "inBundle": true, "license": "BSD-2-Clause" @@ -7355,12 +7356,12 @@ } }, "node_modules/npm/node_modules/https-proxy-agent": { - "version": "7.0.5", + "version": "7.0.6", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { @@ -7401,15 +7402,6 @@ "node": ">=0.8.19" } }, - "node_modules/npm/node_modules/indent-string": { - "version": "4.0.0", - "dev": true, - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/npm/node_modules/ini": { "version": "5.0.0", "dev": true, @@ -7463,7 +7455,7 @@ } }, "node_modules/npm/node_modules/is-cidr": { - "version": "5.1.0", + "version": "5.1.1", "dev": true, "inBundle": true, "license": "BSD-2-Clause", @@ -7563,12 +7555,12 @@ } }, "node_modules/npm/node_modules/libnpmdiff": { - "version": "7.0.0", + "version": "7.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^8.0.0", + "@npmcli/arborist": "^8.0.1", "@npmcli/installed-package-contents": "^3.0.0", "binary-extensions": "^2.3.0", "diff": "^5.1.0", @@ -7582,12 +7574,12 @@ } }, "node_modules/npm/node_modules/libnpmexec": { - "version": "9.0.0", + "version": "9.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^8.0.0", + "@npmcli/arborist": "^8.0.1", "@npmcli/run-script": "^9.0.1", "ci-info": "^4.0.0", "npm-package-arg": "^12.0.0", @@ -7603,12 +7595,12 @@ } }, "node_modules/npm/node_modules/libnpmfund": { - "version": "6.0.0", + "version": "6.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^8.0.0" + "@npmcli/arborist": "^8.0.1" }, "engines": { "node": "^18.17.0 || >=20.5.0" @@ -7641,12 +7633,12 @@ } }, "node_modules/npm/node_modules/libnpmpack": { - "version": "8.0.0", + "version": "8.0.1", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/arborist": "^8.0.0", + "@npmcli/arborist": "^8.0.1", "@npmcli/run-script": "^9.0.1", "npm-package-arg": "^12.0.0", "pacote": "^19.0.0" @@ -7789,7 +7781,7 @@ } }, "node_modules/npm/node_modules/minipass-fetch": { - "version": "4.0.0", + "version": "4.0.1", "dev": true, "inBundle": true, "license": "MIT", @@ -7805,19 +7797,6 @@ "encoding": "^0.1.13" } }, - "node_modules/npm/node_modules/minipass-fetch/node_modules/minizlib": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/npm/node_modules/minipass-flush": { "version": "1.0.5", "dev": true, @@ -7891,28 +7870,15 @@ } }, "node_modules/npm/node_modules/minizlib": { - "version": "2.1.2", + "version": "3.0.2", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/npm/node_modules/minizlib/node_modules/minipass": { - "version": "3.3.6", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" + "minipass": "^7.1.2" }, "engines": { - "node": ">=8" + "node": ">= 18" } }, "node_modules/npm/node_modules/mkdirp": { @@ -7943,20 +7909,20 @@ } }, "node_modules/npm/node_modules/node-gyp": { - "version": "11.0.0", + "version": "11.2.0", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", "graceful-fs": "^4.2.6", "make-fetch-happen": "^14.0.3", "nopt": "^8.0.0", "proc-log": "^5.0.0", "semver": "^7.3.5", "tar": "^7.4.3", + "tinyglobby": "^0.2.12", "which": "^5.0.0" }, "bin": { @@ -7975,19 +7941,6 @@ "node": ">=18" } }, - "node_modules/npm/node_modules/node-gyp/node_modules/minizlib": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/npm/node_modules/node-gyp/node_modules/mkdirp": { "version": "3.0.1", "dev": true, @@ -8030,12 +7983,12 @@ } }, "node_modules/npm/node_modules/nopt": { - "version": "8.0.0", + "version": "8.1.0", "dev": true, "inBundle": true, "license": "ISC", "dependencies": { - "abbrev": "^2.0.0" + "abbrev": "^3.0.0" }, "bin": { "nopt": "bin/nopt.js" @@ -8044,15 +7997,6 @@ "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/nopt/node_modules/abbrev": { - "version": "2.0.0", - "dev": true, - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/npm/node_modules/normalize-package-data": { "version": "7.0.0", "dev": true, @@ -8110,7 +8054,7 @@ } }, "node_modules/npm/node_modules/npm-package-arg": { - "version": "12.0.0", + "version": "12.0.2", "dev": true, "inBundle": true, "license": "ISC", @@ -8183,19 +8127,6 @@ "node": "^18.17.0 || >=20.5.0" } }, - "node_modules/npm/node_modules/npm-registry-fetch/node_modules/minizlib": { - "version": "3.0.1", - "dev": true, - "inBundle": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.4", - "rimraf": "^5.0.5" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/npm/node_modules/npm-user-validate": { "version": "3.0.0", "dev": true, @@ -8206,15 +8137,12 @@ } }, "node_modules/npm/node_modules/p-map": { - "version": "4.0.0", + "version": "7.0.3", "dev": true, "inBundle": true, "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -8297,7 +8225,7 @@ } }, "node_modules/npm/node_modules/postcss-selector-parser": { - "version": "6.1.2", + "version": "7.1.0", "dev": true, "inBundle": true, "license": "MIT", @@ -8345,12 +8273,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/npm/node_modules/promise-inflight": { - "version": "1.0.1", - "dev": true, - "inBundle": true, - "license": "ISC" - }, "node_modules/npm/node_modules/promise-retry": { "version": "2.0.1", "dev": true, @@ -8385,7 +8307,7 @@ } }, "node_modules/npm/node_modules/read": { - "version": "4.0.0", + "version": "4.1.0", "dev": true, "inBundle": true, "license": "ISC", @@ -8427,21 +8349,6 @@ "node": ">= 4" } }, - "node_modules/npm/node_modules/rimraf": { - "version": "5.0.10", - "dev": true, - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/npm/node_modules/safer-buffer": { "version": "2.1.2", "dev": true, @@ -8450,7 +8357,7 @@ "optional": true }, "node_modules/npm/node_modules/semver": { - "version": "7.6.3", + "version": "7.7.2", "dev": true, "inBundle": true, "license": "ISC", @@ -8495,29 +8402,29 @@ } }, "node_modules/npm/node_modules/sigstore": { - "version": "3.0.0", + "version": "3.1.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^3.0.0", + "@sigstore/bundle": "^3.1.0", "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "@sigstore/sign": "^3.0.0", - "@sigstore/tuf": "^3.0.0", - "@sigstore/verify": "^2.0.0" + "@sigstore/protobuf-specs": "^0.4.0", + "@sigstore/sign": "^3.1.0", + "@sigstore/tuf": "^3.1.0", + "@sigstore/verify": "^2.1.0" }, "engines": { "node": "^18.17.0 || >=20.5.0" } }, "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/bundle": { - "version": "3.0.0", + "version": "3.1.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2" + "@sigstore/protobuf-specs": "^0.4.0" }, "engines": { "node": "^18.17.0 || >=20.5.0" @@ -8533,15 +8440,15 @@ } }, "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/sign": { - "version": "3.0.0", + "version": "3.1.0", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^3.0.0", + "@sigstore/bundle": "^3.1.0", "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "make-fetch-happen": "^14.0.1", + "@sigstore/protobuf-specs": "^0.4.0", + "make-fetch-happen": "^14.0.2", "proc-log": "^5.0.0", "promise-retry": "^2.0.1" }, @@ -8550,14 +8457,14 @@ } }, "node_modules/npm/node_modules/sigstore/node_modules/@sigstore/verify": { - "version": "2.0.0", + "version": "2.1.1", "dev": true, "inBundle": true, "license": "Apache-2.0", "dependencies": { - "@sigstore/bundle": "^3.0.0", + "@sigstore/bundle": "^3.1.0", "@sigstore/core": "^2.0.0", - "@sigstore/protobuf-specs": "^0.3.2" + "@sigstore/protobuf-specs": "^0.4.1" }, "engines": { "node": "^18.17.0 || >=20.5.0" @@ -8574,7 +8481,7 @@ } }, "node_modules/npm/node_modules/socks": { - "version": "2.8.3", + "version": "2.8.5", "dev": true, "inBundle": true, "license": "MIT", @@ -8588,12 +8495,12 @@ } }, "node_modules/npm/node_modules/socks-proxy-agent": { - "version": "8.0.4", + "version": "8.0.5", "dev": true, "inBundle": true, "license": "MIT", "dependencies": { - "agent-base": "^7.1.1", + "agent-base": "^7.1.2", "debug": "^4.3.4", "socks": "^2.8.3" }, @@ -8638,7 +8545,7 @@ } }, "node_modules/npm/node_modules/spdx-license-ids": { - "version": "3.0.20", + "version": "3.0.21", "dev": true, "inBundle": true, "license": "CC0-1.0" @@ -8777,6 +8684,31 @@ "node": ">=8" } }, + "node_modules/npm/node_modules/tar/node_modules/minizlib": { + "version": "2.1.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "dev": true, + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/npm/node_modules/text-table": { "version": "0.2.0", "dev": true, @@ -8789,6 +8721,48 @@ "inBundle": true, "license": "MIT" }, + "node_modules/npm/node_modules/tinyglobby": { + "version": "0.2.14", + "dev": true, + "inBundle": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/npm/node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.6", + "dev": true, + "inBundle": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/npm/node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "dev": true, + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/npm/node_modules/treeverse": { "version": "3.0.0", "dev": true, @@ -8876,7 +8850,7 @@ } }, "node_modules/npm/node_modules/validate-npm-package-name": { - "version": "6.0.0", + "version": "6.0.1", "dev": true, "inBundle": true, "license": "ISC", @@ -10328,13 +10302,11 @@ } }, "node_modules/semver": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz", - "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -10369,24 +10341,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", diff --git a/package.json b/package.json index e25b1b2e..3644098e 100644 --- a/package.json +++ b/package.json @@ -54,10 +54,6 @@ "pre-commit": "run-s check-types lint:fix audit format test generate:code-docs" }, "overrides": { - "semver": "7.5.2", - "braces": "3.0.3", - "micromatch": "4.0.8", - "cross-spawn": "^7.0.6", "esbuild": "0.25.0" }, "dependencies": { diff --git a/src/transaction/transaction.ts b/src/transaction/transaction.ts index b833908a..8a1d9a19 100644 --- a/src/transaction/transaction.ts +++ b/src/transaction/transaction.ts @@ -33,8 +33,6 @@ import SuggestedParams = algosdk.SuggestedParams import Transaction = algosdk.Transaction import TransactionSigner = algosdk.TransactionSigner import TransactionWithSigner = algosdk.TransactionWithSigner -import ABIValue = algosdk.ABIValue -import ABIType = algosdk.ABIType export const MAX_TRANSACTION_GROUP_SIZE = 16 export const MAX_APP_CALL_FOREIGN_REFERENCES = 8 diff --git a/src/types/app-arc56.ts b/src/types/app-arc56.ts index eeb49800..51359b45 100644 --- a/src/types/app-arc56.ts +++ b/src/types/app-arc56.ts @@ -2,7 +2,6 @@ import algosdk from 'algosdk' import { convertAbiByteArrays, convertABIDecodedBigIntToNumber } from '../util' import { ABIReturn } from './app' import { Expand } from './expand' -import ABIValue = algosdk.ABIValue /** Type to describe an argument within an `Arc56Method`. */ export type Arc56MethodArg = Expand< From 2d19a2dd64f2fcb28c7097763a006b6f82b34f43 Mon Sep 17 00:00:00 2001 From: Neil Campbell Date: Tue, 22 Jul 2025 13:29:56 +0800 Subject: [PATCH 3/3] chore: extend tests --- .../types_app_arc56.Arc56Contract.md | 30 +++++++------- docs/code/interfaces/types_app_arc56.Event.md | 6 +-- .../code/interfaces/types_app_arc56.Method.md | 16 ++++---- .../types_app_arc56.ProgramSourceInfo.md | 4 +- .../interfaces/types_app_arc56.StorageKey.md | 8 ++-- .../interfaces/types_app_arc56.StorageMap.md | 8 ++-- .../interfaces/types_app_arc56.StructField.md | 4 +- docs/code/modules/index.md | 40 +++++++++---------- docs/code/modules/types_app_arc56.md | 24 +++++------ src/types/app-client.spec.ts | 7 +++- 10 files changed, 75 insertions(+), 72 deletions(-) diff --git a/docs/code/interfaces/types_app_arc56.Arc56Contract.md b/docs/code/interfaces/types_app_arc56.Arc56Contract.md index 90af3458..030abedc 100644 --- a/docs/code/interfaces/types_app_arc56.Arc56Contract.md +++ b/docs/code/interfaces/types_app_arc56.Arc56Contract.md @@ -36,7 +36,7 @@ The ARCs used and/or supported by this contract. All contracts implicitly suppor #### Defined in -[src/types/app-arc56.ts:248](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L248) +[src/types/app-arc56.ts:250](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L250) ___ @@ -55,7 +55,7 @@ Supported bare actions for the contract. An action is a combination of call/crea #### Defined in -[src/types/app-arc56.ts:296](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L296) +[src/types/app-arc56.ts:298](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L298) ___ @@ -74,7 +74,7 @@ The compiled bytecode for the application. MUST be omitted if included as part o #### Defined in -[src/types/app-arc56.ts:317](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L317) +[src/types/app-arc56.ts:319](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L319) ___ @@ -97,7 +97,7 @@ Information used to get the given byteCode and/or PC values in sourceInfo. MUST #### Defined in -[src/types/app-arc56.ts:324](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L324) +[src/types/app-arc56.ts:326](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L326) ___ @@ -109,7 +109,7 @@ Optional, user-friendly description for the interface #### Defined in -[src/types/app-arc56.ts:252](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L252) +[src/types/app-arc56.ts:254](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L254) ___ @@ -121,7 +121,7 @@ ARC-28 events that MAY be emitted by this contract #### Defined in -[src/types/app-arc56.ts:336](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L336) +[src/types/app-arc56.ts:338](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L338) ___ @@ -133,7 +133,7 @@ All of the methods that the contract implements #### Defined in -[src/types/app-arc56.ts:269](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L269) +[src/types/app-arc56.ts:271](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L271) ___ @@ -145,7 +145,7 @@ A user-friendly name for the contract #### Defined in -[src/types/app-arc56.ts:250](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L250) +[src/types/app-arc56.ts:252](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L252) ___ @@ -165,7 +165,7 @@ included, but the corresponding genesis hash key MUST also be defined #### Defined in -[src/types/app-arc56.ts:260](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L260) +[src/types/app-arc56.ts:262](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L262) ___ @@ -181,7 +181,7 @@ The scratch variables used during runtime #### Defined in -[src/types/app-arc56.ts:347](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L347) +[src/types/app-arc56.ts:349](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L349) ___ @@ -200,7 +200,7 @@ The pre-compiled TEAL that may contain template variables. MUST be omitted if in #### Defined in -[src/types/app-arc56.ts:310](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L310) +[src/types/app-arc56.ts:312](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L312) ___ @@ -219,7 +219,7 @@ Information about the TEAL programs #### Defined in -[src/types/app-arc56.ts:303](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L303) +[src/types/app-arc56.ts:305](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L305) ___ @@ -249,7 +249,7 @@ ___ #### Defined in -[src/types/app-arc56.ts:270](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L270) +[src/types/app-arc56.ts:272](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L272) ___ @@ -265,7 +265,7 @@ Named structs used by the application. Each struct field appears in the same ord #### Defined in -[src/types/app-arc56.ts:267](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L267) +[src/types/app-arc56.ts:269](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L269) ___ @@ -281,4 +281,4 @@ A mapping of template variable names as they appear in the TEAL (not including T #### Defined in -[src/types/app-arc56.ts:338](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L338) +[src/types/app-arc56.ts:340](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L340) diff --git a/docs/code/interfaces/types_app_arc56.Event.md b/docs/code/interfaces/types_app_arc56.Event.md index d32f0829..b8575f97 100644 --- a/docs/code/interfaces/types_app_arc56.Event.md +++ b/docs/code/interfaces/types_app_arc56.Event.md @@ -24,7 +24,7 @@ The arguments of the event, in order #### Defined in -[src/types/app-arc56.ts:438](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L438) +[src/types/app-arc56.ts:440](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L440) ___ @@ -36,7 +36,7 @@ Optional, user-friendly description for the event #### Defined in -[src/types/app-arc56.ts:436](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L436) +[src/types/app-arc56.ts:438](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L438) ___ @@ -48,4 +48,4 @@ The name of the event #### Defined in -[src/types/app-arc56.ts:434](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L434) +[src/types/app-arc56.ts:436](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L436) diff --git a/docs/code/interfaces/types_app_arc56.Method.md b/docs/code/interfaces/types_app_arc56.Method.md index df03713f..ada8b9b6 100644 --- a/docs/code/interfaces/types_app_arc56.Method.md +++ b/docs/code/interfaces/types_app_arc56.Method.md @@ -36,7 +36,7 @@ an action is a combination of call/create and an OnComplete #### Defined in -[src/types/app-arc56.ts:397](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L397) +[src/types/app-arc56.ts:399](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L399) ___ @@ -48,7 +48,7 @@ The arguments of the method, in order #### Defined in -[src/types/app-arc56.ts:362](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L362) +[src/types/app-arc56.ts:364](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L364) ___ @@ -60,7 +60,7 @@ Optional, user-friendly description for the method #### Defined in -[src/types/app-arc56.ts:360](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L360) +[src/types/app-arc56.ts:362](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L362) ___ @@ -72,7 +72,7 @@ ARC-28 events that MAY be emitted by this method #### Defined in -[src/types/app-arc56.ts:406](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L406) +[src/types/app-arc56.ts:408](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L408) ___ @@ -84,7 +84,7 @@ The name of the method #### Defined in -[src/types/app-arc56.ts:358](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L358) +[src/types/app-arc56.ts:360](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L360) ___ @@ -96,7 +96,7 @@ If this method does not write anything to the ledger (ARC-22) #### Defined in -[src/types/app-arc56.ts:404](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L404) +[src/types/app-arc56.ts:406](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L406) ___ @@ -122,7 +122,7 @@ Information that clients can use when calling the method #### Defined in -[src/types/app-arc56.ts:408](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L408) +[src/types/app-arc56.ts:410](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L410) ___ @@ -142,4 +142,4 @@ Information about the method's return value #### Defined in -[src/types/app-arc56.ts:388](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L388) +[src/types/app-arc56.ts:390](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L390) diff --git a/docs/code/interfaces/types_app_arc56.ProgramSourceInfo.md b/docs/code/interfaces/types_app_arc56.ProgramSourceInfo.md index 2261ed2b..456d3183 100644 --- a/docs/code/interfaces/types_app_arc56.ProgramSourceInfo.md +++ b/docs/code/interfaces/types_app_arc56.ProgramSourceInfo.md @@ -23,7 +23,7 @@ How the program counter offset is calculated #### Defined in -[src/types/app-arc56.ts:519](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L519) +[src/types/app-arc56.ts:521](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L521) ___ @@ -35,4 +35,4 @@ The source information for the program #### Defined in -[src/types/app-arc56.ts:514](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L514) +[src/types/app-arc56.ts:516](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L516) diff --git a/docs/code/interfaces/types_app_arc56.StorageKey.md b/docs/code/interfaces/types_app_arc56.StorageKey.md index ed6effe7..6b86beb7 100644 --- a/docs/code/interfaces/types_app_arc56.StorageKey.md +++ b/docs/code/interfaces/types_app_arc56.StorageKey.md @@ -25,7 +25,7 @@ Description of what this storage key holds #### Defined in -[src/types/app-arc56.ts:479](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L479) +[src/types/app-arc56.ts:481](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L481) ___ @@ -37,7 +37,7 @@ The bytes of the key encoded as base64 #### Defined in -[src/types/app-arc56.ts:486](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L486) +[src/types/app-arc56.ts:488](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L488) ___ @@ -49,7 +49,7 @@ The type of the key #### Defined in -[src/types/app-arc56.ts:481](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L481) +[src/types/app-arc56.ts:483](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L483) ___ @@ -61,4 +61,4 @@ The type of the value #### Defined in -[src/types/app-arc56.ts:484](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L484) +[src/types/app-arc56.ts:486](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L486) diff --git a/docs/code/interfaces/types_app_arc56.StorageMap.md b/docs/code/interfaces/types_app_arc56.StorageMap.md index a776d3d0..e8a45f64 100644 --- a/docs/code/interfaces/types_app_arc56.StorageMap.md +++ b/docs/code/interfaces/types_app_arc56.StorageMap.md @@ -25,7 +25,7 @@ Description of what the key-value pairs in this mapping hold #### Defined in -[src/types/app-arc56.ts:492](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L492) +[src/types/app-arc56.ts:494](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L494) ___ @@ -37,7 +37,7 @@ The type of the keys in the map #### Defined in -[src/types/app-arc56.ts:494](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L494) +[src/types/app-arc56.ts:496](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L496) ___ @@ -49,7 +49,7 @@ The base64-encoded prefix of the map keys #### Defined in -[src/types/app-arc56.ts:498](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L498) +[src/types/app-arc56.ts:500](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L500) ___ @@ -61,4 +61,4 @@ The type of the values in the map #### Defined in -[src/types/app-arc56.ts:496](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L496) +[src/types/app-arc56.ts:498](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L498) diff --git a/docs/code/interfaces/types_app_arc56.StructField.md b/docs/code/interfaces/types_app_arc56.StructField.md index 0d3ded8b..f7e2dd73 100644 --- a/docs/code/interfaces/types_app_arc56.StructField.md +++ b/docs/code/interfaces/types_app_arc56.StructField.md @@ -23,7 +23,7 @@ The name of the struct field #### Defined in -[src/types/app-arc56.ts:471](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L471) +[src/types/app-arc56.ts:473](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L473) ___ @@ -35,4 +35,4 @@ The type of the struct field's value #### Defined in -[src/types/app-arc56.ts:473](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L473) +[src/types/app-arc56.ts:475](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L475) diff --git a/docs/code/modules/index.md b/docs/code/modules/index.md index 7d5e1647..b2cc6a37 100644 --- a/docs/code/modules/index.md +++ b/docs/code/modules/index.md @@ -304,7 +304,7 @@ ___ #### Defined in -[src/transaction/transaction.ts:41](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L41) +[src/transaction/transaction.ts:39](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L39) ___ @@ -314,7 +314,7 @@ ___ #### Defined in -[src/transaction/transaction.ts:40](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L40) +[src/transaction/transaction.ts:38](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L38) ___ @@ -324,7 +324,7 @@ ___ #### Defined in -[src/transaction/transaction.ts:39](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L39) +[src/transaction/transaction.ts:37](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L37) ## Functions @@ -575,7 +575,7 @@ the estimated rate. #### Defined in -[src/transaction/transaction.ts:1074](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L1074) +[src/transaction/transaction.ts:1056](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L1056) ___ @@ -639,7 +639,7 @@ Allows for control of fees on a `Transaction` or `SuggestedParams` object #### Defined in -[src/transaction/transaction.ts:1101](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L1101) +[src/transaction/transaction.ts:1083](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L1083) ___ @@ -811,7 +811,7 @@ algokit.encodeLease(new Uint8Array([1, 2, 3])) #### Defined in -[src/transaction/transaction.ts:82](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L82) +[src/transaction/transaction.ts:80](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L80) ___ @@ -846,7 +846,7 @@ Encodes a transaction note into a byte array ready to be included in an Algorand #### Defined in -[src/transaction/transaction.ts:58](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L58) +[src/transaction/transaction.ts:56](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L56) ___ @@ -967,7 +967,7 @@ Converts `bigint`'s for Uint's < 64 to `number` for easier use. #### Defined in -[src/transaction/transaction.ts:940](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L940) +[src/transaction/transaction.ts:922](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L922) ___ @@ -1943,7 +1943,7 @@ Returns the array of transactions currently present in the given `AtomicTransact #### Defined in -[src/transaction/transaction.ts:1150](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L1150) +[src/transaction/transaction.ts:1132](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L1132) ___ @@ -2231,7 +2231,7 @@ Returns the public address of the given transaction sender. #### Defined in -[src/transaction/transaction.ts:118](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L118) +[src/transaction/transaction.ts:116](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L116) ___ @@ -2261,7 +2261,7 @@ This function has memoization, so will return the same transaction signer for a #### Defined in -[src/transaction/transaction.ts:176](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L176) +[src/transaction/transaction.ts:174](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L174) ___ @@ -2330,7 +2330,7 @@ Returns suggested transaction parameters from algod unless some are already prov #### Defined in -[src/transaction/transaction.ts:1128](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L1128) +[src/transaction/transaction.ts:1110](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L1110) ___ @@ -2361,7 +2361,7 @@ AtomicTransactionComposer's addTransaction method. #### Defined in -[src/transaction/transaction.ts:135](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L135) +[src/transaction/transaction.ts:133](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L133) ___ @@ -2762,7 +2762,7 @@ A new ATC with the resources populated into the transactions #### Defined in -[src/transaction/transaction.ts:390](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L390) +[src/transaction/transaction.ts:388](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L388) ___ @@ -2791,7 +2791,7 @@ A new ATC with the changes applied #### Defined in -[src/transaction/transaction.ts:409](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L409) +[src/transaction/transaction.ts:407](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L407) ___ @@ -2941,7 +2941,7 @@ An object with transaction IDs, transactions, group transaction ID (`groupTransa #### Defined in -[src/transaction/transaction.ts:784](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L784) +[src/transaction/transaction.ts:782](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L782) ___ @@ -2970,7 +2970,7 @@ Signs and sends a group of [up to 16](https://dev.algorand.co/concepts/transacti #### Defined in -[src/transaction/transaction.ts:973](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L973) +[src/transaction/transaction.ts:955](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L955) ___ @@ -3002,7 +3002,7 @@ Prepares a transaction for sending and then (if instructed) signs and sends the #### Defined in -[src/transaction/transaction.ts:217](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L217) +[src/transaction/transaction.ts:215](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L215) ___ @@ -3033,7 +3033,7 @@ Signs a single transaction by the given signer. #### Defined in -[src/transaction/transaction.ts:194](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L194) +[src/transaction/transaction.ts:192](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L192) ___ @@ -3243,4 +3243,4 @@ Throws an error if the transaction is not confirmed or rejected in the next `tim #### Defined in -[src/transaction/transaction.ts:1017](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L1017) +[src/transaction/transaction.ts:999](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/transaction/transaction.ts#L999) diff --git a/docs/code/modules/types_app_arc56.md b/docs/code/modules/types_app_arc56.md index dc62f99d..906f8c15 100644 --- a/docs/code/modules/types_app_arc56.md +++ b/docs/code/modules/types_app_arc56.md @@ -54,7 +54,7 @@ Decoded ARC-56 struct as a struct rather than a tuple. #### Defined in -[src/types/app-arc56.ts:121](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L121) +[src/types/app-arc56.ts:122](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L122) ___ @@ -66,7 +66,7 @@ An ABI-encoded type #### Defined in -[src/types/app-arc56.ts:451](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L451) +[src/types/app-arc56.ts:453](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L453) ___ @@ -78,7 +78,7 @@ Raw byteslice without the length prefixed that is specified in ARC-4 #### Defined in -[src/types/app-arc56.ts:457](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L457) +[src/types/app-arc56.ts:459](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L459) ___ @@ -90,7 +90,7 @@ A utf-8 string without the length prefix that is specified in ARC-4 #### Defined in -[src/types/app-arc56.ts:460](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L460) +[src/types/app-arc56.ts:462](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L462) ___ @@ -102,7 +102,7 @@ A native AVM type #### Defined in -[src/types/app-arc56.ts:466](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L466) +[src/types/app-arc56.ts:468](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L468) ___ @@ -114,7 +114,7 @@ A 64-bit unsigned integer #### Defined in -[src/types/app-arc56.ts:463](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L463) +[src/types/app-arc56.ts:465](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L465) ___ @@ -150,7 +150,7 @@ The name of a defined struct #### Defined in -[src/types/app-arc56.ts:454](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L454) +[src/types/app-arc56.ts:456](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L456) ## Functions @@ -177,7 +177,7 @@ The decoded ABI value or struct #### Defined in -[src/types/app-arc56.ts:133](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L133) +[src/types/app-arc56.ts:134](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L134) ___ @@ -203,7 +203,7 @@ The binary ABI-encoded value #### Defined in -[src/types/app-arc56.ts:157](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L157) +[src/types/app-arc56.ts:159](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L159) ___ @@ -261,7 +261,7 @@ The struct as a decoded ABI tuple #### Defined in -[src/types/app-arc56.ts:107](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L107) +[src/types/app-arc56.ts:108](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L108) ___ @@ -311,7 +311,7 @@ The `Arc56Method` #### Defined in -[src/types/app-arc56.ts:187](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L187) +[src/types/app-arc56.ts:189](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L189) ___ @@ -343,4 +343,4 @@ The smart contract response with an updated return value #### Defined in -[src/types/app-arc56.ts:218](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L218) +[src/types/app-arc56.ts:220](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/src/types/app-arc56.ts#L220) diff --git a/src/types/app-client.spec.ts b/src/types/app-client.spec.ts index cee942f3..950cc7a2 100644 --- a/src/types/app-client.spec.ts +++ b/src/types/app-client.spec.ts @@ -1023,11 +1023,14 @@ describe('app-client', () => { expect(decoded.name).toBe('world') }) - test.each([8, 16, 32, 64, 128, 256, 512])('correctly decodes a uint%i', (bitLength) => { + test.each( + // Generate all valid ABI uint bit lengths + Array.from({ length: 64 }, (_, i) => (i + 1) * 8), + )('correctly decodes a uint%i', (bitLength) => { const encoded = new ABIUintType(bitLength).encode(1) const decoded = getABIDecodedValue(encoded, `uint${bitLength}`, {}) - if (bitLength < 64) { + if (bitLength < 53) { expect(typeof decoded).toBe('number') expect(decoded).toBe(1) } else {