From c15fef0aefa3f6ed5ace4f77ed1f91a532ddf561 Mon Sep 17 00:00:00 2001 From: Jordan Last Date: Mon, 15 Jul 2024 12:49:04 -0500 Subject: [PATCH] move to non-experimental decorators --- examples/init/package-lock.json | 682 ++++++++++++++++- .../pre_and_post_upgrade/package-lock.json | 692 ++++++++++++++++- .../simple_user_accounts/package-lock.json | 717 +++++++++++++++++- src/lib/stable/execute_with_candid_serde.ts | 71 +- src/lib/stable/heartbeat.ts | 54 +- src/lib/stable/init.ts | 48 +- src/lib/stable/inspect_message.ts | 32 +- src/lib/stable/post_upgrade.ts | 48 +- src/lib/stable/pre_upgrade.ts | 32 +- src/lib/stable/query.ts | 13 +- src/lib/stable/update.ts | 52 +- static_canister_template.wasm | Bin 4936107 -> 4936289 bytes .../class_syntax/init/package-lock.json | 688 ++++++++++++++++- .../class_syntax/init/tsconfig.json | 3 +- .../pre_and_post_upgrade/package-lock.json | 692 ++++++++++++++++- .../pre_and_post_upgrade/tsconfig.json | 3 +- .../simple_user_accounts/package-lock.json | 695 ++++++++++++++++- .../simple_user_accounts/tsconfig.json | 3 +- 18 files changed, 4268 insertions(+), 257 deletions(-) diff --git a/examples/init/package-lock.json b/examples/init/package-lock.json index 1061eeb22e..6e1daf5c4a 100644 --- a/examples/init/package-lock.json +++ b/examples/init/package-lock.json @@ -12,8 +12,8 @@ "@dfinity/agent": "^1.4.0", "jest": "^29.7.0", "ts-jest": "^29.1.5", - "ts-node": "10.7.0", - "typescript": "^5.4.5" + "tsx": "^4.15.7", + "typescript": "^5.2.2" } }, "../..": { @@ -706,6 +706,22 @@ "@noble/hashes": "^1.3.1" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { "version": "0.19.4", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.4.tgz", @@ -3185,6 +3201,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -4903,6 +4931,15 @@ "node": ">=8" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -5291,6 +5328,8 @@ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@cspotcode/source-map-support": "0.7.0", "@tsconfig/node10": "^1.0.7", @@ -5334,6 +5373,415 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/tsx": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.16.2.tgz", + "integrity": "sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==", + "dev": true, + "dependencies": { + "esbuild": "~0.21.5", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -5431,7 +5879,9 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/v8-to-istanbul": { "version": "9.2.0", @@ -6097,6 +6547,13 @@ "@noble/hashes": "^1.3.1" } }, + "@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "dev": true, + "optional": true + }, "@esbuild/android-arm": { "version": "0.19.4", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.4.tgz", @@ -7848,6 +8305,15 @@ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, + "get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "requires": { + "resolve-pkg-maps": "^1.0.0" + } + }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -9173,6 +9639,12 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, + "resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true + }, "resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -9438,6 +9910,8 @@ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", "dev": true, + "optional": true, + "peer": true, "requires": { "@cspotcode/source-map-support": "0.7.0", "@tsconfig/node10": "^1.0.7", @@ -9459,6 +9933,204 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "tsx": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.16.2.tgz", + "integrity": "sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==", + "dev": true, + "requires": { + "esbuild": "~0.21.5", + "fsevents": "~2.3.3", + "get-tsconfig": "^4.7.5" + }, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "dev": true, + "optional": true + }, + "esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + } + } + }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -9510,7 +10182,9 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "v8-to-istanbul": { "version": "9.2.0", diff --git a/examples/pre_and_post_upgrade/package-lock.json b/examples/pre_and_post_upgrade/package-lock.json index 9f57fb6c72..f5a56cd620 100644 --- a/examples/pre_and_post_upgrade/package-lock.json +++ b/examples/pre_and_post_upgrade/package-lock.json @@ -1,10 +1,10 @@ { - "name": "pre_and_post_upgrade_test_functional_syntax", + "name": "pre_and_post_upgrade_end_to_end_test_functional_syntax", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "pre_and_post_upgrade_test_functional_syntax", + "name": "pre_and_post_upgrade_end_to_end_test_functional_syntax", "dependencies": { "azle": "0.22.0" }, @@ -12,7 +12,7 @@ "@dfinity/agent": "^0.19.2", "jest": "^29.7.0", "ts-jest": "^29.1.5", - "ts-node": "^10.9.1", + "tsx": "^4.15.7", "typescript": "^5.2.2" } }, @@ -762,6 +762,22 @@ "@noble/hashes": "^1.3.1" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { "version": "0.19.4", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.4.tgz", @@ -1478,6 +1494,8 @@ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -3327,6 +3345,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -5048,6 +5078,15 @@ "node": ">=8" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -5436,6 +5475,8 @@ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -5479,6 +5520,8 @@ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -5491,6 +5534,415 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/tsx": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.16.2.tgz", + "integrity": "sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==", + "dev": true, + "dependencies": { + "esbuild": "~0.21.5", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -5588,7 +6040,9 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/v8-to-istanbul": { "version": "9.3.0", @@ -6317,6 +6771,13 @@ "@noble/hashes": "^1.3.1" } }, + "@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "dev": true, + "optional": true + }, "@esbuild/android-arm": { "version": "0.19.4", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.4.tgz", @@ -6770,6 +7231,8 @@ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -8152,6 +8615,15 @@ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, + "get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "requires": { + "resolve-pkg-maps": "^1.0.0" + } + }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -9477,6 +9949,12 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, + "resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true + }, "resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -9742,6 +10220,8 @@ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, + "optional": true, + "peer": true, "requires": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -9763,6 +10243,8 @@ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "optional": true, + "peer": true, "requires": { "@jridgewell/trace-mapping": "0.3.9" } @@ -9774,6 +10256,204 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "tsx": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.16.2.tgz", + "integrity": "sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==", + "dev": true, + "requires": { + "esbuild": "~0.21.5", + "fsevents": "~2.3.3", + "get-tsconfig": "^4.7.5" + }, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "dev": true, + "optional": true + }, + "esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + } + } + }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -9825,7 +10505,9 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "v8-to-istanbul": { "version": "9.3.0", diff --git a/examples/simple_user_accounts/package-lock.json b/examples/simple_user_accounts/package-lock.json index 27ae11c4a7..7355b9dc87 100644 --- a/examples/simple_user_accounts/package-lock.json +++ b/examples/simple_user_accounts/package-lock.json @@ -1,10 +1,10 @@ { - "name": "simple_user_accounts_end_to_end_test_canister_syntax", + "name": "simple_user_accounts_end_to_end_test_functional_syntax", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "simple_user_accounts_end_to_end_test_canister_syntax", + "name": "simple_user_accounts_end_to_end_test_functional_syntax", "dependencies": { "azle": "0.22.0", "text-encoding": "^0.7.0" @@ -13,8 +13,8 @@ "@dfinity/agent": "0.11.1", "jest": "^29.7.0", "ts-jest": "^29.1.5", - "ts-node": "10.7.0", - "typescript": "4.6.3" + "tsx": "^4.15.7", + "typescript": "^5.2.2" } }, "node_modules/@adraffy/ens-normalize": { @@ -713,6 +713,22 @@ "dev": true, "peer": true }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { "version": "0.19.4", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.4.tgz", @@ -2043,18 +2059,6 @@ } } }, - "node_modules/azle/node_modules/typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, "node_modules/babel-jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", @@ -3239,6 +3243,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -4960,6 +4976,15 @@ "node": ">=8" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -5348,6 +5373,8 @@ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@cspotcode/source-map-support": "0.7.0", "@tsconfig/node10": "^1.0.7", @@ -5391,6 +5418,415 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/tsx": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.16.2.tgz", + "integrity": "sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==", + "dev": true, + "dependencies": { + "esbuild": "~0.21.5", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -5418,15 +5854,15 @@ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" }, "node_modules/typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==", + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/universalify": { @@ -5488,7 +5924,9 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/v8-to-istanbul": { "version": "9.3.0", @@ -6181,6 +6619,13 @@ "dev": true, "peer": true }, + "@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "dev": true, + "optional": true + }, "@esbuild/android-arm": { "version": "0.19.4", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.4.tgz", @@ -7050,11 +7495,6 @@ "make-error": "^1.1.1", "yn": "3.1.1" } - }, - "typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==" } } }, @@ -7966,6 +8406,15 @@ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, + "get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "requires": { + "resolve-pkg-maps": "^1.0.0" + } + }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -9291,6 +9740,12 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, + "resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true + }, "resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -9556,6 +10011,8 @@ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", "dev": true, + "optional": true, + "peer": true, "requires": { "@cspotcode/source-map-support": "0.7.0", "@tsconfig/node10": "^1.0.7", @@ -9577,6 +10034,204 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "tsx": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.16.2.tgz", + "integrity": "sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==", + "dev": true, + "requires": { + "esbuild": "~0.21.5", + "fsevents": "~2.3.3", + "get-tsconfig": "^4.7.5" + }, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "dev": true, + "optional": true + }, + "esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + } + } + }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -9595,9 +10250,9 @@ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" }, "typescript": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz", - "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==" + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz", + "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==" }, "universalify": { "version": "2.0.0", @@ -9628,7 +10283,9 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "v8-to-istanbul": { "version": "9.3.0", diff --git a/src/lib/stable/execute_with_candid_serde.ts b/src/lib/stable/execute_with_candid_serde.ts index cef7a68ee3..96df520eaa 100644 --- a/src/lib/stable/execute_with_candid_serde.ts +++ b/src/lib/stable/execute_with_candid_serde.ts @@ -1,4 +1,4 @@ -import { IDL } from '@dfinity/candid'; +import { IDL, JsonValue } from '@dfinity/candid'; import { handleUncaughtError } from './error'; import { reply } from './ic_apis'; @@ -7,52 +7,61 @@ type CanisterMethodMode = | 'query' | 'update' | 'init' - | 'heartbeat' - | 'inspectMessage' | 'postUpgrade' - | 'preUpgrade'; + | 'preUpgrade' + | 'inspectMessage' + | 'heartbeat'; -export function executeWithCandidSerde( +export async function executeAndReplyWithCandidSerde( mode: CanisterMethodMode, args: any[], - callback: any, + callback: (...args: any) => any, paramIdlTypes: IDL.Type[], returnIdlType: IDL.Type | undefined, manual: boolean -): void { - const decodedArgs = IDL.decode(paramIdlTypes, args[0]); - - const result = getResult(decodedArgs, callback); - - if (mode === 'init' || mode === 'postUpgrade') { - return; - } +): Promise { + const decodedArgs = decodeArgs(mode, args, paramIdlTypes); + const unencodedResult = await getUnencodedResult(decodedArgs, callback); + encodeResultAndReply(mode, manual, unencodedResult, returnIdlType); +} +function decodeArgs( + mode: CanisterMethodMode, + args: any[], + paramIdlTypes: IDL.Type[] +): JsonValue[] { if ( - result !== undefined && - result !== null && - typeof result.then === 'function' + mode === 'init' || + mode === 'postUpgrade' || + mode === 'query' || + mode === 'update' ) { - result - .then((result: any) => { - if (!manual) { - reply({ data: result, idlType: returnIdlType }); - } - }) - .catch((error: any) => { - handleUncaughtError(error); - }); + return IDL.decode(paramIdlTypes, args[0]); } else { - if (!manual) { - reply({ data: result, idlType: returnIdlType }); - } + return []; } } -function getResult(args: any[], callback: any): any { +async function getUnencodedResult( + args: JsonValue[], + callback: (...args: any) => any +): Promise { try { - return callback(...args); + return await callback(...args); } catch (error) { handleUncaughtError(error); } } + +function encodeResultAndReply( + mode: CanisterMethodMode, + manual: boolean, + unencodedResult: any, + returnIdlType: IDL.Type | undefined +): void { + if ((mode !== 'query' && mode !== 'update') || manual === true) { + return; + } + + reply({ data: unencodedResult, idlType: returnIdlType }); +} diff --git a/src/lib/stable/heartbeat.ts b/src/lib/stable/heartbeat.ts index f3ae8e5fe3..1f118eb1a1 100644 --- a/src/lib/stable/heartbeat.ts +++ b/src/lib/stable/heartbeat.ts @@ -1,44 +1,26 @@ -import { handleUncaughtError } from './error'; +import { executeAndReplyWithCandidSerde } from './execute_with_candid_serde'; -export function heartbeat( - target: object, - propertyKey: string | symbol, - descriptor: TypedPropertyDescriptor -): TypedPropertyDescriptor | void { +export function heartbeat( + originalMethod: (this: This, ...args: Args) => Return, + context: ClassMethodDecoratorContext +): void { const index = globalThis._azleCanisterMethodsIndex++; globalThis._azleCanisterMethods.heartbeat = { - name: propertyKey as string, + name: context.name as string, index }; - globalThis._azleCanisterMethods.callbacks[index.toString()] = - async (): Promise => { - try { - await (descriptor.value as any).bind(target)(); - } catch (error) { - handleUncaughtError(error); - } - }; - - return descriptor; + globalThis._azleCanisterMethods.callbacks[index.toString()] = ( + ...args: any[] + ): void => { + executeAndReplyWithCandidSerde( + 'heartbeat', + args, + originalMethod.bind(globalThis._azleCanisterClassInstance), + [], + undefined, + false + ); + }; } - -// TODO do we need this? -// TODO it would be nice if QuickJS would just panic -// TODO on all uncaught exceptions -// function executeHeartbeat(callback: any) { -// const result = callback(); - -// if ( -// result !== undefined && -// result !== null && -// typeof result.then === 'function' -// ) { -// result.catch((error: any) => { -// ic.trap(error.toString()); -// }); -// } - -// return; -// } diff --git a/src/lib/stable/init.ts b/src/lib/stable/init.ts index 935881368f..bc5efae81c 100644 --- a/src/lib/stable/init.ts +++ b/src/lib/stable/init.ts @@ -1,38 +1,32 @@ import { IDL } from '@dfinity/candid'; -import { executeWithCandidSerde } from './execute_with_candid_serde'; +import { executeAndReplyWithCandidSerde } from './execute_with_candid_serde'; + +export function init( + paramIdlTypes: IDL.Type[] +) { + return ( + originalMethod: (this: This, ...args: Args) => Return, + context: ClassMethodDecoratorContext + ): void => { + const index = globalThis._azleCanisterMethodsIndex++; -export function init(paramIdls: IDL.Type[]): MethodDecorator { - return ( - target: object, - propertyKey: string | symbol, - descriptor: TypedPropertyDescriptor - ): TypedPropertyDescriptor | void => { - const originalMethod = (descriptor.value as any).bind(target); + globalThis._azleCanisterMethods.init = { + name: context.name as string, + index + }; - const methodCallback = (...args: any[]): void => { - executeWithCandidSerde( + globalThis._azleCanisterMethods.callbacks[index.toString()] = ( + ...args: any[] + ): void => { + executeAndReplyWithCandidSerde( 'init', args, - originalMethod, - paramIdls, + originalMethod.bind(globalThis._azleCanisterClassInstance), + paramIdlTypes, undefined, - false // TODO implement manual check + false ); }; - - descriptor.value = methodCallback as any; - - const index = globalThis._azleCanisterMethodsIndex++; - - globalThis._azleCanisterMethods.init = { - name: propertyKey as string, - index - }; - - globalThis._azleCanisterMethods.callbacks[index.toString()] = - methodCallback; - - return descriptor; }; } diff --git a/src/lib/stable/inspect_message.ts b/src/lib/stable/inspect_message.ts index b1d7ac72da..c219d9863e 100644 --- a/src/lib/stable/inspect_message.ts +++ b/src/lib/stable/inspect_message.ts @@ -4,27 +4,29 @@ // TODO but it will break all of your other methods // TODO so do we just leave params out? -import { handleUncaughtError } from './error'; +import { executeAndReplyWithCandidSerde } from './execute_with_candid_serde'; -export function inspectMessage( - target: object, - propertyKey: string | symbol, - descriptor: TypedPropertyDescriptor -): TypedPropertyDescriptor | void { +export function inspectMessage( + originalMethod: (this: This, ...args: Args) => Return, + context: ClassMethodDecoratorContext +): void { const index = globalThis._azleCanisterMethodsIndex++; globalThis._azleCanisterMethods.inspect_message = { - name: propertyKey as string, + name: context.name as string, index }; - globalThis._azleCanisterMethods.callbacks[index.toString()] = (): void => { - try { - (descriptor.value as any).bind(target)(); - } catch (error) { - handleUncaughtError(error); - } + globalThis._azleCanisterMethods.callbacks[index.toString()] = ( + ...args: any[] + ): void => { + executeAndReplyWithCandidSerde( + 'inspectMessage', + args, + originalMethod.bind(globalThis._azleCanisterClassInstance), + [], + undefined, + false + ); }; - - return descriptor; } diff --git a/src/lib/stable/post_upgrade.ts b/src/lib/stable/post_upgrade.ts index 013bc21cb7..30963248c7 100644 --- a/src/lib/stable/post_upgrade.ts +++ b/src/lib/stable/post_upgrade.ts @@ -1,38 +1,32 @@ import { IDL } from '@dfinity/candid'; -import { executeWithCandidSerde } from './execute_with_candid_serde'; +import { executeAndReplyWithCandidSerde } from './execute_with_candid_serde'; + +export function postUpgrade( + paramIdlTypes: IDL.Type[] +) { + return ( + originalMethod: (this: This, ...args: Args) => Return, + context: ClassMethodDecoratorContext + ): void => { + const index = globalThis._azleCanisterMethodsIndex++; -export function postUpgrade(paramIdls: IDL.Type[]): MethodDecorator { - return ( - target: object, - propertyKey: string | symbol, - descriptor: TypedPropertyDescriptor - ): TypedPropertyDescriptor | void => { - const originalMethod = (descriptor.value as any).bind(target); + globalThis._azleCanisterMethods.post_upgrade = { + name: context.name as string, + index + }; - const methodCallback = (...args: any[]): void => { - executeWithCandidSerde( + globalThis._azleCanisterMethods.callbacks[index.toString()] = ( + ...args: any[] + ): void => { + executeAndReplyWithCandidSerde( 'postUpgrade', args, - originalMethod, - paramIdls, + originalMethod.bind(globalThis._azleCanisterClassInstance), + paramIdlTypes, undefined, - false // TODO implement manual check + false ); }; - - descriptor.value = methodCallback as any; - - const index = globalThis._azleCanisterMethodsIndex++; - - globalThis._azleCanisterMethods.post_upgrade = { - name: propertyKey as string, - index - }; - - globalThis._azleCanisterMethods.callbacks[index.toString()] = - methodCallback; - - return descriptor; }; } diff --git a/src/lib/stable/pre_upgrade.ts b/src/lib/stable/pre_upgrade.ts index 779627258b..ef81261d28 100644 --- a/src/lib/stable/pre_upgrade.ts +++ b/src/lib/stable/pre_upgrade.ts @@ -1,24 +1,26 @@ -import { handleUncaughtError } from './error'; +import { executeAndReplyWithCandidSerde } from './execute_with_candid_serde'; -export function preUpgrade( - target: object, - propertyKey: string | symbol, - descriptor: TypedPropertyDescriptor -): TypedPropertyDescriptor | void { +export function preUpgrade( + originalMethod: (this: This, ...args: Args) => Return, + context: ClassMethodDecoratorContext +): void { const index = globalThis._azleCanisterMethodsIndex++; globalThis._azleCanisterMethods.pre_upgrade = { - name: propertyKey as string, + name: context.name as string, index }; - globalThis._azleCanisterMethods.callbacks[index.toString()] = (): void => { - try { - (descriptor.value as any).bind(target)(); - } catch (error) { - handleUncaughtError(error); - } + globalThis._azleCanisterMethods.callbacks[index.toString()] = ( + ...args: any[] + ): void => { + executeAndReplyWithCandidSerde( + 'preUpgrade', + args, + originalMethod.bind(globalThis._azleCanisterClassInstance), + [], + undefined, + false + ); }; - - return descriptor; } diff --git a/src/lib/stable/query.ts b/src/lib/stable/query.ts index 0782fcd91e..c932c8fc91 100644 --- a/src/lib/stable/query.ts +++ b/src/lib/stable/query.ts @@ -1,10 +1,10 @@ import { IDL } from '@dfinity/candid'; -import { executeWithCandidSerde } from './execute_with_candid_serde'; +import { executeAndReplyWithCandidSerde } from './execute_with_candid_serde'; export function query( paramIdlTypes: IDL.Type[], - returnIdlTypes: IDL.Type, + returnIdlType?: IDL.Type, options?: { composite?: boolean; manual?: boolean; @@ -12,10 +12,7 @@ export function query( ) { return ( originalMethod: (this: This, ...args: Args) => Return, - context: ClassMethodDecoratorContext< - This, - (this: This, ...args: Args) => Return - > + context: ClassMethodDecoratorContext ): void => { const index = globalThis._azleCanisterMethodsIndex++; @@ -28,12 +25,12 @@ export function query( globalThis._azleCanisterMethods.callbacks[index.toString()] = ( ...args: any[] ): void => { - executeWithCandidSerde( + executeAndReplyWithCandidSerde( 'query', args, originalMethod.bind(globalThis._azleCanisterClassInstance), paramIdlTypes, - returnIdlTypes, + returnIdlType, options?.manual ?? false ); }; diff --git a/src/lib/stable/update.ts b/src/lib/stable/update.ts index 78b378bccb..5c3431d1a2 100644 --- a/src/lib/stable/update.ts +++ b/src/lib/stable/update.ts @@ -1,44 +1,36 @@ import { IDL } from '@dfinity/candid'; -import { executeWithCandidSerde } from './execute_with_candid_serde'; +import { executeAndReplyWithCandidSerde } from './execute_with_candid_serde'; -export function update( - paramIdls: IDL.Type[], - returnIdl?: IDL.Type, +export function update( + paramIdlTypes: IDL.Type[], + returnIdlType?: IDL.Type, options?: { manual?: boolean; } -): MethodDecorator { - return ( - target: object, - propertyKey: string | symbol, - descriptor: TypedPropertyDescriptor - ): TypedPropertyDescriptor | void => { - const originalMethod = (descriptor.value as any).bind(target); - - const methodCallback = (...args: any[]): void => { - executeWithCandidSerde( - 'update', - args, - originalMethod, - paramIdls, - returnIdl, - options?.manual ?? false - ); - }; - - descriptor.value = methodCallback as any; - +) { + return ( + originalMethod: (this: This, ...args: Args) => Return, + context: ClassMethodDecoratorContext + ): void => { const index = globalThis._azleCanisterMethodsIndex++; globalThis._azleCanisterMethods.updates.push({ - name: propertyKey as string, + name: context.name as string, index }); - globalThis._azleCanisterMethods.callbacks[index.toString()] = - methodCallback; - - return descriptor; + globalThis._azleCanisterMethods.callbacks[index.toString()] = ( + ...args: any[] + ): void => { + executeAndReplyWithCandidSerde( + 'update', + args, + originalMethod.bind(globalThis._azleCanisterClassInstance), + paramIdlTypes, + returnIdlType, + options?.manual ?? false + ); + }; }; } diff --git a/static_canister_template.wasm b/static_canister_template.wasm index 8ed812f89f23804b78d058b10dc00869fd6f98b0..d262d448d78cbe36096501b4c45d873d3fd3a9a9 100644 GIT binary patch delta 210606 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

RgJ|U!o1B8Upw$ShWNlv%U)@Kv_-;T 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 Q7hHXFs=7W2%eflyf9RPO$N&HU delta 210261 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 JS?1O7{|5#nrJw)+ diff --git a/tests/end_to_end/candid_rpc/class_syntax/init/package-lock.json b/tests/end_to_end/candid_rpc/class_syntax/init/package-lock.json index c47ea0cea0..76bc88fd41 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/init/package-lock.json +++ b/tests/end_to_end/candid_rpc/class_syntax/init/package-lock.json @@ -12,7 +12,7 @@ "init_end_to_end_test_functional_syntax": "file:../../../../../examples/init", "jest": "^29.7.0", "ts-jest": "^29.1.5", - "ts-node": "10.7.0", + "tsx": "^4.15.7", "typescript": "^5.2.2" } }, @@ -51,8 +51,8 @@ "@dfinity/agent": "^1.4.0", "jest": "^29.7.0", "ts-jest": "^29.1.5", - "ts-node": "10.7.0", - "typescript": "^5.4.5" + "tsx": "^4.15.7", + "typescript": "^5.2.2" } }, "node_modules/@adraffy/ens-normalize": { @@ -720,6 +720,22 @@ "@noble/hashes": "^1.3.1" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { "version": "0.19.4", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.4.tgz", @@ -3199,6 +3215,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -4921,6 +4949,15 @@ "node": ">=8" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -5309,6 +5346,8 @@ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@cspotcode/source-map-support": "0.7.0", "@tsconfig/node10": "^1.0.7", @@ -5352,6 +5391,415 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/tsx": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.16.2.tgz", + "integrity": "sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==", + "dev": true, + "dependencies": { + "esbuild": "~0.21.5", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -5449,7 +5897,9 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/v8-to-istanbul": { "version": "9.2.0", @@ -6115,6 +6565,13 @@ "@noble/hashes": "^1.3.1" } }, + "@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "dev": true, + "optional": true + }, "@esbuild/android-arm": { "version": "0.19.4", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.4.tgz", @@ -7866,6 +8323,15 @@ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, + "get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "requires": { + "resolve-pkg-maps": "^1.0.0" + } + }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -8066,8 +8532,8 @@ "azle": "0.22.0", "jest": "^29.7.0", "ts-jest": "^29.1.5", - "ts-node": "10.7.0", - "typescript": "^5.4.5" + "tsx": "^4.15.7", + "typescript": "^5.2.2" } }, "intl": { @@ -9202,6 +9668,12 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, + "resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true + }, "resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -9467,6 +9939,8 @@ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", "dev": true, + "optional": true, + "peer": true, "requires": { "@cspotcode/source-map-support": "0.7.0", "@tsconfig/node10": "^1.0.7", @@ -9488,6 +9962,204 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "tsx": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.16.2.tgz", + "integrity": "sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==", + "dev": true, + "requires": { + "esbuild": "~0.21.5", + "fsevents": "~2.3.3", + "get-tsconfig": "^4.7.5" + }, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "dev": true, + "optional": true + }, + "esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + } + } + }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -9539,7 +10211,9 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "v8-to-istanbul": { "version": "9.2.0", diff --git a/tests/end_to_end/candid_rpc/class_syntax/init/tsconfig.json b/tests/end_to_end/candid_rpc/class_syntax/init/tsconfig.json index 9599134d91..2638f0d8bc 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/init/tsconfig.json +++ b/tests/end_to_end/candid_rpc/class_syntax/init/tsconfig.json @@ -4,7 +4,6 @@ "target": "ES2020", "moduleResolution": "node", "allowJs": true, - "outDir": "HACK_BECAUSE_OF_ALLOW_JS", - "experimentalDecorators": true + "outDir": "HACK_BECAUSE_OF_ALLOW_JS" } } diff --git a/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/package-lock.json b/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/package-lock.json index 34791ecf92..3ddb386046 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/package-lock.json +++ b/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/package-lock.json @@ -12,7 +12,7 @@ "jest": "^29.7.0", "pre_and_post_upgrade_end_to_end_test_functional_syntax": "file:../../../../../examples/pre_and_post_upgrade", "ts-jest": "^29.1.5", - "ts-node": "^10.9.1", + "tsx": "^4.15.7", "typescript": "^5.2.2" } }, @@ -51,7 +51,7 @@ "@dfinity/agent": "^0.19.2", "jest": "^29.7.0", "ts-jest": "^29.1.5", - "ts-node": "^10.9.1", + "tsx": "^4.15.7", "typescript": "^5.2.2" } }, @@ -776,6 +776,22 @@ "@noble/hashes": "^1.3.1" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { "version": "0.19.4", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.4.tgz", @@ -1492,6 +1508,8 @@ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -3341,6 +3359,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -5066,6 +5096,15 @@ "node": ">=8" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -5454,6 +5493,8 @@ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -5497,6 +5538,8 @@ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -5509,6 +5552,415 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/tsx": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.16.2.tgz", + "integrity": "sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==", + "dev": true, + "dependencies": { + "esbuild": "~0.21.5", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -5606,7 +6058,9 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/v8-to-istanbul": { "version": "9.3.0", @@ -6335,6 +6789,13 @@ "@noble/hashes": "^1.3.1" } }, + "@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "dev": true, + "optional": true + }, "@esbuild/android-arm": { "version": "0.19.4", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.4.tgz", @@ -6788,6 +7249,8 @@ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -8170,6 +8633,15 @@ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, + "get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "requires": { + "resolve-pkg-maps": "^1.0.0" + } + }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -9346,7 +9818,7 @@ "azle": "0.22.0", "jest": "^29.7.0", "ts-jest": "^29.1.5", - "ts-node": "^10.9.1", + "tsx": "^4.15.7", "typescript": "^5.2.2" } }, @@ -9506,6 +9978,12 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, + "resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true + }, "resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -9771,6 +10249,8 @@ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", "dev": true, + "optional": true, + "peer": true, "requires": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -9792,6 +10272,8 @@ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, + "optional": true, + "peer": true, "requires": { "@jridgewell/trace-mapping": "0.3.9" } @@ -9803,6 +10285,204 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "tsx": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.16.2.tgz", + "integrity": "sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==", + "dev": true, + "requires": { + "esbuild": "~0.21.5", + "fsevents": "~2.3.3", + "get-tsconfig": "^4.7.5" + }, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "dev": true, + "optional": true + }, + "esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + } + } + }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -9854,7 +10534,9 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "v8-to-istanbul": { "version": "9.3.0", diff --git a/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/tsconfig.json b/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/tsconfig.json index 9599134d91..2638f0d8bc 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/tsconfig.json +++ b/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/tsconfig.json @@ -4,7 +4,6 @@ "target": "ES2020", "moduleResolution": "node", "allowJs": true, - "outDir": "HACK_BECAUSE_OF_ALLOW_JS", - "experimentalDecorators": true + "outDir": "HACK_BECAUSE_OF_ALLOW_JS" } } diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/package-lock.json b/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/package-lock.json index 1dfe160fea..6def5e2a20 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/package-lock.json +++ b/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/package-lock.json @@ -1,10 +1,9 @@ { - "name": "simple_user_accounts_end_to_end_test_canister_syntax", + "name": "simple_user_accounts", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "simple_user_accounts_end_to_end_test_canister_syntax", "dependencies": { "azle": "0.22.0", "text-encoding": "^0.7.0" @@ -12,14 +11,14 @@ "devDependencies": { "@dfinity/agent": "0.11.1", "jest": "^29.7.0", - "simple_user_accounts_end_to_end_test_canister_syntax": "file:../../../../../examples/simple_user_accounts", + "simple_user_accounts_end_to_end_test_functional_syntax": "file:../../../../../examples/simple_user_accounts", "ts-jest": "^29.1.5", - "ts-node": "10.7.0", + "tsx": "^4.15.7", "typescript": "^5.2.2" } }, "../../../../../examples/simple_user_accounts": { - "name": "simple_user_accounts_end_to_end_test_canister_syntax", + "name": "simple_user_accounts_end_to_end_test_functional_syntax", "dev": true, "dependencies": { "azle": "0.22.0", @@ -29,7 +28,7 @@ "@dfinity/agent": "0.11.1", "jest": "^29.7.0", "ts-jest": "^29.1.5", - "ts-node": "10.7.0", + "tsx": "^4.15.7", "typescript": "^5.2.2" } }, @@ -729,6 +728,22 @@ "dev": true, "peer": true }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { "version": "0.19.4", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.4.tgz", @@ -3243,6 +3258,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -4964,6 +4991,15 @@ "node": ">=8" } }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, "node_modules/resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -5068,7 +5104,7 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "node_modules/simple_user_accounts_end_to_end_test_canister_syntax": { + "node_modules/simple_user_accounts_end_to_end_test_functional_syntax": { "resolved": "../../../../../examples/simple_user_accounts", "link": true }, @@ -5356,6 +5392,8 @@ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", "dev": true, + "optional": true, + "peer": true, "dependencies": { "@cspotcode/source-map-support": "0.7.0", "@tsconfig/node10": "^1.0.7", @@ -5399,6 +5437,415 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/tsx": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.16.2.tgz", + "integrity": "sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==", + "dev": true, + "dependencies": { + "esbuild": "~0.21.5", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -5496,7 +5943,9 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "node_modules/v8-to-istanbul": { "version": "9.3.0", @@ -6189,6 +6638,13 @@ "dev": true, "peer": true }, + "@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "dev": true, + "optional": true + }, "@esbuild/android-arm": { "version": "0.19.4", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.4.tgz", @@ -7969,6 +8425,15 @@ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true }, + "get-tsconfig": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", + "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "dev": true, + "requires": { + "resolve-pkg-maps": "^1.0.0" + } + }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -9294,6 +9759,12 @@ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, + "resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true + }, "resolve.exports": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", @@ -9365,7 +9836,7 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "simple_user_accounts_end_to_end_test_canister_syntax": { + "simple_user_accounts_end_to_end_test_functional_syntax": { "version": "file:../../../../../examples/simple_user_accounts", "requires": { "@dfinity/agent": "0.11.1", @@ -9373,7 +9844,7 @@ "jest": "^29.7.0", "text-encoding": "^0.7.0", "ts-jest": "^29.1.5", - "ts-node": "10.7.0", + "tsx": "^4.15.7", "typescript": "^5.2.2" } }, @@ -9571,6 +10042,8 @@ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz", "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==", "dev": true, + "optional": true, + "peer": true, "requires": { "@cspotcode/source-map-support": "0.7.0", "@tsconfig/node10": "^1.0.7", @@ -9592,6 +10065,204 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "tsx": { + "version": "4.16.2", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.16.2.tgz", + "integrity": "sha512-C1uWweJDgdtX2x600HjaFaucXTilT7tgUZHbOE4+ypskZ1OP8CRCSDkCxG6Vya9EwaFIVagWwpaVAn5wzypaqQ==", + "dev": true, + "requires": { + "esbuild": "~0.21.5", + "fsevents": "~2.3.3", + "get-tsconfig": "^4.7.5" + }, + "dependencies": { + "@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "dev": true, + "optional": true + }, + "esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + } + } + }, "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -9643,7 +10314,9 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "dev": true, + "optional": true, + "peer": true }, "v8-to-istanbul": { "version": "9.3.0", diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/tsconfig.json b/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/tsconfig.json index 9599134d91..2638f0d8bc 100644 --- a/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/tsconfig.json +++ b/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/tsconfig.json @@ -4,7 +4,6 @@ "target": "ES2020", "moduleResolution": "node", "allowJs": true, - "outDir": "HACK_BECAUSE_OF_ALLOW_JS", - "experimentalDecorators": true + "outDir": "HACK_BECAUSE_OF_ALLOW_JS" } }