diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7ba3652ef1..4995cd5440 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -64,10 +64,10 @@ jobs: run: | EXAMPLE_DIRECTORIES=$(cat << END [ - "tests/property/candid_rpc/class_syntax/service", - "tests/property/candid_rpc/class_syntax/stable_b_tree_map", - "tests/property/candid_rpc/functional_syntax/service", - "tests/property/candid_rpc/functional_syntax/stable_b_tree_map", + "tests/property/candid_rpc/class_api/service", + "tests/property/candid_rpc/class_api/stable_b_tree_map", + "tests/property/candid_rpc/functional_api/service", + "tests/property/candid_rpc/functional_api/stable_b_tree_map", "tests/end_to_end/http_server/ethers_base", "tests/end_to_end/http_server/http_outcall_fetch", "tests/end_to_end/http_server/ic_evm_rpc", @@ -76,200 +76,200 @@ jobs: "examples/ckbtc", "examples/hello_world", "examples/hello_world_candid_rpc", - "tests/property/candid_rpc/class_syntax/blob", - "tests/property/candid_rpc/class_syntax/bool", - "tests/property/candid_rpc/class_syntax/canister_methods/http_request", - "tests/property/candid_rpc/class_syntax/canister_methods/http_request_update", - "tests/property/candid_rpc/class_syntax/canister_methods/init", - "tests/property/candid_rpc/class_syntax/canister_methods/inspect_message", - "tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade", - "tests/property/candid_rpc/class_syntax/canister_methods/pre_upgrade", - "tests/property/candid_rpc/class_syntax/canister_methods/query", - "tests/property/candid_rpc/class_syntax/canister_methods/update", - "tests/property/candid_rpc/class_syntax/float32", - "tests/property/candid_rpc/class_syntax/float64", - "tests/property/candid_rpc/class_syntax/func", - "tests/property/candid_rpc/class_syntax/int", - "tests/property/candid_rpc/class_syntax/int16", - "tests/property/candid_rpc/class_syntax/int32", - "tests/property/candid_rpc/class_syntax/int64", - "tests/property/candid_rpc/class_syntax/int8", - "tests/property/candid_rpc/class_syntax/nat", - "tests/property/candid_rpc/class_syntax/nat16", - "tests/property/candid_rpc/class_syntax/nat32", - "tests/property/candid_rpc/class_syntax/nat64", - "tests/property/candid_rpc/class_syntax/nat8", - "tests/property/candid_rpc/class_syntax/null", - "tests/property/candid_rpc/class_syntax/opt", - "tests/property/candid_rpc/class_syntax/principal", - "tests/property/candid_rpc/class_syntax/record", - "tests/property/candid_rpc/class_syntax/recursive", - "tests/property/candid_rpc/class_syntax/text", - "tests/property/candid_rpc/class_syntax/tuple", - "tests/property/candid_rpc/class_syntax/variant", - "tests/property/candid_rpc/class_syntax/vec", - "tests/property/candid_rpc/functional_syntax/blob", - "tests/property/candid_rpc/functional_syntax/bool", - "tests/property/candid_rpc/functional_syntax/canister_methods/http_request", - "tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update", - "tests/property/candid_rpc/functional_syntax/canister_methods/init", - "tests/property/candid_rpc/functional_syntax/canister_methods/inspect_message", - "tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade", - "tests/property/candid_rpc/functional_syntax/canister_methods/pre_upgrade", - "tests/property/candid_rpc/functional_syntax/canister_methods/query", - "tests/property/candid_rpc/functional_syntax/canister_methods/update", - "tests/property/candid_rpc/functional_syntax/float32", - "tests/property/candid_rpc/functional_syntax/float64", - "tests/property/candid_rpc/functional_syntax/func", - "tests/property/candid_rpc/functional_syntax/int", - "tests/property/candid_rpc/functional_syntax/int16", - "tests/property/candid_rpc/functional_syntax/int32", - "tests/property/candid_rpc/functional_syntax/int64", - "tests/property/candid_rpc/functional_syntax/int8", - "tests/property/candid_rpc/functional_syntax/nat", - "tests/property/candid_rpc/functional_syntax/nat16", - "tests/property/candid_rpc/functional_syntax/nat32", - "tests/property/candid_rpc/functional_syntax/nat64", - "tests/property/candid_rpc/functional_syntax/nat8", - "tests/property/candid_rpc/functional_syntax/null", - "tests/property/candid_rpc/functional_syntax/opt", - "tests/property/candid_rpc/functional_syntax/principal", - "tests/property/candid_rpc/functional_syntax/record", - "tests/property/candid_rpc/functional_syntax/recursive", - "tests/property/candid_rpc/functional_syntax/text", - "tests/property/candid_rpc/functional_syntax/tuple", - "tests/property/candid_rpc/functional_syntax/variant", - "tests/property/candid_rpc/functional_syntax/vec", - "tests/end_to_end/candid_rpc/class_syntax/async_await", - "tests/end_to_end/candid_rpc/class_syntax/audio_recorder", - "tests/end_to_end/candid_rpc/class_syntax/bitcoin", - "tests/end_to_end/candid_rpc/class_syntax/blob_array", - "tests/end_to_end/candid_rpc/class_syntax/bytes", - "tests/end_to_end/candid_rpc/class_syntax/call_raw", - "tests/end_to_end/candid_rpc/class_syntax/candid_encoding", - "tests/end_to_end/candid_rpc/class_syntax/candid_keywords", - "tests/end_to_end/candid_rpc/class_syntax/canister", - "tests/end_to_end/candid_rpc/class_syntax/complex_init", - "tests/end_to_end/candid_rpc/class_syntax/complex_types", - "tests/end_to_end/candid_rpc/class_syntax/composite_queries", - "tests/end_to_end/candid_rpc/class_syntax/counter", - "tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls", - "tests/end_to_end/candid_rpc/class_syntax/cycles", - "tests/end_to_end/candid_rpc/class_syntax/date", - "tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc", - "tests/end_to_end/candid_rpc/class_syntax/func_types", - "tests/end_to_end/candid_rpc/class_syntax/heartbeat", - "tests/end_to_end/candid_rpc/class_syntax/ic_api", - "tests/end_to_end/candid_rpc/class_syntax/icrc", - "tests/end_to_end/candid_rpc/class_syntax/imports", - "tests/end_to_end/candid_rpc/class_syntax/init", - "tests/end_to_end/candid_rpc/class_syntax/inspect_message", - "tests/end_to_end/candid_rpc/class_syntax/key_value_store", - "tests/end_to_end/candid_rpc/class_syntax/ledger_canister", - "tests/end_to_end/candid_rpc/class_syntax/list_of_lists", - "tests/end_to_end/candid_rpc/class_syntax/management_canister", - "tests/end_to_end/candid_rpc/class_syntax/manual_reply", - "tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc", - "tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter", - "tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo", - "tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial", - "tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello", - "tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world", - "tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter", - "tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp", - "tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage", - "tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book", - "tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort", - "tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do", - "tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes", - "tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa", - "tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami", - "tests/end_to_end/candid_rpc/class_syntax/new", - "tests/end_to_end/candid_rpc/class_syntax/new_candid_rpc", - "tests/end_to_end/candid_rpc/class_syntax/notify_raw", - "tests/end_to_end/candid_rpc/class_syntax/null_example", - "tests/end_to_end/candid_rpc/class_syntax/optional_types", - "tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests", - "tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade", - "tests/end_to_end/candid_rpc/class_syntax/primitive_types", - "tests/end_to_end/candid_rpc/class_syntax/principal", - "tests/end_to_end/candid_rpc/class_syntax/query", - "tests/end_to_end/candid_rpc/class_syntax/randomness", - "tests/end_to_end/candid_rpc/class_syntax/recursion", - "tests/end_to_end/candid_rpc/class_syntax/rejections", - "tests/end_to_end/candid_rpc/class_syntax/simple_erc20", - "tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts", - "tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold", - "tests/end_to_end/candid_rpc/class_syntax/stable_structures", - "tests/end_to_end/candid_rpc/class_syntax/timers", - "tests/end_to_end/candid_rpc/class_syntax/tuple_types", - "tests/end_to_end/candid_rpc/class_syntax/update", - "tests/end_to_end/candid_rpc/class_syntax/vanilla_js", - "tests/end_to_end/candid_rpc/functional_syntax/async_await", - "tests/end_to_end/candid_rpc/functional_syntax/audio_recorder", - "tests/end_to_end/candid_rpc/functional_syntax/bitcoin", - "tests/end_to_end/candid_rpc/functional_syntax/blob_array", - "tests/end_to_end/candid_rpc/functional_syntax/bytes", - "tests/end_to_end/candid_rpc/functional_syntax/call_raw", - "tests/end_to_end/candid_rpc/functional_syntax/candid_encoding", - "tests/end_to_end/candid_rpc/functional_syntax/candid_keywords", - "tests/end_to_end/candid_rpc/functional_syntax/canister", - "tests/end_to_end/candid_rpc/functional_syntax/ckbtc", - "tests/end_to_end/candid_rpc/functional_syntax/complex_init", - "tests/end_to_end/candid_rpc/functional_syntax/complex_types", - "tests/end_to_end/candid_rpc/functional_syntax/composite_queries", - "tests/end_to_end/candid_rpc/functional_syntax/counter", - "tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls", - "tests/end_to_end/candid_rpc/functional_syntax/cycles", - "tests/end_to_end/candid_rpc/functional_syntax/date", - "tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc", - "tests/end_to_end/candid_rpc/functional_syntax/func_types", - "tests/end_to_end/candid_rpc/functional_syntax/heartbeat", - "tests/end_to_end/candid_rpc/functional_syntax/ic_api", - "tests/end_to_end/candid_rpc/functional_syntax/icrc", - "tests/end_to_end/candid_rpc/functional_syntax/imports", - "tests/end_to_end/candid_rpc/functional_syntax/init", - "tests/end_to_end/candid_rpc/functional_syntax/inspect_message", - "tests/end_to_end/candid_rpc/functional_syntax/key_value_store", - "tests/end_to_end/candid_rpc/functional_syntax/ledger_canister", - "tests/end_to_end/candid_rpc/functional_syntax/list_of_lists", - "tests/end_to_end/candid_rpc/functional_syntax/management_canister", - "tests/end_to_end/candid_rpc/functional_syntax/manual_reply", - "tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc", - "tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter", - "tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo", - "tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial", - "tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello", - "tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world", - "tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter", - "tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp", - "tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage", - "tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book", - "tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort", - "tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do", - "tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes", - "tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa", - "tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami", - "tests/end_to_end/candid_rpc/functional_syntax/notify_raw", - "tests/end_to_end/candid_rpc/functional_syntax/null_example", - "tests/end_to_end/candid_rpc/functional_syntax/optional_types", - "tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests", - "tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade", - "tests/end_to_end/candid_rpc/functional_syntax/primitive_types", - "tests/end_to_end/candid_rpc/functional_syntax/principal", - "tests/end_to_end/candid_rpc/functional_syntax/query", - "tests/end_to_end/candid_rpc/functional_syntax/randomness", - "tests/end_to_end/candid_rpc/functional_syntax/recursion", - "tests/end_to_end/candid_rpc/functional_syntax/rejections", - "tests/end_to_end/candid_rpc/functional_syntax/robust_imports", - "tests/end_to_end/candid_rpc/functional_syntax/simple_erc20", - "tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts", - "tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold", - "tests/end_to_end/candid_rpc/functional_syntax/stable_structures", - "tests/end_to_end/candid_rpc/functional_syntax/timers", - "tests/end_to_end/candid_rpc/functional_syntax/tuple_types", - "tests/end_to_end/candid_rpc/functional_syntax/update", - "tests/end_to_end/candid_rpc/functional_syntax/vanilla_js", + "tests/property/candid_rpc/class_api/blob", + "tests/property/candid_rpc/class_api/bool", + "tests/property/candid_rpc/class_api/canister_methods/http_request", + "tests/property/candid_rpc/class_api/canister_methods/http_request_update", + "tests/property/candid_rpc/class_api/canister_methods/init", + "tests/property/candid_rpc/class_api/canister_methods/inspect_message", + "tests/property/candid_rpc/class_api/canister_methods/post_upgrade", + "tests/property/candid_rpc/class_api/canister_methods/pre_upgrade", + "tests/property/candid_rpc/class_api/canister_methods/query", + "tests/property/candid_rpc/class_api/canister_methods/update", + "tests/property/candid_rpc/class_api/float32", + "tests/property/candid_rpc/class_api/float64", + "tests/property/candid_rpc/class_api/func", + "tests/property/candid_rpc/class_api/int", + "tests/property/candid_rpc/class_api/int16", + "tests/property/candid_rpc/class_api/int32", + "tests/property/candid_rpc/class_api/int64", + "tests/property/candid_rpc/class_api/int8", + "tests/property/candid_rpc/class_api/nat", + "tests/property/candid_rpc/class_api/nat16", + "tests/property/candid_rpc/class_api/nat32", + "tests/property/candid_rpc/class_api/nat64", + "tests/property/candid_rpc/class_api/nat8", + "tests/property/candid_rpc/class_api/null", + "tests/property/candid_rpc/class_api/opt", + "tests/property/candid_rpc/class_api/principal", + "tests/property/candid_rpc/class_api/record", + "tests/property/candid_rpc/class_api/recursive", + "tests/property/candid_rpc/class_api/text", + "tests/property/candid_rpc/class_api/tuple", + "tests/property/candid_rpc/class_api/variant", + "tests/property/candid_rpc/class_api/vec", + "tests/property/candid_rpc/functional_api/blob", + "tests/property/candid_rpc/functional_api/bool", + "tests/property/candid_rpc/functional_api/canister_methods/http_request", + "tests/property/candid_rpc/functional_api/canister_methods/http_request_update", + "tests/property/candid_rpc/functional_api/canister_methods/init", + "tests/property/candid_rpc/functional_api/canister_methods/inspect_message", + "tests/property/candid_rpc/functional_api/canister_methods/post_upgrade", + "tests/property/candid_rpc/functional_api/canister_methods/pre_upgrade", + "tests/property/candid_rpc/functional_api/canister_methods/query", + "tests/property/candid_rpc/functional_api/canister_methods/update", + "tests/property/candid_rpc/functional_api/float32", + "tests/property/candid_rpc/functional_api/float64", + "tests/property/candid_rpc/functional_api/func", + "tests/property/candid_rpc/functional_api/int", + "tests/property/candid_rpc/functional_api/int16", + "tests/property/candid_rpc/functional_api/int32", + "tests/property/candid_rpc/functional_api/int64", + "tests/property/candid_rpc/functional_api/int8", + "tests/property/candid_rpc/functional_api/nat", + "tests/property/candid_rpc/functional_api/nat16", + "tests/property/candid_rpc/functional_api/nat32", + "tests/property/candid_rpc/functional_api/nat64", + "tests/property/candid_rpc/functional_api/nat8", + "tests/property/candid_rpc/functional_api/null", + "tests/property/candid_rpc/functional_api/opt", + "tests/property/candid_rpc/functional_api/principal", + "tests/property/candid_rpc/functional_api/record", + "tests/property/candid_rpc/functional_api/recursive", + "tests/property/candid_rpc/functional_api/text", + "tests/property/candid_rpc/functional_api/tuple", + "tests/property/candid_rpc/functional_api/variant", + "tests/property/candid_rpc/functional_api/vec", + "tests/end_to_end/candid_rpc/class_api/async_await", + "tests/end_to_end/candid_rpc/class_api/audio_recorder", + "tests/end_to_end/candid_rpc/class_api/bitcoin", + "tests/end_to_end/candid_rpc/class_api/blob_array", + "tests/end_to_end/candid_rpc/class_api/bytes", + "tests/end_to_end/candid_rpc/class_api/call_raw", + "tests/end_to_end/candid_rpc/class_api/candid_encoding", + "tests/end_to_end/candid_rpc/class_api/candid_keywords", + "tests/end_to_end/candid_rpc/class_api/canister", + "tests/end_to_end/candid_rpc/class_api/complex_init", + "tests/end_to_end/candid_rpc/class_api/complex_types", + "tests/end_to_end/candid_rpc/class_api/composite_queries", + "tests/end_to_end/candid_rpc/class_api/counter", + "tests/end_to_end/candid_rpc/class_api/cross_canister_calls", + "tests/end_to_end/candid_rpc/class_api/cycles", + "tests/end_to_end/candid_rpc/class_api/date", + "tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc", + "tests/end_to_end/candid_rpc/class_api/func_types", + "tests/end_to_end/candid_rpc/class_api/heartbeat", + "tests/end_to_end/candid_rpc/class_api/ic_api", + "tests/end_to_end/candid_rpc/class_api/icrc", + "tests/end_to_end/candid_rpc/class_api/imports", + "tests/end_to_end/candid_rpc/class_api/init", + "tests/end_to_end/candid_rpc/class_api/inspect_message", + "tests/end_to_end/candid_rpc/class_api/key_value_store", + "tests/end_to_end/candid_rpc/class_api/ledger_canister", + "tests/end_to_end/candid_rpc/class_api/list_of_lists", + "tests/end_to_end/candid_rpc/class_api/management_canister", + "tests/end_to_end/candid_rpc/class_api/manual_reply", + "tests/end_to_end/candid_rpc/class_api/motoko_examples/calc", + "tests/end_to_end/candid_rpc/class_api/motoko_examples/counter", + "tests/end_to_end/candid_rpc/class_api/motoko_examples/echo", + "tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial", + "tests/end_to_end/candid_rpc/class_api/motoko_examples/hello", + "tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world", + "tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter", + "tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp", + "tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage", + "tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book", + "tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort", + "tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do", + "tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes", + "tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa", + "tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami", + "tests/end_to_end/candid_rpc/class_api/new", + "tests/end_to_end/candid_rpc/class_api/new_candid_rpc", + "tests/end_to_end/candid_rpc/class_api/notify_raw", + "tests/end_to_end/candid_rpc/class_api/null_example", + "tests/end_to_end/candid_rpc/class_api/optional_types", + "tests/end_to_end/candid_rpc/class_api/outgoing_http_requests", + "tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade", + "tests/end_to_end/candid_rpc/class_api/primitive_types", + "tests/end_to_end/candid_rpc/class_api/principal", + "tests/end_to_end/candid_rpc/class_api/query", + "tests/end_to_end/candid_rpc/class_api/randomness", + "tests/end_to_end/candid_rpc/class_api/recursion", + "tests/end_to_end/candid_rpc/class_api/rejections", + "tests/end_to_end/candid_rpc/class_api/simple_erc20", + "tests/end_to_end/candid_rpc/class_api/simple_user_accounts", + "tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold", + "tests/end_to_end/candid_rpc/class_api/stable_structures", + "tests/end_to_end/candid_rpc/class_api/timers", + "tests/end_to_end/candid_rpc/class_api/tuple_types", + "tests/end_to_end/candid_rpc/class_api/update", + "tests/end_to_end/candid_rpc/class_api/vanilla_js", + "tests/end_to_end/candid_rpc/functional_api/async_await", + "tests/end_to_end/candid_rpc/functional_api/audio_recorder", + "tests/end_to_end/candid_rpc/functional_api/bitcoin", + "tests/end_to_end/candid_rpc/functional_api/blob_array", + "tests/end_to_end/candid_rpc/functional_api/bytes", + "tests/end_to_end/candid_rpc/functional_api/call_raw", + "tests/end_to_end/candid_rpc/functional_api/candid_encoding", + "tests/end_to_end/candid_rpc/functional_api/candid_keywords", + "tests/end_to_end/candid_rpc/functional_api/canister", + "tests/end_to_end/candid_rpc/functional_api/ckbtc", + "tests/end_to_end/candid_rpc/functional_api/complex_init", + "tests/end_to_end/candid_rpc/functional_api/complex_types", + "tests/end_to_end/candid_rpc/functional_api/composite_queries", + "tests/end_to_end/candid_rpc/functional_api/counter", + "tests/end_to_end/candid_rpc/functional_api/cross_canister_calls", + "tests/end_to_end/candid_rpc/functional_api/cycles", + "tests/end_to_end/candid_rpc/functional_api/date", + "tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc", + "tests/end_to_end/candid_rpc/functional_api/func_types", + "tests/end_to_end/candid_rpc/functional_api/heartbeat", + "tests/end_to_end/candid_rpc/functional_api/ic_api", + "tests/end_to_end/candid_rpc/functional_api/icrc", + "tests/end_to_end/candid_rpc/functional_api/imports", + "tests/end_to_end/candid_rpc/functional_api/init", + "tests/end_to_end/candid_rpc/functional_api/inspect_message", + "tests/end_to_end/candid_rpc/functional_api/key_value_store", + "tests/end_to_end/candid_rpc/functional_api/ledger_canister", + "tests/end_to_end/candid_rpc/functional_api/list_of_lists", + "tests/end_to_end/candid_rpc/functional_api/management_canister", + "tests/end_to_end/candid_rpc/functional_api/manual_reply", + "tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc", + "tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter", + "tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo", + "tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial", + "tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello", + "tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world", + "tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter", + "tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp", + "tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage", + "tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book", + "tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort", + "tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do", + "tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes", + "tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa", + "tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami", + "tests/end_to_end/candid_rpc/functional_api/notify_raw", + "tests/end_to_end/candid_rpc/functional_api/null_example", + "tests/end_to_end/candid_rpc/functional_api/optional_types", + "tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests", + "tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade", + "tests/end_to_end/candid_rpc/functional_api/primitive_types", + "tests/end_to_end/candid_rpc/functional_api/principal", + "tests/end_to_end/candid_rpc/functional_api/query", + "tests/end_to_end/candid_rpc/functional_api/randomness", + "tests/end_to_end/candid_rpc/functional_api/recursion", + "tests/end_to_end/candid_rpc/functional_api/rejections", + "tests/end_to_end/candid_rpc/functional_api/robust_imports", + "tests/end_to_end/candid_rpc/functional_api/simple_erc20", + "tests/end_to_end/candid_rpc/functional_api/simple_user_accounts", + "tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold", + "tests/end_to_end/candid_rpc/functional_api/stable_structures", + "tests/end_to_end/candid_rpc/functional_api/timers", + "tests/end_to_end/candid_rpc/functional_api/tuple_types", + "tests/end_to_end/candid_rpc/functional_api/update", + "tests/end_to_end/candid_rpc/functional_api/vanilla_js", "tests/end_to_end/http_server/apollo_server", "tests/end_to_end/http_server/audio_and_video", "tests/end_to_end/http_server/autoreload", diff --git a/examples/ckbtc/package.json b/examples/ckbtc/package.json index 760ce696b2..fc828ade9e 100644 --- a/examples/ckbtc/package.json +++ b/examples/ckbtc/package.json @@ -28,7 +28,7 @@ "devDependencies": { "@dfinity/agent": "^0.19.2", "@dfinity/identity": "^0.19.2", - "ckbtc_end_to_end_test_functional_syntax": "file:../../tests/end_to_end/candid_rpc/functional_syntax/ckbtc", + "ckbtc_end_to_end_test_functional_api": "file:../../tests/end_to_end/candid_rpc/functional_api/ckbtc", "jest": "^29.7.0", "ts-jest": "^29.1.4", "tsx": "^4.15.7", diff --git a/examples/ckbtc/test/pretest.ts b/examples/ckbtc/test/pretest.ts index 6e66e93b8b..501a564412 100644 --- a/examples/ckbtc/test/pretest.ts +++ b/examples/ckbtc/test/pretest.ts @@ -4,7 +4,7 @@ import { join } from 'path'; function pretest(): void { linkAndInstallPatch( - join('tests', 'end_to_end', 'candid_rpc', 'functional_syntax', 'ckbtc') + join('tests', 'end_to_end', 'candid_rpc', 'functional_api', 'ckbtc') ); uninstall( diff --git a/examples/ckbtc/test/test.ts b/examples/ckbtc/test/test.ts index a17c3ada9d..4612b9e41a 100644 --- a/examples/ckbtc/test/test.ts +++ b/examples/ckbtc/test/test.ts @@ -4,8 +4,8 @@ import { afterAll, beforeAll, describe } from '@jest/globals'; import { getCanisterId } from 'azle/dfx'; import { runTests } from 'azle/test'; import { ChildProcessWithoutNullStreams, spawn } from 'child_process'; -import { Config } from 'ckbtc_end_to_end_test_functional_syntax/test/test'; -import { getTests } from 'ckbtc_end_to_end_test_functional_syntax/test/tests'; +import { Config } from 'ckbtc_end_to_end_test_functional_api/test/test'; +import { getTests } from 'ckbtc_end_to_end_test_functional_api/test/tests'; import { existsSync, rmSync } from 'fs-extra'; // @ts-ignore this path may not exist when these tests are imported into other test projects diff --git a/property_tests/arbitraries/candid/constructed/blob_arb/definition_arb.ts b/property_tests/arbitraries/candid/constructed/blob_arb/definition_arb.ts deleted file mode 100644 index 199a079aae..0000000000 --- a/property_tests/arbitraries/candid/constructed/blob_arb/definition_arb.ts +++ /dev/null @@ -1,57 +0,0 @@ -import fc from 'fast-check'; - -import { blob } from '../../../../../src/lib/experimental'; -import { Context } from '../../../types'; -import { UniqueIdentifierArb } from '../../../unique_identifier_arb'; -import { - BlobCandidDefinition, - WithShapes, - WithShapesArb -} from '../../candid_definition_arb/types'; -import { SimpleCandidDefinitionArb } from '../../simple_type_arbs/definition_arb'; - -export function BlobDefinitionArb( - context: Context -): WithShapesArb { - if (context.api === 'class') { - return _VecNat8DefinitionArb(context); - } - return fc.oneof( - SimpleCandidDefinitionArb(context, 'blob'), - _VecNat8DefinitionArb(context) - ); -} - -export function _VecNat8DefinitionArb( - context: Context -): WithShapesArb { - const api = context.api; - return fc - .tuple(UniqueIdentifierArb('globalNames'), fc.boolean()) - .map(([name, useTypeDeclaration]): WithShapes => { - const typeAnnotation = - api === 'functional' ? 'Vec' : 'Uint8Array'; - const idl = 'IDL.Vec(IDL.Nat8)'; - const typeObject = api === 'functional' ? 'Vec(nat8)' : idl; - const variableAliasDeclarations = useTypeDeclaration - ? [`const ${name} = ${typeObject}`] - : []; - const imports = - api === 'functional' - ? new Set(['Vec', 'nat8']) - : new Set(['IDL']); - return { - definition: { - candidMeta: { - runtimeTypeObject: blob, - typeAnnotation, - typeObject: useTypeDeclaration ? name : typeObject, - variableAliasDeclarations, - imports, - candidType: 'blob' - } - }, - recursiveShapes: {} - }; - }); -} diff --git a/property_tests/arbitraries/candid/constructed/opt_arb/definition_arb.ts b/property_tests/arbitraries/candid/constructed/opt_arb/definition_arb.ts deleted file mode 100644 index e3c93bfddf..0000000000 --- a/property_tests/arbitraries/candid/constructed/opt_arb/definition_arb.ts +++ /dev/null @@ -1,196 +0,0 @@ -import fc from 'fast-check'; - -import { CandidType, Opt } from '../../../../../src/lib/experimental'; -import { Api, Context } from '../../../types'; -import { UniqueIdentifierArb } from '../../../unique_identifier_arb'; -import { - CandidDefinition, - DefinitionConstraints, - OptCandidDefinition, - RecursiveCandidDefinitionMemo, - RecursiveCandidName, - WithShapes, - WithShapesArb -} from '../../candid_definition_arb/types'; - -export function OptDefinitionArb( - context: Context, - candidTypeArbForInnerType: RecursiveCandidDefinitionMemo, - parents: RecursiveCandidName[] -): WithShapesArb { - const api = context.api; - const constraints = context.constraints; - return fc - .tuple( - UniqueIdentifierArb('globalNames'), - possiblyRecursiveArb(context, candidTypeArbForInnerType, parents), - fc.boolean() - ) - .map( - ([ - name, - innerTypeAndShapes, - useTypeDeclarationChance - ]): WithShapes => { - const useTypeDeclaration = - (constraints.forceInline === undefined || - constraints.forceInline === false) && - useTypeDeclarationChance; - const { definition: innerType, recursiveShapes } = - innerTypeAndShapes; - const typeAnnotation = generateCandidTypeAnnotation( - useTypeDeclaration, - name, - innerType, - api - ); - - const typeObject = generateTypeObject( - useTypeDeclaration, - name, - innerType, - api - ); - - const runtimeTypeObject = generateRuntimeTypeObject(innerType); - - const variableAliasDeclarations = - generateVariableAliasDeclarations( - useTypeDeclaration, - name, - innerType, - api - ); - - const imports = generateImports(innerType, api); - - return { - definition: { - candidMeta: { - typeAnnotation, - typeObject, - runtimeTypeObject, - variableAliasDeclarations, - imports, - candidType: 'Opt' - }, - innerType - }, - recursiveShapes - }; - } - ); -} - -function possiblyRecursiveArb( - context: Context, - candidArb: RecursiveCandidDefinitionMemo, - parents: RecursiveCandidName[] -): WithShapesArb { - const depthLevel = context.constraints.depthLevel ?? 0; - const newContext = { - ...context, - constraints: { - ...context.constraints, - depthLevel: depthLevel - 1 - } - }; - return fc.nat(Math.max(parents.length - 1, 0)).chain((randomIndex) => { - if (parents.length === 0 || depthLevel < 1) { - // If there are no recursive parents or we have reached a depth - // level of 0 just do a regular arb inner type - return candidArb(newContext, parents)(depthLevel); - } - return fc.oneof( - { - arbitrary: fc.constant({ - definition: parents[randomIndex], - recursiveShapes: {} - }), - weight: 1 - }, - { - arbitrary: candidArb(newContext, parents)(depthLevel), - weight: 1 - } - ); - }); -} - -function generateImports(innerType: CandidDefinition, api: Api): Set { - const optImports = api === 'functional' ? ['Opt', 'Some', 'None'] : ['IDL']; - return new Set([...innerType.candidMeta.imports, ...optImports]); -} - -function generateVariableAliasDeclarations( - useTypeDeclaration: boolean, - name: string, - innerType: CandidDefinition, - api: Api -): string[] { - if (useTypeDeclaration) { - const type = - api === 'functional' - ? [] - : [ - `type ${name} = ${generateCandidTypeAnnotation( - false, - name, - innerType, - api - )}` - ]; - return [ - ...innerType.candidMeta.variableAliasDeclarations, - `const ${name} = ${generateTypeObject( - false, - name, - innerType, - api - )};`, - ...type - ]; - } - return innerType.candidMeta.variableAliasDeclarations; -} - -function generateCandidTypeAnnotation( - useTypeDeclaration: boolean, - name: string, - innerType: CandidDefinition, - api: Api -): string { - if (useTypeDeclaration === true) { - if (api === 'class') { - return name; - } - return `typeof ${name}.tsType`; - } - - if (api === 'class') { - return `[${innerType.candidMeta.typeAnnotation}] | []`; - } - - return `Opt<${innerType.candidMeta.typeAnnotation}>`; -} - -function generateTypeObject( - useTypeDeclaration: boolean, - name: string, - innerType: CandidDefinition, - api: Api -): string { - if (useTypeDeclaration === true) { - return name; - } - - if (api === 'class') { - return `IDL.Opt(${innerType.candidMeta.typeObject})`; - } - - return `Opt(${innerType.candidMeta.typeObject})`; -} - -function generateRuntimeTypeObject(innerType: CandidDefinition): CandidType { - return Opt(innerType.candidMeta.runtimeTypeObject); -} diff --git a/property_tests/arbitraries/candid/constructed/record_arb/definition_arb.ts b/property_tests/arbitraries/candid/constructed/record_arb/definition_arb.ts deleted file mode 100644 index 2d85e57faa..0000000000 --- a/property_tests/arbitraries/candid/constructed/record_arb/definition_arb.ts +++ /dev/null @@ -1,191 +0,0 @@ -import fc from 'fast-check'; - -import { CandidType, Record } from '../../../../../src/lib/experimental'; -import { JsFunctionNameArb } from '../../../js_function_name_arb'; -import { Api, Context } from '../../../types'; -import { UniqueIdentifierArb } from '../../../unique_identifier_arb'; -import { - CandidDefinition, - CandidDefinitionArb, - RecordCandidDefinition, - WithShapes, - WithShapesArb -} from '../../candid_definition_arb/types'; -import { RecursiveShapes } from '../../recursive'; - -type Field = [string, CandidDefinition]; - -type RuntimeRecord = { - [key: string]: CandidType; -}; - -export function RecordDefinitionArb( - context: Context, - fieldCandidDefArb: CandidDefinitionArb -): WithShapesArb { - const api = context.api; - return fc - .tuple( - UniqueIdentifierArb('globalNames'), - fc.uniqueArray(fc.tuple(JsFunctionNameArb, fieldCandidDefArb), { - selector: ([name, _]) => name, - minLength: 1 // Zero length records are giving that same null error 'vec length of zero sized values too large' // I don't know if that's the same error but it seems like it is - // https://github.com/demergent-labs/azle/issues/1453 - }), - fc.boolean() - ) - .map( - ([ - name, - fieldsAndShapes, - useTypeDeclaration - ]): WithShapes => { - const fields = fieldsAndShapes.map( - (field): Field => [field[0], field[1].definition] - ); - const recursiveShapes = fieldsAndShapes.reduce( - (acc, field): RecursiveShapes => { - return { ...acc, ...field[1].recursiveShapes }; - }, - {} - ); - const typeAnnotation = generateCandidTypeAnnotation( - useTypeDeclaration, - name, - fields, - api - ); - - const typeObject = generateTypeObject( - useTypeDeclaration, - name, - fields, - api - ); - - const runtimeTypeObject = generateRuntimeTypeObject(fields); - - const variableAliasDeclarations = - generateVariableAliasDeclarations( - useTypeDeclaration, - name, - fields, - api - ); - - const imports = generateImports(fields, api); - - return { - definition: { - candidMeta: { - typeAnnotation, - typeObject, - runtimeTypeObject, - variableAliasDeclarations, - imports, - candidType: 'Record' - }, - innerTypes: fields - }, - recursiveShapes - }; - } - ); -} - -function generateImports(fields: Field[], api: Api): Set { - const fieldImports = fields.flatMap((field): string[] => [ - ...field[1].candidMeta.imports - ]); - const recordImports = api === 'functional' ? ['Record'] : ['IDL']; - return new Set([...fieldImports, ...recordImports]); -} - -function generateVariableAliasDeclarations( - useTypeDeclaration: boolean, - name: string, - fields: Field[], - api: Api -): string[] { - const fieldVariableAliasDeclarations = fields.flatMap( - (field): string[] => field[1].candidMeta.variableAliasDeclarations - ); - if (useTypeDeclaration) { - const type = - api === 'functional' - ? [] - : [ - `type ${name} = ${generateCandidTypeAnnotation( - false, - name, - fields, - api - )}` - ]; - return [ - ...fieldVariableAliasDeclarations, - `const ${name} = ${generateTypeObject(false, name, fields, api)};`, - ...type - ]; - } - return fieldVariableAliasDeclarations; -} - -function generateCandidTypeAnnotation( - useTypeDeclaration: boolean, - name: string, - fields: Field[], - api: Api -): string { - if (useTypeDeclaration === true) { - if (api === 'class') { - return name; - } - return `typeof ${name}.tsType`; - } - - return `{${fields - .map( - ([fieldName, fieldDefinition]) => - `${fieldName}: ${fieldDefinition.candidMeta.typeAnnotation}` - ) - .join(',')}}`; -} - -function generateTypeObject( - useTypeDeclaration: boolean, - name: string, - fields: Field[], - api: Api -): string { - if (useTypeDeclaration === true) { - return name; - } - - const fieldsAsString = fields - .map( - ([fieldName, fieldDefinition]) => - `${fieldName}: ${fieldDefinition.candidMeta.typeObject}` - ) - .join(','); - - if (api === 'class') { - return `IDL.Record({${fieldsAsString}})`; - } - - return `Record({${fieldsAsString}})`; -} - -function generateRuntimeTypeObject(fields: Field[]): CandidType { - const azleRecordConstructorObj = fields.reduce( - (acc, [fieldName, fieldDefinition]): RuntimeRecord => { - return { - ...acc, - [fieldName]: fieldDefinition.candidMeta.runtimeTypeObject - }; - }, - {} - ); - - return Record(azleRecordConstructorObj); -} diff --git a/property_tests/arbitraries/candid/constructed/tuple_arb/definition_arb.ts b/property_tests/arbitraries/candid/constructed/tuple_arb/definition_arb.ts deleted file mode 100644 index 461c114dc0..0000000000 --- a/property_tests/arbitraries/candid/constructed/tuple_arb/definition_arb.ts +++ /dev/null @@ -1,175 +0,0 @@ -import fc from 'fast-check'; - -import { CandidType, Tuple } from '../../../../../src/lib/experimental'; -import { Api, Context } from '../../../types'; -import { UniqueIdentifierArb } from '../../../unique_identifier_arb'; -import { - CandidDefinition, - TupleCandidDefinition, - WithShapes, - WithShapesArb -} from '../../candid_definition_arb/types'; -import { RecursiveShapes } from '../../recursive'; - -export function TupleDefinitionArb( - context: Context, - candidTypeArbForFields: WithShapesArb -): WithShapesArb { - const api = context.api; - return fc - .tuple( - UniqueIdentifierArb('globalNames'), - fc.array(candidTypeArbForFields, { minLength: 1 }), - // Although no minLength is technically required (according to the - // spec), there are some issues with vecs of empty objects that are causing some problems - // https://github.com/demergent-labs/azle/issues/1453 - fc.boolean() - ) - .map( - ([ - name, - fieldsAndShapes, - useTypeDeclaration - ]): WithShapes => { - const fields = fieldsAndShapes.map( - (field): CandidDefinition => field.definition - ); - const recursiveShapes = fieldsAndShapes.reduce( - (acc, field): RecursiveShapes => { - return { ...acc, ...field.recursiveShapes }; - }, - {} - ); - const typeAnnotation = generateCandidTypeAnnotation( - useTypeDeclaration, - name, - fields, - api - ); - - const typeObject = generateTypeObject( - useTypeDeclaration, - name, - fields, - api - ); - - const runtimeTypeObject = generateRuntimeTypeObject(fields); - - const variableAliasDeclarations = - generateVariableAliasDeclarations( - useTypeDeclaration, - name, - fields, - api - ); - - const imports = generateImports(fields, api); - - return { - definition: { - candidMeta: { - typeAnnotation, - typeObject, - runtimeTypeObject, - variableAliasDeclarations, - imports, - candidType: 'Tuple' - }, - innerTypes: fields - }, - recursiveShapes - }; - } - ); -} - -function generateImports(fields: CandidDefinition[], api: Api): Set { - const fieldImports = fields.flatMap((field) => [ - ...field.candidMeta.imports - ]); - const tupleImports = api === 'functional' ? ['Tuple'] : ['IDL']; - return new Set([...fieldImports, ...tupleImports]); -} -function generateVariableAliasDeclarations( - useTypeDeclaration: boolean, - name: string, - fields: CandidDefinition[], - api: Api -): string[] { - const fieldVariableAliasDeclarations = fields.flatMap( - (field) => field.candidMeta.variableAliasDeclarations - ); - if (useTypeDeclaration) { - const type = - api === 'functional' - ? [] - : [ - `type ${name} = ${generateCandidTypeAnnotation( - false, - name, - fields, - api - )}` - ]; - return [ - ...fieldVariableAliasDeclarations, - `const ${name} = ${generateTypeObject(false, name, fields, api)};`, - ...type - ]; - } - return fieldVariableAliasDeclarations; -} - -function generateCandidTypeAnnotation( - useTypeDeclaration: boolean, - name: string, - fields: CandidDefinition[], - api: Api -): string { - if (useTypeDeclaration === true) { - if (api === 'class') { - return name; - } - return `typeof ${name}.tsType`; - } - - const innerTypesAsString = fields - .map((field) => field.candidMeta.typeAnnotation) - .join(', '); - - if (api === 'class') { - return `[${innerTypesAsString}]`; - } - - return `Tuple<[${innerTypesAsString}]>`; -} - -function generateTypeObject( - useTypeDeclaration: boolean, - name: string, - fields: CandidDefinition[], - api: Api -): string { - if (useTypeDeclaration === true) { - return name; - } - - const innerTypesAsString = fields - .map((field) => field.candidMeta.typeObject) - .join(', '); - - if (api === 'class') { - return `IDL.Tuple(${innerTypesAsString})`; - } - - return `Tuple(${innerTypesAsString})`; -} - -function generateRuntimeTypeObject(fields: CandidDefinition[]): CandidType { - const innerTypes = fields.map( - (field) => field.candidMeta.runtimeTypeObject - ); - - return Tuple(...innerTypes); -} diff --git a/property_tests/arbitraries/candid/constructed/vec_arb/definition_arb.ts b/property_tests/arbitraries/candid/constructed/vec_arb/definition_arb.ts deleted file mode 100644 index c679cabfd6..0000000000 --- a/property_tests/arbitraries/candid/constructed/vec_arb/definition_arb.ts +++ /dev/null @@ -1,227 +0,0 @@ -import fc from 'fast-check'; - -import { CandidType, Vec } from '../../../../../src/lib/experimental'; -import { Api, Context } from '../../../types'; -import { UniqueIdentifierArb } from '../../../unique_identifier_arb'; -import { - CandidDefinition, - DefinitionConstraints, - RecursiveCandidDefinitionMemo, - RecursiveCandidName, - VecCandidDefinition, - WithShapes, - WithShapesArb -} from '../../candid_definition_arb/types'; - -export function VecDefinitionArb( - context: Context, - candidTypeArb: RecursiveCandidDefinitionMemo, - parents: RecursiveCandidName[] -): WithShapesArb { - const api = context.api; - return fc - .tuple( - UniqueIdentifierArb('globalNames'), - possiblyRecursiveArb(context, candidTypeArb, parents), - fc.boolean() - ) - .map( - ([ - name, - innerTypeAndShapes, - useTypeDeclarationChance - ]): WithShapes => { - const useTypeDeclaration = - (context.constraints.forceInline === undefined || - context.constraints.forceInline === false) && - useTypeDeclarationChance; - const { definition: innerType, recursiveShapes } = - innerTypeAndShapes; - const typeAnnotation = generateCandidTypeAnnotation( - useTypeDeclaration, - name, - innerType, - api - ); - - const typeObject = generateTypeObject( - useTypeDeclaration, - name, - innerType, - api - ); - - const runtimeTypeObject = generateRuntimeTypeObject(innerType); - - const variableAliasDeclarations = - generateVariableAliasDeclarations( - useTypeDeclaration, - name, - innerType, - api - ); - - const imports = generateImports(innerType, api); - - return { - definition: { - candidMeta: { - typeAnnotation, - typeObject, - runtimeTypeObject, - variableAliasDeclarations, - imports, - candidType: 'Vec' - }, - innerType: innerType - }, - recursiveShapes - }; - } - ); -} - -function possiblyRecursiveArb( - context: Context, - candidArb: RecursiveCandidDefinitionMemo, - parents: RecursiveCandidName[] -): WithShapesArb { - const depthLevel = context.constraints.depthLevel ?? 0; - const newContext = { - ...context, - constraints: { ...context.constraints, depthLevel: depthLevel - 1 } - }; - return fc.nat(Math.max(parents.length - 1, 0)).chain((randomIndex) => { - if (parents.length === 0) { - // If there are no recursive parents or this is the first variant field just do a regular arb field - return candidArb(newContext, parents)(depthLevel); - } - return fc.oneof( - { - arbitrary: fc.constant({ - definition: parents[randomIndex], - recursiveShapes: {} - }), - weight: 1 - }, - { - arbitrary: candidArb(newContext, parents)(depthLevel), - weight: 1 - } - ); - }); -} - -function generateImports(innerType: CandidDefinition, api: Api): Set { - const vecImports = api === 'functional' ? ['Vec'] : ['IDL']; - return new Set([...innerType.candidMeta.imports, ...vecImports]); -} - -function generateVariableAliasDeclarations( - useTypeDeclaration: boolean, - name: string, - innerType: CandidDefinition, - api: Api -): string[] { - if (useTypeDeclaration) { - const type = - api === 'functional' - ? [] - : [ - `type ${name} = ${generateCandidTypeAnnotation( - false, - name, - innerType, - api - )}` - ]; - return [ - ...innerType.candidMeta.variableAliasDeclarations, - `const ${name} = ${generateTypeObject( - false, - name, - innerType, - api - )};`, - ...type - ]; - } - return innerType.candidMeta.variableAliasDeclarations; -} - -function generateCandidTypeAnnotation( - useTypeDeclaration: boolean, - name: string, - innerType: CandidDefinition, - api: Api -): string { - if (useTypeDeclaration === true) { - if (api === 'class') { - return name; - } - return `typeof ${name}.tsType`; - } - - if (api === 'class') { - return toClassTypeAnnotation(innerType); - } - - return `Vec<${innerType.candidMeta.typeAnnotation}>`; -} - -function generateTypeObject( - useTypeDeclaration: boolean, - name: string, - innerType: CandidDefinition, - api: Api -): string { - if (useTypeDeclaration === true) { - return name; - } - - if (api === 'class') { - return `IDL.Vec(${innerType.candidMeta.typeObject})`; - } - - return `Vec(${innerType.candidMeta.typeObject})`; -} - -function generateRuntimeTypeObject(innerType: CandidDefinition): CandidType { - return Vec(innerType.candidMeta.runtimeTypeObject); -} - -function toClassTypeAnnotation(innerType: CandidDefinition): string { - if (innerType.candidMeta.candidType === 'int64') { - return `BigInt64Array`; - } - - if (innerType.candidMeta.candidType === 'int32') { - return `Int32Array`; - } - - if (innerType.candidMeta.candidType === 'int16') { - return `Int16Array`; - } - - if (innerType.candidMeta.candidType === 'int8') { - return `Int8Array`; - } - - if (innerType.candidMeta.candidType === 'nat64') { - return `BigUint64Array`; - } - - if (innerType.candidMeta.candidType === 'nat32') { - return `Uint32Array`; - } - - if (innerType.candidMeta.candidType === 'nat16') { - return `Uint16Array`; - } - - if (innerType.candidMeta.candidType === 'nat8') { - return `Uint8Array`; - } - - return `${innerType.candidMeta.typeAnnotation}[]`; -} diff --git a/property_tests/arbitraries/candid/recursive/definition_arb.ts b/property_tests/arbitraries/candid/recursive/definition_arb.ts deleted file mode 100644 index 570a174898..0000000000 --- a/property_tests/arbitraries/candid/recursive/definition_arb.ts +++ /dev/null @@ -1,127 +0,0 @@ -import fc from 'fast-check'; - -import { CandidType, Recursive } from '../../../../src/lib/experimental'; -import { Api, Context } from '../../types'; -import { UniqueIdentifierArb } from '../../unique_identifier_arb'; -import { - CandidDefinition, - DefinitionConstraints, - RecursiveCandidDefinition, - RecursiveCandidDefinitionMemo, - RecursiveCandidName, - WithShapes, - WithShapesArb -} from '../candid_definition_arb/types'; - -export function RecursiveDefinitionArb( - context: Context, - candidTypeArbForInnerType: RecursiveCandidDefinitionMemo, - parents: RecursiveCandidName[] -): WithShapesArb { - const api = context.api; - return UniqueIdentifierArb('globalNames') - .chain((name): fc.Arbitrary => { - const recCanDef: RecursiveCandidName = { - candidMeta: { - candidType: 'Recursive', - typeObject: name, - typeAnnotation: - api === 'functional' ? `typeof ${name}.tsType` : name, - imports: new Set(), - variableAliasDeclarations: [], - runtimeTypeObject: Recursive(() => undefined) - }, - name - }; - return fc.constant(recCanDef); - }) - .chain((innerRecDef) => { - return fc.tuple( - candidTypeArbForInnerType( - { - ...context, - constraints: { - recursiveWeights: true, // This should be true so that the below weights will be respected all the way down. Until those issues are resolved we can't have blobs, tuples or vecs anywhere in any recursive shapes - weights: { - blob: 0, - tuple: 0, - vec: 0 - // TODO there are a lot of bugs with recursion so we are disabling the problematic types until the issues are resolved - // https://github.com/demergent-labs/azle/issues/1518 - // https://github.com/demergent-labs/azle/issues/1513 - // https://github.com/demergent-labs/azle/issues/1525 - }, - forceInline: true - } - }, - [innerRecDef, ...parents] - )(context.constraints.depthLevel ?? 0), - fc.constant(innerRecDef) - ); - }) - .map( - ([ - { definition: innerType }, - recCanDef - ]): WithShapes => { - const { - name, - candidMeta: { typeObject, typeAnnotation } - } = recCanDef; - const variableAliasDeclarations = - generateVariableAliasDeclarations(name, innerType, api); - - const imports = generateImports(innerType, api); - - const runtimeTypeObject = generateRuntimeTypeObject(innerType); - - const recursiveShape: RecursiveCandidDefinition = { - candidMeta: { - typeObject, - typeAnnotation, - variableAliasDeclarations, - imports, - candidType: 'Recursive', - runtimeTypeObject - }, - name, - innerType - }; - - return { - definition: recursiveShape, - recursiveShapes: { - [name]: recursiveShape - } - }; - } - ); -} - -function generateVariableAliasDeclarations( - name: string, - innerType: CandidDefinition, - api: Api -): string[] { - if (api === 'class') { - return [ - ...innerType.candidMeta.variableAliasDeclarations, - `const ${name} = IDL.Rec()`, - `${name}.fill(${innerType.candidMeta.typeObject})`, - `type ${name} = ${innerType.candidMeta.typeAnnotation}` - ]; - } - return [ - `const ${name} = Recursive(() => ${innerType.candidMeta.typeObject});`, - ...innerType.candidMeta.variableAliasDeclarations - ]; -} - -function generateImports(innerType: CandidDefinition, api: Api): Set { - const recursiveImports = api === 'functional' ? 'Recursive' : 'IDL'; - return new Set([...innerType.candidMeta.imports, recursiveImports]); -} - -function generateRuntimeTypeObject(innerType: CandidDefinition): CandidType { - return Recursive(() => innerType.candidMeta.runtimeTypeObject); -} diff --git a/property_tests/arbitraries/candid/reference/func_arb/definition_arb.ts b/property_tests/arbitraries/candid/reference/func_arb/definition_arb.ts deleted file mode 100644 index 12b34e2e56..0000000000 --- a/property_tests/arbitraries/candid/reference/func_arb/definition_arb.ts +++ /dev/null @@ -1,216 +0,0 @@ -import fc from 'fast-check'; - -import { CandidType } from '../../../../../src/lib/experimental/candid/candid_type'; -import { Func } from '../../../../../src/lib/experimental/candid/types/reference/func'; -import { Api, Context } from '../../../types'; -import { UniqueIdentifierArb } from '../../../unique_identifier_arb'; -import { - CandidDefinition, - FuncCandidDefinition, - WithShapes, - WithShapesArb -} from '../../candid_definition_arb/types'; -import { VoidDefinitionArb } from '../../primitive/void'; - -type Mode = 'query' | 'update' | 'oneway'; - -export function FuncDefinitionArb( - context: Context, - candidDefArb: WithShapesArb -): WithShapesArb { - return fc - .constantFrom('query', 'update', 'oneway') - .chain((mode) => { - const returnType = - mode === 'oneway' ? VoidDefinitionArb(context) : candidDefArb; - - return fc.tuple( - UniqueIdentifierArb('globalNames'), - fc.array(candidDefArb), - returnType, - fc.constant(mode), - fc.boolean() - ); - }) - .map( - ([ - name, - paramsAndShapes, - returnFuncAndShapes, - mode, - useTypeDeclaration - ]): WithShapes => { - const api = context.api; - const params = paramsAndShapes.map( - (paramAndShapes) => paramAndShapes.definition - ); - const returnFunc = returnFuncAndShapes.definition; - const recursiveShapes = paramsAndShapes.reduce( - (acc, paramAndShapes) => { - return { ...acc, ...paramAndShapes.recursiveShapes }; - }, - returnFuncAndShapes.recursiveShapes - ); - const typeAnnotation = generateCandidTypeAnnotation( - useTypeDeclaration, - name, - api - ); - - const typeObject = generateTypeObject( - useTypeDeclaration, - name, - params, - returnFunc, - mode, - api - ); - - const runtimeTypeObject = generateRuntimeTypeObject( - params, - returnFunc, - mode - ); - - const variableAliasDeclarations = - generateVariableAliasDeclarations( - useTypeDeclaration, - name, - params, - returnFunc, - mode, - api - ); - - const imports = generateImports(params, returnFunc, api); - - return { - definition: { - candidMeta: { - typeAnnotation, - typeObject, - runtimeTypeObject, - variableAliasDeclarations, - imports, - candidType: 'Func' - }, - paramCandidMeta: params, - returnCandidMeta: returnFunc - }, - recursiveShapes - }; - } - ); -} - -function generateImports( - params: CandidDefinition[], - returnFunc: CandidDefinition, - api: Api -): Set { - const funcImports = api === 'functional' ? ['Func'] : ['IDL']; - - return new Set([ - ...params.flatMap((param) => [...param.candidMeta.imports]), - ...returnFunc.candidMeta.imports, - ...funcImports, - 'Principal' - ]); -} - -function generateVariableAliasDeclarations( - useTypeDeclaration: boolean, - name: string, - paramCandids: CandidDefinition[], - returnCandid: CandidDefinition, - mode: Mode, - api: Api -): string[] { - const paramTypeDeclarations = paramCandids.flatMap( - (param) => param.candidMeta.variableAliasDeclarations - ); - const returnTypeDeclaration = - returnCandid.candidMeta.variableAliasDeclarations; - - if (useTypeDeclaration === true) { - const type = - api === 'functional' - ? [] - : [ - `type ${name} = ${generateCandidTypeAnnotation( - false, - name, - api - )}` - ]; - return [ - ...paramTypeDeclarations, - ...returnTypeDeclaration, - `const ${name} = ${generateTypeObject( - false, - name, - paramCandids, - returnCandid, - mode, - api - )}`, - ...type - ]; - } - - return [...paramTypeDeclarations, ...returnTypeDeclaration]; -} - -function generateCandidTypeAnnotation( - useTypeDeclaration: boolean, - name: string, - api: Api -): string { - if (useTypeDeclaration === true) { - if (api === 'class') { - return name; - } - return `typeof ${name}.tsType`; - } - - return `[Principal, string]`; -} - -function generateTypeObject( - useTypeDeclaration: boolean, - name: string, - paramCandids: CandidDefinition[], - returnCandid: CandidDefinition, - mode: Mode, - api: Api -): string { - if (useTypeDeclaration === true) { - return name; - } - - const params = paramCandids - .map((param) => param.candidMeta.typeObject) - .join(', '); - - const returnType = returnCandid.candidMeta.typeObject; - - if (api === 'class') { - return `IDL.Func([${params}], [${returnType}], ${ - mode === 'update' ? '' : `['${mode}']` - })`; - } - - return `Func([${params}], ${returnType}, '${mode}')`; -} - -function generateRuntimeTypeObject( - paramCandids: CandidDefinition[], - returnCandid: CandidDefinition, - mode: Mode -): CandidType { - const params = paramCandids.map( - (param) => param.candidMeta.runtimeTypeObject - ); - - return Func(params, returnCandid.candidMeta.runtimeTypeObject, mode); -} diff --git a/property_tests/arbitraries/candid/reference/service_arb/definition_arb.ts b/property_tests/arbitraries/candid/reference/service_arb/definition_arb.ts deleted file mode 100644 index 1d580ed254..0000000000 --- a/property_tests/arbitraries/candid/reference/service_arb/definition_arb.ts +++ /dev/null @@ -1,183 +0,0 @@ -import fc from 'fast-check'; - -import { Canister } from '../../../../../src/lib/experimental/candid/types/reference/service'; -import { Api, Context } from '../../../types'; -import { UniqueIdentifierArb } from '../../../unique_identifier_arb'; -import { - CandidDefinition, - ServiceCandidDefinition, - WithShapes, - WithShapesArb -} from '../../candid_definition_arb/types'; -import { - ServiceMethodArb, - ServiceMethodDefinition -} from './service_method_arb'; - -export function ServiceDefinitionArb( - context: Context, - fieldCandidDefArb: WithShapesArb -): WithShapesArb { - const api = context.api; - return fc - .tuple( - UniqueIdentifierArb('globalNames'), - fc.uniqueArray(ServiceMethodArb(context, fieldCandidDefArb), { - selector: (entry) => entry.definition.name - }), - fc.constant(true) // TODO This needs to be true, I don't know why we set up to be an arbitrary boolean if it has to be true - ) - .map( - ([ - name, - fieldsAndShapes, - useTypeDeclaration - ]): WithShapes => { - const fields = fieldsAndShapes.map( - (fieldAndShapes) => fieldAndShapes.definition - ); - const recursiveShapes = fieldsAndShapes.reduce( - (acc, fieldAndShapes) => { - return { ...acc, ...fieldAndShapes.recursiveShapes }; - }, - {} - ); - - const typeAnnotation = generateCandidTypeAnnotation( - useTypeDeclaration, - name, - api - ); - - const typeObject = generateTypeObject( - useTypeDeclaration, - name, - fields, - api - ); - - const runtimeTypeObject = generateRuntimeTypeObject(fields); - - const variableAliasDeclarations = - generateVariableAliasDeclarations( - useTypeDeclaration, - name, - fields, - api - ); - - const imports = generateImports(fields, api); - - return { - definition: { - name, - candidMeta: { - typeAnnotation, - typeObject, - runtimeTypeObject, - variableAliasDeclarations, - imports, - candidType: 'Service' - }, - funcs: fields - }, - recursiveShapes - }; - } - ); -} - -function generateImports( - serviceMethods: ServiceMethodDefinition[], - api: Api -): Set { - const serviceImports = api === 'functional' ? ['Canister'] : ['IDL']; - return new Set([ - ...serviceMethods.flatMap((serviceMethod) => - Array.from(serviceMethod.imports) - ), - 'Principal', - 'query', - ...serviceImports - ]); -} - -function generateVariableAliasDeclarations( - useTypeDeclaration: boolean, - name: string, - serviceMethods: ServiceMethodDefinition[], - api: Api -): string[] { - const serviceMethodTypeAliasDecls = serviceMethods.flatMap( - (serviceMethod) => serviceMethod.variableAliasDeclarations - ); - if (useTypeDeclaration) { - const type = api === 'functional' ? [] : [`type ${name} = Principal`]; - return [ - ...serviceMethodTypeAliasDecls, - `const ${name} = ${generateTypeObject( - false, - name, - serviceMethods, - api - )};`, - ...type - ]; - } - return serviceMethodTypeAliasDecls; -} - -function generateCandidTypeAnnotation( - useTypeDeclaration: boolean, - name: string, - api: Api -): string { - if (useTypeDeclaration === true) { - if (api === 'class') { - return name; - } - return `typeof ${name}.tsType`; - } - - return '[Principal]'; -} - -function generateTypeObject( - useTypeDeclaration: boolean, - name: string, - serviceMethods: ServiceMethodDefinition[], - api: Api -): string { - if (useTypeDeclaration === true) { - return name; - } - - if (api === 'class') { - const methods = serviceMethods - .map((serviceMethod) => serviceMethod.idl) - .filter((typeDeclaration) => typeDeclaration) - .join(',\n'); - - return `IDL.Service({${methods}})`; - } - - const methods = serviceMethods - .map((serviceMethod) => serviceMethod.src) - .filter((typeDeclaration) => typeDeclaration) - .join(',\n'); - - return `Canister({${methods}})`; -} - -// TODO make this function's return type explicit https://github.com/demergent-labs/azle/issues/1860 -// eslint-disable-next-line @typescript-eslint/explicit-function-return-type -function generateRuntimeTypeObject(serviceMethods: ServiceMethodDefinition[]) { - const methods = serviceMethods.reduce((acc, serviceMethod) => { - return { - ...acc, - [serviceMethod.name]: serviceMethod.runtimeTypeObject - }; - }, {}); - - return Canister(methods); -} diff --git a/scripts/class_migration/add_example_dependency.js b/scripts/class_migration/add_example_dependency.js index 846a558842..5128a0cce2 100644 --- a/scripts/class_migration/add_example_dependency.js +++ b/scripts/class_migration/add_example_dependency.js @@ -5,8 +5,8 @@ import * as path from 'path'; const currentDirectory = path.basename(process.cwd()); // Define the new dev dependency -const newDependencyName = `${currentDirectory}_end_to_end_test_functional_syntax`; -const newDependencyPath = `file:../../functional_syntax/${currentDirectory}`; +const newDependencyName = `${currentDirectory}_end_to_end_test_functional_api`; +const newDependencyPath = `file:../../functional_api/${currentDirectory}`; // Path to the package.json file const packageJsonPath = path.join(process.cwd(), 'package.json'); diff --git a/scripts/class_migration/copy_generated_candid_from_example.js b/scripts/class_migration/copy_generated_candid_from_example.js index 319a2fc8e5..ec2006f075 100644 --- a/scripts/class_migration/copy_generated_candid_from_example.js +++ b/scripts/class_migration/copy_generated_candid_from_example.js @@ -35,7 +35,7 @@ fs.readFile(packageJsonPath, 'utf8', (err, packageData) => { // Get the current directory name const currentDirectory = path.basename(process.cwd()); - const devDependencyKey = `${currentDirectory}_end_to_end_test_functional_syntax`; + const devDependencyKey = `${currentDirectory}_end_to_end_test_functional_api`; const devDependencyPath = packageJson.devDependencies[devDependencyKey]; if (!devDependencyPath || !devDependencyPath.startsWith('file:')) { diff --git a/scripts/class_migration/modify_pretest.js b/scripts/class_migration/modify_pretest.js index f5443611a8..03d07055ae 100644 --- a/scripts/class_migration/modify_pretest.js +++ b/scripts/class_migration/modify_pretest.js @@ -13,7 +13,7 @@ const importLines = [ ]; // Line to add after function pretest(): void { -const additionalLine = ` linkAndInstallPatch(join('tests', 'end_to_end', 'candid_rpc', 'functional_syntax', '${currentDirectory}'));\n`; +const additionalLine = ` linkAndInstallPatch(join('tests', 'end_to_end', 'candid_rpc', 'functional_api', '${currentDirectory}'));\n`; // Read the pretest.ts file fs.readFile(pretestFilePath, 'utf8', (err, data) => { diff --git a/scripts/class_migration/name_package.js b/scripts/class_migration/name_package.js index 629f285ecd..34f31b7d48 100644 --- a/scripts/class_migration/name_package.js +++ b/scripts/class_migration/name_package.js @@ -5,7 +5,7 @@ import * as path from 'path'; const currentDirectory = path.basename(process.cwd()); // Define the new name for the package -const newName = `${currentDirectory}_end_to_end_test_functional_syntax`; +const newName = `${currentDirectory}_end_to_end_test_functional_api`; // Path to the package.json file const packageJsonPath = path.join(process.cwd(), 'package.json'); diff --git a/scripts/class_migration/update_test.js b/scripts/class_migration/update_test.js index 662b34c3da..f792e29439 100644 --- a/scripts/class_migration/update_test.js +++ b/scripts/class_migration/update_test.js @@ -11,7 +11,7 @@ const testFilePath = path.join(process.cwd(), 'test', 'test.ts'); const existingImportStatement = "import { getTests } from './tests';"; // New import statement to add -const newImportStatement = `import { getTests } from '${currentDirectory}_end_to_end_test_functional_syntax/test/tests';`; +const newImportStatement = `import { getTests } from '${currentDirectory}_end_to_end_test_functional_api/test/tests';`; // Read the test.ts file fs.readFile(testFilePath, 'utf8', (err, data) => { diff --git a/property_tests/arbitraries/candid/candid_definition_arb/complex_candid_definition_memo.ts b/test/property/arbitraries/candid/candid_definition_arb/complex_candid_definition_memo.ts similarity index 100% rename from property_tests/arbitraries/candid/candid_definition_arb/complex_candid_definition_memo.ts rename to test/property/arbitraries/candid/candid_definition_arb/complex_candid_definition_memo.ts diff --git a/property_tests/arbitraries/candid/candid_definition_arb/index.ts b/test/property/arbitraries/candid/candid_definition_arb/index.ts similarity index 100% rename from property_tests/arbitraries/candid/candid_definition_arb/index.ts rename to test/property/arbitraries/candid/candid_definition_arb/index.ts diff --git a/property_tests/arbitraries/candid/candid_definition_arb/recursive_candid_definition_memo.ts b/test/property/arbitraries/candid/candid_definition_arb/recursive_candid_definition_memo.ts similarity index 100% rename from property_tests/arbitraries/candid/candid_definition_arb/recursive_candid_definition_memo.ts rename to test/property/arbitraries/candid/candid_definition_arb/recursive_candid_definition_memo.ts diff --git a/property_tests/arbitraries/candid/candid_definition_arb/simple_candid_definition_arb.ts b/test/property/arbitraries/candid/candid_definition_arb/simple_candid_definition_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/candid_definition_arb/simple_candid_definition_arb.ts rename to test/property/arbitraries/candid/candid_definition_arb/simple_candid_definition_arb.ts diff --git a/property_tests/arbitraries/candid/candid_definition_arb/types.ts b/test/property/arbitraries/candid/candid_definition_arb/types.ts similarity index 97% rename from property_tests/arbitraries/candid/candid_definition_arb/types.ts rename to test/property/arbitraries/candid/candid_definition_arb/types.ts index dd45587f64..e16909cac6 100644 --- a/property_tests/arbitraries/candid/candid_definition_arb/types.ts +++ b/test/property/arbitraries/candid/candid_definition_arb/types.ts @@ -1,6 +1,6 @@ import fc from 'fast-check'; -import { CandidType as RuntimeCandidType } from '../../../../src/lib/experimental/candid/candid_type'; +import { CandidType as RuntimeCandidType } from '../../../../../src/lib/experimental/candid/candid_type'; import { Context } from '../../types'; import { CandidType } from '../candid_type'; import { RecursiveShapes } from '../recursive'; diff --git a/property_tests/arbitraries/candid/candid_return_type_arb.ts b/test/property/arbitraries/candid/candid_return_type_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/candid_return_type_arb.ts rename to test/property/arbitraries/candid/candid_return_type_arb.ts diff --git a/property_tests/arbitraries/candid/candid_type.ts b/test/property/arbitraries/candid/candid_type.ts similarity index 100% rename from property_tests/arbitraries/candid/candid_type.ts rename to test/property/arbitraries/candid/candid_type.ts diff --git a/property_tests/arbitraries/candid/candid_value_and_meta_arb.ts b/test/property/arbitraries/candid/candid_value_and_meta_arb.ts similarity index 97% rename from property_tests/arbitraries/candid/candid_value_and_meta_arb.ts rename to test/property/arbitraries/candid/candid_value_and_meta_arb.ts index fde309b3ea..f21396b450 100644 --- a/property_tests/arbitraries/candid/candid_value_and_meta_arb.ts +++ b/test/property/arbitraries/candid/candid_value_and_meta_arb.ts @@ -1,6 +1,6 @@ import fc from 'fast-check'; -import { CandidType as RuntimeCandidType } from '../../../src/lib/experimental'; +import { CandidType as RuntimeCandidType } from '../../../../src/lib/experimental'; import { Context } from '../types'; import { CandidValueConstraints } from './candid_values_arb'; import { BlobArb } from './constructed/blob_arb'; diff --git a/property_tests/arbitraries/candid/candid_value_and_meta_arb_generator.ts b/test/property/arbitraries/candid/candid_value_and_meta_arb_generator.ts similarity index 100% rename from property_tests/arbitraries/candid/candid_value_and_meta_arb_generator.ts rename to test/property/arbitraries/candid/candid_value_and_meta_arb_generator.ts diff --git a/property_tests/arbitraries/candid/candid_values_arb.ts b/test/property/arbitraries/candid/candid_values_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/candid_values_arb.ts rename to test/property/arbitraries/candid/candid_values_arb.ts diff --git a/test/property/arbitraries/candid/constructed/blob_arb/definition_arb.ts b/test/property/arbitraries/candid/constructed/blob_arb/definition_arb.ts new file mode 100644 index 0000000000..b40af61920 --- /dev/null +++ b/test/property/arbitraries/candid/constructed/blob_arb/definition_arb.ts @@ -0,0 +1,57 @@ +import fc from 'fast-check'; + +import { blob } from '../../../../../../src/lib/experimental'; +import { Context } from '../../../types'; +import { UniqueIdentifierArb } from '../../../unique_identifier_arb'; +import { + BlobCandidDefinition, + WithShapes, + WithShapesArb +} from '../../candid_definition_arb/types'; +import { SimpleCandidDefinitionArb } from '../../simple_type_arbs/definition_arb'; + +export function BlobDefinitionArb( + context: Context +): WithShapesArb { + if (context.api === 'class') { + return _VecNat8DefinitionArb(context); + } + return fc.oneof( + SimpleCandidDefinitionArb(context, 'blob'), + _VecNat8DefinitionArb(context) + ); +} + +export function _VecNat8DefinitionArb( + context: Context +): WithShapesArb { + const api = context.api; + return fc + .tuple(UniqueIdentifierArb('globalNames'), fc.boolean()) + .map(([name, useTypeDeclaration]): WithShapes => { + const typeAnnotation = + api === 'functional' ? 'Vec' : 'Uint8Array'; + const idl = 'IDL.Vec(IDL.Nat8)'; + const typeObject = api === 'functional' ? 'Vec(nat8)' : idl; + const variableAliasDeclarations = useTypeDeclaration + ? [`const ${name} = ${typeObject}`] + : []; + const imports = + api === 'functional' + ? new Set(['Vec', 'nat8']) + : new Set(['IDL']); + return { + definition: { + candidMeta: { + runtimeTypeObject: blob, + typeAnnotation, + typeObject: useTypeDeclaration ? name : typeObject, + variableAliasDeclarations, + imports, + candidType: 'blob' + } + }, + recursiveShapes: {} + }; + }); +} diff --git a/property_tests/arbitraries/candid/constructed/blob_arb/index.ts b/test/property/arbitraries/candid/constructed/blob_arb/index.ts similarity index 100% rename from property_tests/arbitraries/candid/constructed/blob_arb/index.ts rename to test/property/arbitraries/candid/constructed/blob_arb/index.ts diff --git a/property_tests/arbitraries/candid/constructed/blob_arb/values_arb.ts b/test/property/arbitraries/candid/constructed/blob_arb/values_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/constructed/blob_arb/values_arb.ts rename to test/property/arbitraries/candid/constructed/blob_arb/values_arb.ts diff --git a/test/property/arbitraries/candid/constructed/opt_arb/definition_arb.ts b/test/property/arbitraries/candid/constructed/opt_arb/definition_arb.ts new file mode 100644 index 0000000000..59bb3d2348 --- /dev/null +++ b/test/property/arbitraries/candid/constructed/opt_arb/definition_arb.ts @@ -0,0 +1,196 @@ +import fc from 'fast-check'; + +import { CandidType, Opt } from '../../../../../../src/lib/experimental'; +import { Api, Context } from '../../../types'; +import { UniqueIdentifierArb } from '../../../unique_identifier_arb'; +import { + CandidDefinition, + DefinitionConstraints, + OptCandidDefinition, + RecursiveCandidDefinitionMemo, + RecursiveCandidName, + WithShapes, + WithShapesArb +} from '../../candid_definition_arb/types'; + +export function OptDefinitionArb( + context: Context, + candidTypeArbForInnerType: RecursiveCandidDefinitionMemo, + parents: RecursiveCandidName[] +): WithShapesArb { + const api = context.api; + const constraints = context.constraints; + return fc + .tuple( + UniqueIdentifierArb('globalNames'), + possiblyRecursiveArb(context, candidTypeArbForInnerType, parents), + fc.boolean() + ) + .map( + ([ + name, + innerTypeAndShapes, + useTypeDeclarationChance + ]): WithShapes => { + const useTypeDeclaration = + (constraints.forceInline === undefined || + constraints.forceInline === false) && + useTypeDeclarationChance; + const { definition: innerType, recursiveShapes } = + innerTypeAndShapes; + const typeAnnotation = generateCandidTypeAnnotation( + useTypeDeclaration, + name, + innerType, + api + ); + + const typeObject = generateTypeObject( + useTypeDeclaration, + name, + innerType, + api + ); + + const runtimeTypeObject = generateRuntimeTypeObject(innerType); + + const variableAliasDeclarations = + generateVariableAliasDeclarations( + useTypeDeclaration, + name, + innerType, + api + ); + + const imports = generateImports(innerType, api); + + return { + definition: { + candidMeta: { + typeAnnotation, + typeObject, + runtimeTypeObject, + variableAliasDeclarations, + imports, + candidType: 'Opt' + }, + innerType + }, + recursiveShapes + }; + } + ); +} + +function possiblyRecursiveArb( + context: Context, + candidArb: RecursiveCandidDefinitionMemo, + parents: RecursiveCandidName[] +): WithShapesArb { + const depthLevel = context.constraints.depthLevel ?? 0; + const newContext = { + ...context, + constraints: { + ...context.constraints, + depthLevel: depthLevel - 1 + } + }; + return fc.nat(Math.max(parents.length - 1, 0)).chain((randomIndex) => { + if (parents.length === 0 || depthLevel < 1) { + // If there are no recursive parents or we have reached a depth + // level of 0 just do a regular arb inner type + return candidArb(newContext, parents)(depthLevel); + } + return fc.oneof( + { + arbitrary: fc.constant({ + definition: parents[randomIndex], + recursiveShapes: {} + }), + weight: 1 + }, + { + arbitrary: candidArb(newContext, parents)(depthLevel), + weight: 1 + } + ); + }); +} + +function generateImports(innerType: CandidDefinition, api: Api): Set { + const optImports = api === 'functional' ? ['Opt', 'Some', 'None'] : ['IDL']; + return new Set([...innerType.candidMeta.imports, ...optImports]); +} + +function generateVariableAliasDeclarations( + useTypeDeclaration: boolean, + name: string, + innerType: CandidDefinition, + api: Api +): string[] { + if (useTypeDeclaration) { + const type = + api === 'functional' + ? [] + : [ + `type ${name} = ${generateCandidTypeAnnotation( + false, + name, + innerType, + api + )}` + ]; + return [ + ...innerType.candidMeta.variableAliasDeclarations, + `const ${name} = ${generateTypeObject( + false, + name, + innerType, + api + )};`, + ...type + ]; + } + return innerType.candidMeta.variableAliasDeclarations; +} + +function generateCandidTypeAnnotation( + useTypeDeclaration: boolean, + name: string, + innerType: CandidDefinition, + api: Api +): string { + if (useTypeDeclaration === true) { + if (api === 'class') { + return name; + } + return `typeof ${name}.tsType`; + } + + if (api === 'class') { + return `[${innerType.candidMeta.typeAnnotation}] | []`; + } + + return `Opt<${innerType.candidMeta.typeAnnotation}>`; +} + +function generateTypeObject( + useTypeDeclaration: boolean, + name: string, + innerType: CandidDefinition, + api: Api +): string { + if (useTypeDeclaration === true) { + return name; + } + + if (api === 'class') { + return `IDL.Opt(${innerType.candidMeta.typeObject})`; + } + + return `Opt(${innerType.candidMeta.typeObject})`; +} + +function generateRuntimeTypeObject(innerType: CandidDefinition): CandidType { + return Opt(innerType.candidMeta.runtimeTypeObject); +} diff --git a/property_tests/arbitraries/candid/constructed/opt_arb/index.ts b/test/property/arbitraries/candid/constructed/opt_arb/index.ts similarity index 100% rename from property_tests/arbitraries/candid/constructed/opt_arb/index.ts rename to test/property/arbitraries/candid/constructed/opt_arb/index.ts diff --git a/property_tests/arbitraries/candid/constructed/opt_arb/values_arb.ts b/test/property/arbitraries/candid/constructed/opt_arb/values_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/constructed/opt_arb/values_arb.ts rename to test/property/arbitraries/candid/constructed/opt_arb/values_arb.ts diff --git a/test/property/arbitraries/candid/constructed/record_arb/definition_arb.ts b/test/property/arbitraries/candid/constructed/record_arb/definition_arb.ts new file mode 100644 index 0000000000..07c60697b3 --- /dev/null +++ b/test/property/arbitraries/candid/constructed/record_arb/definition_arb.ts @@ -0,0 +1,191 @@ +import fc from 'fast-check'; + +import { CandidType, Record } from '../../../../../../src/lib/experimental'; +import { JsFunctionNameArb } from '../../../js_function_name_arb'; +import { Api, Context } from '../../../types'; +import { UniqueIdentifierArb } from '../../../unique_identifier_arb'; +import { + CandidDefinition, + CandidDefinitionArb, + RecordCandidDefinition, + WithShapes, + WithShapesArb +} from '../../candid_definition_arb/types'; +import { RecursiveShapes } from '../../recursive'; + +type Field = [string, CandidDefinition]; + +type RuntimeRecord = { + [key: string]: CandidType; +}; + +export function RecordDefinitionArb( + context: Context, + fieldCandidDefArb: CandidDefinitionArb +): WithShapesArb { + const api = context.api; + return fc + .tuple( + UniqueIdentifierArb('globalNames'), + fc.uniqueArray(fc.tuple(JsFunctionNameArb, fieldCandidDefArb), { + selector: ([name, _]) => name, + minLength: 1 // Zero length records are giving that same null error 'vec length of zero sized values too large' // I don't know if that's the same error but it seems like it is + // https://github.com/demergent-labs/azle/issues/1453 + }), + fc.boolean() + ) + .map( + ([ + name, + fieldsAndShapes, + useTypeDeclaration + ]): WithShapes => { + const fields = fieldsAndShapes.map( + (field): Field => [field[0], field[1].definition] + ); + const recursiveShapes = fieldsAndShapes.reduce( + (acc, field): RecursiveShapes => { + return { ...acc, ...field[1].recursiveShapes }; + }, + {} + ); + const typeAnnotation = generateCandidTypeAnnotation( + useTypeDeclaration, + name, + fields, + api + ); + + const typeObject = generateTypeObject( + useTypeDeclaration, + name, + fields, + api + ); + + const runtimeTypeObject = generateRuntimeTypeObject(fields); + + const variableAliasDeclarations = + generateVariableAliasDeclarations( + useTypeDeclaration, + name, + fields, + api + ); + + const imports = generateImports(fields, api); + + return { + definition: { + candidMeta: { + typeAnnotation, + typeObject, + runtimeTypeObject, + variableAliasDeclarations, + imports, + candidType: 'Record' + }, + innerTypes: fields + }, + recursiveShapes + }; + } + ); +} + +function generateImports(fields: Field[], api: Api): Set { + const fieldImports = fields.flatMap((field): string[] => [ + ...field[1].candidMeta.imports + ]); + const recordImports = api === 'functional' ? ['Record'] : ['IDL']; + return new Set([...fieldImports, ...recordImports]); +} + +function generateVariableAliasDeclarations( + useTypeDeclaration: boolean, + name: string, + fields: Field[], + api: Api +): string[] { + const fieldVariableAliasDeclarations = fields.flatMap( + (field): string[] => field[1].candidMeta.variableAliasDeclarations + ); + if (useTypeDeclaration) { + const type = + api === 'functional' + ? [] + : [ + `type ${name} = ${generateCandidTypeAnnotation( + false, + name, + fields, + api + )}` + ]; + return [ + ...fieldVariableAliasDeclarations, + `const ${name} = ${generateTypeObject(false, name, fields, api)};`, + ...type + ]; + } + return fieldVariableAliasDeclarations; +} + +function generateCandidTypeAnnotation( + useTypeDeclaration: boolean, + name: string, + fields: Field[], + api: Api +): string { + if (useTypeDeclaration === true) { + if (api === 'class') { + return name; + } + return `typeof ${name}.tsType`; + } + + return `{${fields + .map( + ([fieldName, fieldDefinition]) => + `${fieldName}: ${fieldDefinition.candidMeta.typeAnnotation}` + ) + .join(',')}}`; +} + +function generateTypeObject( + useTypeDeclaration: boolean, + name: string, + fields: Field[], + api: Api +): string { + if (useTypeDeclaration === true) { + return name; + } + + const fieldsAsString = fields + .map( + ([fieldName, fieldDefinition]) => + `${fieldName}: ${fieldDefinition.candidMeta.typeObject}` + ) + .join(','); + + if (api === 'class') { + return `IDL.Record({${fieldsAsString}})`; + } + + return `Record({${fieldsAsString}})`; +} + +function generateRuntimeTypeObject(fields: Field[]): CandidType { + const azleRecordConstructorObj = fields.reduce( + (acc, [fieldName, fieldDefinition]): RuntimeRecord => { + return { + ...acc, + [fieldName]: fieldDefinition.candidMeta.runtimeTypeObject + }; + }, + {} + ); + + return Record(azleRecordConstructorObj); +} diff --git a/property_tests/arbitraries/candid/constructed/record_arb/index.ts b/test/property/arbitraries/candid/constructed/record_arb/index.ts similarity index 100% rename from property_tests/arbitraries/candid/constructed/record_arb/index.ts rename to test/property/arbitraries/candid/constructed/record_arb/index.ts diff --git a/property_tests/arbitraries/candid/constructed/record_arb/values_arb.ts b/test/property/arbitraries/candid/constructed/record_arb/values_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/constructed/record_arb/values_arb.ts rename to test/property/arbitraries/candid/constructed/record_arb/values_arb.ts diff --git a/test/property/arbitraries/candid/constructed/tuple_arb/definition_arb.ts b/test/property/arbitraries/candid/constructed/tuple_arb/definition_arb.ts new file mode 100644 index 0000000000..97bd1ebd24 --- /dev/null +++ b/test/property/arbitraries/candid/constructed/tuple_arb/definition_arb.ts @@ -0,0 +1,175 @@ +import fc from 'fast-check'; + +import { CandidType, Tuple } from '../../../../../../src/lib/experimental'; +import { Api, Context } from '../../../types'; +import { UniqueIdentifierArb } from '../../../unique_identifier_arb'; +import { + CandidDefinition, + TupleCandidDefinition, + WithShapes, + WithShapesArb +} from '../../candid_definition_arb/types'; +import { RecursiveShapes } from '../../recursive'; + +export function TupleDefinitionArb( + context: Context, + candidTypeArbForFields: WithShapesArb +): WithShapesArb { + const api = context.api; + return fc + .tuple( + UniqueIdentifierArb('globalNames'), + fc.array(candidTypeArbForFields, { minLength: 1 }), + // Although no minLength is technically required (according to the + // spec), there are some issues with vecs of empty objects that are causing some problems + // https://github.com/demergent-labs/azle/issues/1453 + fc.boolean() + ) + .map( + ([ + name, + fieldsAndShapes, + useTypeDeclaration + ]): WithShapes => { + const fields = fieldsAndShapes.map( + (field): CandidDefinition => field.definition + ); + const recursiveShapes = fieldsAndShapes.reduce( + (acc, field): RecursiveShapes => { + return { ...acc, ...field.recursiveShapes }; + }, + {} + ); + const typeAnnotation = generateCandidTypeAnnotation( + useTypeDeclaration, + name, + fields, + api + ); + + const typeObject = generateTypeObject( + useTypeDeclaration, + name, + fields, + api + ); + + const runtimeTypeObject = generateRuntimeTypeObject(fields); + + const variableAliasDeclarations = + generateVariableAliasDeclarations( + useTypeDeclaration, + name, + fields, + api + ); + + const imports = generateImports(fields, api); + + return { + definition: { + candidMeta: { + typeAnnotation, + typeObject, + runtimeTypeObject, + variableAliasDeclarations, + imports, + candidType: 'Tuple' + }, + innerTypes: fields + }, + recursiveShapes + }; + } + ); +} + +function generateImports(fields: CandidDefinition[], api: Api): Set { + const fieldImports = fields.flatMap((field) => [ + ...field.candidMeta.imports + ]); + const tupleImports = api === 'functional' ? ['Tuple'] : ['IDL']; + return new Set([...fieldImports, ...tupleImports]); +} +function generateVariableAliasDeclarations( + useTypeDeclaration: boolean, + name: string, + fields: CandidDefinition[], + api: Api +): string[] { + const fieldVariableAliasDeclarations = fields.flatMap( + (field) => field.candidMeta.variableAliasDeclarations + ); + if (useTypeDeclaration) { + const type = + api === 'functional' + ? [] + : [ + `type ${name} = ${generateCandidTypeAnnotation( + false, + name, + fields, + api + )}` + ]; + return [ + ...fieldVariableAliasDeclarations, + `const ${name} = ${generateTypeObject(false, name, fields, api)};`, + ...type + ]; + } + return fieldVariableAliasDeclarations; +} + +function generateCandidTypeAnnotation( + useTypeDeclaration: boolean, + name: string, + fields: CandidDefinition[], + api: Api +): string { + if (useTypeDeclaration === true) { + if (api === 'class') { + return name; + } + return `typeof ${name}.tsType`; + } + + const innerTypesAsString = fields + .map((field) => field.candidMeta.typeAnnotation) + .join(', '); + + if (api === 'class') { + return `[${innerTypesAsString}]`; + } + + return `Tuple<[${innerTypesAsString}]>`; +} + +function generateTypeObject( + useTypeDeclaration: boolean, + name: string, + fields: CandidDefinition[], + api: Api +): string { + if (useTypeDeclaration === true) { + return name; + } + + const innerTypesAsString = fields + .map((field) => field.candidMeta.typeObject) + .join(', '); + + if (api === 'class') { + return `IDL.Tuple(${innerTypesAsString})`; + } + + return `Tuple(${innerTypesAsString})`; +} + +function generateRuntimeTypeObject(fields: CandidDefinition[]): CandidType { + const innerTypes = fields.map( + (field) => field.candidMeta.runtimeTypeObject + ); + + return Tuple(...innerTypes); +} diff --git a/property_tests/arbitraries/candid/constructed/tuple_arb/index.ts b/test/property/arbitraries/candid/constructed/tuple_arb/index.ts similarity index 100% rename from property_tests/arbitraries/candid/constructed/tuple_arb/index.ts rename to test/property/arbitraries/candid/constructed/tuple_arb/index.ts diff --git a/property_tests/arbitraries/candid/constructed/tuple_arb/values_arbs.ts b/test/property/arbitraries/candid/constructed/tuple_arb/values_arbs.ts similarity index 100% rename from property_tests/arbitraries/candid/constructed/tuple_arb/values_arbs.ts rename to test/property/arbitraries/candid/constructed/tuple_arb/values_arbs.ts diff --git a/property_tests/arbitraries/candid/constructed/variant_arb/definition_arbs.ts b/test/property/arbitraries/candid/constructed/variant_arb/definition_arbs.ts similarity index 99% rename from property_tests/arbitraries/candid/constructed/variant_arb/definition_arbs.ts rename to test/property/arbitraries/candid/constructed/variant_arb/definition_arbs.ts index c102c46236..c7061c4342 100644 --- a/property_tests/arbitraries/candid/constructed/variant_arb/definition_arbs.ts +++ b/test/property/arbitraries/candid/constructed/variant_arb/definition_arbs.ts @@ -1,6 +1,6 @@ import fc from 'fast-check'; -import { CandidType, Variant } from '../../../../../src/lib/experimental'; +import { CandidType, Variant } from '../../../../../../src/lib/experimental'; import { JsFunctionNameArb } from '../../../js_function_name_arb'; import { Api, Context } from '../../../types'; import { UniqueIdentifierArb } from '../../../unique_identifier_arb'; diff --git a/property_tests/arbitraries/candid/constructed/variant_arb/index.ts b/test/property/arbitraries/candid/constructed/variant_arb/index.ts similarity index 100% rename from property_tests/arbitraries/candid/constructed/variant_arb/index.ts rename to test/property/arbitraries/candid/constructed/variant_arb/index.ts diff --git a/property_tests/arbitraries/candid/constructed/variant_arb/values_arb.ts b/test/property/arbitraries/candid/constructed/variant_arb/values_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/constructed/variant_arb/values_arb.ts rename to test/property/arbitraries/candid/constructed/variant_arb/values_arb.ts diff --git a/test/property/arbitraries/candid/constructed/vec_arb/definition_arb.ts b/test/property/arbitraries/candid/constructed/vec_arb/definition_arb.ts new file mode 100644 index 0000000000..a736eb0ed9 --- /dev/null +++ b/test/property/arbitraries/candid/constructed/vec_arb/definition_arb.ts @@ -0,0 +1,227 @@ +import fc from 'fast-check'; + +import { CandidType, Vec } from '../../../../../../src/lib/experimental'; +import { Api, Context } from '../../../types'; +import { UniqueIdentifierArb } from '../../../unique_identifier_arb'; +import { + CandidDefinition, + DefinitionConstraints, + RecursiveCandidDefinitionMemo, + RecursiveCandidName, + VecCandidDefinition, + WithShapes, + WithShapesArb +} from '../../candid_definition_arb/types'; + +export function VecDefinitionArb( + context: Context, + candidTypeArb: RecursiveCandidDefinitionMemo, + parents: RecursiveCandidName[] +): WithShapesArb { + const api = context.api; + return fc + .tuple( + UniqueIdentifierArb('globalNames'), + possiblyRecursiveArb(context, candidTypeArb, parents), + fc.boolean() + ) + .map( + ([ + name, + innerTypeAndShapes, + useTypeDeclarationChance + ]): WithShapes => { + const useTypeDeclaration = + (context.constraints.forceInline === undefined || + context.constraints.forceInline === false) && + useTypeDeclarationChance; + const { definition: innerType, recursiveShapes } = + innerTypeAndShapes; + const typeAnnotation = generateCandidTypeAnnotation( + useTypeDeclaration, + name, + innerType, + api + ); + + const typeObject = generateTypeObject( + useTypeDeclaration, + name, + innerType, + api + ); + + const runtimeTypeObject = generateRuntimeTypeObject(innerType); + + const variableAliasDeclarations = + generateVariableAliasDeclarations( + useTypeDeclaration, + name, + innerType, + api + ); + + const imports = generateImports(innerType, api); + + return { + definition: { + candidMeta: { + typeAnnotation, + typeObject, + runtimeTypeObject, + variableAliasDeclarations, + imports, + candidType: 'Vec' + }, + innerType: innerType + }, + recursiveShapes + }; + } + ); +} + +function possiblyRecursiveArb( + context: Context, + candidArb: RecursiveCandidDefinitionMemo, + parents: RecursiveCandidName[] +): WithShapesArb { + const depthLevel = context.constraints.depthLevel ?? 0; + const newContext = { + ...context, + constraints: { ...context.constraints, depthLevel: depthLevel - 1 } + }; + return fc.nat(Math.max(parents.length - 1, 0)).chain((randomIndex) => { + if (parents.length === 0) { + // If there are no recursive parents or this is the first variant field just do a regular arb field + return candidArb(newContext, parents)(depthLevel); + } + return fc.oneof( + { + arbitrary: fc.constant({ + definition: parents[randomIndex], + recursiveShapes: {} + }), + weight: 1 + }, + { + arbitrary: candidArb(newContext, parents)(depthLevel), + weight: 1 + } + ); + }); +} + +function generateImports(innerType: CandidDefinition, api: Api): Set { + const vecImports = api === 'functional' ? ['Vec'] : ['IDL']; + return new Set([...innerType.candidMeta.imports, ...vecImports]); +} + +function generateVariableAliasDeclarations( + useTypeDeclaration: boolean, + name: string, + innerType: CandidDefinition, + api: Api +): string[] { + if (useTypeDeclaration) { + const type = + api === 'functional' + ? [] + : [ + `type ${name} = ${generateCandidTypeAnnotation( + false, + name, + innerType, + api + )}` + ]; + return [ + ...innerType.candidMeta.variableAliasDeclarations, + `const ${name} = ${generateTypeObject( + false, + name, + innerType, + api + )};`, + ...type + ]; + } + return innerType.candidMeta.variableAliasDeclarations; +} + +function generateCandidTypeAnnotation( + useTypeDeclaration: boolean, + name: string, + innerType: CandidDefinition, + api: Api +): string { + if (useTypeDeclaration === true) { + if (api === 'class') { + return name; + } + return `typeof ${name}.tsType`; + } + + if (api === 'class') { + return toClassTypeAnnotation(innerType); + } + + return `Vec<${innerType.candidMeta.typeAnnotation}>`; +} + +function generateTypeObject( + useTypeDeclaration: boolean, + name: string, + innerType: CandidDefinition, + api: Api +): string { + if (useTypeDeclaration === true) { + return name; + } + + if (api === 'class') { + return `IDL.Vec(${innerType.candidMeta.typeObject})`; + } + + return `Vec(${innerType.candidMeta.typeObject})`; +} + +function generateRuntimeTypeObject(innerType: CandidDefinition): CandidType { + return Vec(innerType.candidMeta.runtimeTypeObject); +} + +function toClassTypeAnnotation(innerType: CandidDefinition): string { + if (innerType.candidMeta.candidType === 'int64') { + return `BigInt64Array`; + } + + if (innerType.candidMeta.candidType === 'int32') { + return `Int32Array`; + } + + if (innerType.candidMeta.candidType === 'int16') { + return `Int16Array`; + } + + if (innerType.candidMeta.candidType === 'int8') { + return `Int8Array`; + } + + if (innerType.candidMeta.candidType === 'nat64') { + return `BigUint64Array`; + } + + if (innerType.candidMeta.candidType === 'nat32') { + return `Uint32Array`; + } + + if (innerType.candidMeta.candidType === 'nat16') { + return `Uint16Array`; + } + + if (innerType.candidMeta.candidType === 'nat8') { + return `Uint8Array`; + } + + return `${innerType.candidMeta.typeAnnotation}[]`; +} diff --git a/property_tests/arbitraries/candid/constructed/vec_arb/index.ts b/test/property/arbitraries/candid/constructed/vec_arb/index.ts similarity index 100% rename from property_tests/arbitraries/candid/constructed/vec_arb/index.ts rename to test/property/arbitraries/candid/constructed/vec_arb/index.ts diff --git a/property_tests/arbitraries/candid/constructed/vec_arb/values_arb.ts b/test/property/arbitraries/candid/constructed/vec_arb/values_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/constructed/vec_arb/values_arb.ts rename to test/property/arbitraries/candid/constructed/vec_arb/values_arb.ts diff --git a/property_tests/arbitraries/candid/corresponding_js_type.ts b/test/property/arbitraries/candid/corresponding_js_type.ts similarity index 100% rename from property_tests/arbitraries/candid/corresponding_js_type.ts rename to test/property/arbitraries/candid/corresponding_js_type.ts diff --git a/property_tests/arbitraries/candid/primitive/bool.ts b/test/property/arbitraries/candid/primitive/bool.ts similarity index 100% rename from property_tests/arbitraries/candid/primitive/bool.ts rename to test/property/arbitraries/candid/primitive/bool.ts diff --git a/property_tests/arbitraries/candid/primitive/floats/float32_arb.ts b/test/property/arbitraries/candid/primitive/floats/float32_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/primitive/floats/float32_arb.ts rename to test/property/arbitraries/candid/primitive/floats/float32_arb.ts diff --git a/property_tests/arbitraries/candid/primitive/floats/float64_arb.ts b/test/property/arbitraries/candid/primitive/floats/float64_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/primitive/floats/float64_arb.ts rename to test/property/arbitraries/candid/primitive/floats/float64_arb.ts diff --git a/property_tests/arbitraries/candid/primitive/ints/index.ts b/test/property/arbitraries/candid/primitive/ints/index.ts similarity index 100% rename from property_tests/arbitraries/candid/primitive/ints/index.ts rename to test/property/arbitraries/candid/primitive/ints/index.ts diff --git a/property_tests/arbitraries/candid/primitive/ints/int16_arb.ts b/test/property/arbitraries/candid/primitive/ints/int16_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/primitive/ints/int16_arb.ts rename to test/property/arbitraries/candid/primitive/ints/int16_arb.ts diff --git a/property_tests/arbitraries/candid/primitive/ints/int32_arb.ts b/test/property/arbitraries/candid/primitive/ints/int32_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/primitive/ints/int32_arb.ts rename to test/property/arbitraries/candid/primitive/ints/int32_arb.ts diff --git a/property_tests/arbitraries/candid/primitive/ints/int64_arb.ts b/test/property/arbitraries/candid/primitive/ints/int64_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/primitive/ints/int64_arb.ts rename to test/property/arbitraries/candid/primitive/ints/int64_arb.ts diff --git a/property_tests/arbitraries/candid/primitive/ints/int8_arb.ts b/test/property/arbitraries/candid/primitive/ints/int8_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/primitive/ints/int8_arb.ts rename to test/property/arbitraries/candid/primitive/ints/int8_arb.ts diff --git a/property_tests/arbitraries/candid/primitive/ints/int_arb.ts b/test/property/arbitraries/candid/primitive/ints/int_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/primitive/ints/int_arb.ts rename to test/property/arbitraries/candid/primitive/ints/int_arb.ts diff --git a/property_tests/arbitraries/candid/primitive/nats/index.ts b/test/property/arbitraries/candid/primitive/nats/index.ts similarity index 100% rename from property_tests/arbitraries/candid/primitive/nats/index.ts rename to test/property/arbitraries/candid/primitive/nats/index.ts diff --git a/property_tests/arbitraries/candid/primitive/nats/nat16_arb.ts b/test/property/arbitraries/candid/primitive/nats/nat16_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/primitive/nats/nat16_arb.ts rename to test/property/arbitraries/candid/primitive/nats/nat16_arb.ts diff --git a/property_tests/arbitraries/candid/primitive/nats/nat32_arb.ts b/test/property/arbitraries/candid/primitive/nats/nat32_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/primitive/nats/nat32_arb.ts rename to test/property/arbitraries/candid/primitive/nats/nat32_arb.ts diff --git a/property_tests/arbitraries/candid/primitive/nats/nat64_arb.ts b/test/property/arbitraries/candid/primitive/nats/nat64_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/primitive/nats/nat64_arb.ts rename to test/property/arbitraries/candid/primitive/nats/nat64_arb.ts diff --git a/property_tests/arbitraries/candid/primitive/nats/nat8_arb.ts b/test/property/arbitraries/candid/primitive/nats/nat8_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/primitive/nats/nat8_arb.ts rename to test/property/arbitraries/candid/primitive/nats/nat8_arb.ts diff --git a/property_tests/arbitraries/candid/primitive/nats/nat_arb.ts b/test/property/arbitraries/candid/primitive/nats/nat_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/primitive/nats/nat_arb.ts rename to test/property/arbitraries/candid/primitive/nats/nat_arb.ts diff --git a/property_tests/arbitraries/candid/primitive/null.ts b/test/property/arbitraries/candid/primitive/null.ts similarity index 100% rename from property_tests/arbitraries/candid/primitive/null.ts rename to test/property/arbitraries/candid/primitive/null.ts diff --git a/property_tests/arbitraries/candid/primitive/text.ts b/test/property/arbitraries/candid/primitive/text.ts similarity index 100% rename from property_tests/arbitraries/candid/primitive/text.ts rename to test/property/arbitraries/candid/primitive/text.ts diff --git a/property_tests/arbitraries/candid/primitive/void.ts b/test/property/arbitraries/candid/primitive/void.ts similarity index 100% rename from property_tests/arbitraries/candid/primitive/void.ts rename to test/property/arbitraries/candid/primitive/void.ts diff --git a/test/property/arbitraries/candid/recursive/definition_arb.ts b/test/property/arbitraries/candid/recursive/definition_arb.ts new file mode 100644 index 0000000000..26121c0678 --- /dev/null +++ b/test/property/arbitraries/candid/recursive/definition_arb.ts @@ -0,0 +1,127 @@ +import fc from 'fast-check'; + +import { CandidType, Recursive } from '../../../../../src/lib/experimental'; +import { Api, Context } from '../../types'; +import { UniqueIdentifierArb } from '../../unique_identifier_arb'; +import { + CandidDefinition, + DefinitionConstraints, + RecursiveCandidDefinition, + RecursiveCandidDefinitionMemo, + RecursiveCandidName, + WithShapes, + WithShapesArb +} from '../candid_definition_arb/types'; + +export function RecursiveDefinitionArb( + context: Context, + candidTypeArbForInnerType: RecursiveCandidDefinitionMemo, + parents: RecursiveCandidName[] +): WithShapesArb { + const api = context.api; + return UniqueIdentifierArb('globalNames') + .chain((name): fc.Arbitrary => { + const recCanDef: RecursiveCandidName = { + candidMeta: { + candidType: 'Recursive', + typeObject: name, + typeAnnotation: + api === 'functional' ? `typeof ${name}.tsType` : name, + imports: new Set(), + variableAliasDeclarations: [], + runtimeTypeObject: Recursive(() => undefined) + }, + name + }; + return fc.constant(recCanDef); + }) + .chain((innerRecDef) => { + return fc.tuple( + candidTypeArbForInnerType( + { + ...context, + constraints: { + recursiveWeights: true, // This should be true so that the below weights will be respected all the way down. Until those issues are resolved we can't have blobs, tuples or vecs anywhere in any recursive shapes + weights: { + blob: 0, + tuple: 0, + vec: 0 + // TODO there are a lot of bugs with recursion so we are disabling the problematic types until the issues are resolved + // https://github.com/demergent-labs/azle/issues/1518 + // https://github.com/demergent-labs/azle/issues/1513 + // https://github.com/demergent-labs/azle/issues/1525 + }, + forceInline: true + } + }, + [innerRecDef, ...parents] + )(context.constraints.depthLevel ?? 0), + fc.constant(innerRecDef) + ); + }) + .map( + ([ + { definition: innerType }, + recCanDef + ]): WithShapes => { + const { + name, + candidMeta: { typeObject, typeAnnotation } + } = recCanDef; + const variableAliasDeclarations = + generateVariableAliasDeclarations(name, innerType, api); + + const imports = generateImports(innerType, api); + + const runtimeTypeObject = generateRuntimeTypeObject(innerType); + + const recursiveShape: RecursiveCandidDefinition = { + candidMeta: { + typeObject, + typeAnnotation, + variableAliasDeclarations, + imports, + candidType: 'Recursive', + runtimeTypeObject + }, + name, + innerType + }; + + return { + definition: recursiveShape, + recursiveShapes: { + [name]: recursiveShape + } + }; + } + ); +} + +function generateVariableAliasDeclarations( + name: string, + innerType: CandidDefinition, + api: Api +): string[] { + if (api === 'class') { + return [ + ...innerType.candidMeta.variableAliasDeclarations, + `const ${name} = IDL.Rec()`, + `${name}.fill(${innerType.candidMeta.typeObject})`, + `type ${name} = ${innerType.candidMeta.typeAnnotation}` + ]; + } + return [ + `const ${name} = Recursive(() => ${innerType.candidMeta.typeObject});`, + ...innerType.candidMeta.variableAliasDeclarations + ]; +} + +function generateImports(innerType: CandidDefinition, api: Api): Set { + const recursiveImports = api === 'functional' ? 'Recursive' : 'IDL'; + return new Set([...innerType.candidMeta.imports, recursiveImports]); +} + +function generateRuntimeTypeObject(innerType: CandidDefinition): CandidType { + return Recursive(() => innerType.candidMeta.runtimeTypeObject); +} diff --git a/property_tests/arbitraries/candid/recursive/index.ts b/test/property/arbitraries/candid/recursive/index.ts similarity index 100% rename from property_tests/arbitraries/candid/recursive/index.ts rename to test/property/arbitraries/candid/recursive/index.ts diff --git a/property_tests/arbitraries/candid/recursive/values_arb.ts b/test/property/arbitraries/candid/recursive/values_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/recursive/values_arb.ts rename to test/property/arbitraries/candid/recursive/values_arb.ts diff --git a/test/property/arbitraries/candid/reference/func_arb/definition_arb.ts b/test/property/arbitraries/candid/reference/func_arb/definition_arb.ts new file mode 100644 index 0000000000..eff4465cc3 --- /dev/null +++ b/test/property/arbitraries/candid/reference/func_arb/definition_arb.ts @@ -0,0 +1,216 @@ +import fc from 'fast-check'; + +import { CandidType } from '../../../../../../src/lib/experimental/candid/candid_type'; +import { Func } from '../../../../../../src/lib/experimental/candid/types/reference/func'; +import { Api, Context } from '../../../types'; +import { UniqueIdentifierArb } from '../../../unique_identifier_arb'; +import { + CandidDefinition, + FuncCandidDefinition, + WithShapes, + WithShapesArb +} from '../../candid_definition_arb/types'; +import { VoidDefinitionArb } from '../../primitive/void'; + +type Mode = 'query' | 'update' | 'oneway'; + +export function FuncDefinitionArb( + context: Context, + candidDefArb: WithShapesArb +): WithShapesArb { + return fc + .constantFrom('query', 'update', 'oneway') + .chain((mode) => { + const returnType = + mode === 'oneway' ? VoidDefinitionArb(context) : candidDefArb; + + return fc.tuple( + UniqueIdentifierArb('globalNames'), + fc.array(candidDefArb), + returnType, + fc.constant(mode), + fc.boolean() + ); + }) + .map( + ([ + name, + paramsAndShapes, + returnFuncAndShapes, + mode, + useTypeDeclaration + ]): WithShapes => { + const api = context.api; + const params = paramsAndShapes.map( + (paramAndShapes) => paramAndShapes.definition + ); + const returnFunc = returnFuncAndShapes.definition; + const recursiveShapes = paramsAndShapes.reduce( + (acc, paramAndShapes) => { + return { ...acc, ...paramAndShapes.recursiveShapes }; + }, + returnFuncAndShapes.recursiveShapes + ); + const typeAnnotation = generateCandidTypeAnnotation( + useTypeDeclaration, + name, + api + ); + + const typeObject = generateTypeObject( + useTypeDeclaration, + name, + params, + returnFunc, + mode, + api + ); + + const runtimeTypeObject = generateRuntimeTypeObject( + params, + returnFunc, + mode + ); + + const variableAliasDeclarations = + generateVariableAliasDeclarations( + useTypeDeclaration, + name, + params, + returnFunc, + mode, + api + ); + + const imports = generateImports(params, returnFunc, api); + + return { + definition: { + candidMeta: { + typeAnnotation, + typeObject, + runtimeTypeObject, + variableAliasDeclarations, + imports, + candidType: 'Func' + }, + paramCandidMeta: params, + returnCandidMeta: returnFunc + }, + recursiveShapes + }; + } + ); +} + +function generateImports( + params: CandidDefinition[], + returnFunc: CandidDefinition, + api: Api +): Set { + const funcImports = api === 'functional' ? ['Func'] : ['IDL']; + + return new Set([ + ...params.flatMap((param) => [...param.candidMeta.imports]), + ...returnFunc.candidMeta.imports, + ...funcImports, + 'Principal' + ]); +} + +function generateVariableAliasDeclarations( + useTypeDeclaration: boolean, + name: string, + paramCandids: CandidDefinition[], + returnCandid: CandidDefinition, + mode: Mode, + api: Api +): string[] { + const paramTypeDeclarations = paramCandids.flatMap( + (param) => param.candidMeta.variableAliasDeclarations + ); + const returnTypeDeclaration = + returnCandid.candidMeta.variableAliasDeclarations; + + if (useTypeDeclaration === true) { + const type = + api === 'functional' + ? [] + : [ + `type ${name} = ${generateCandidTypeAnnotation( + false, + name, + api + )}` + ]; + return [ + ...paramTypeDeclarations, + ...returnTypeDeclaration, + `const ${name} = ${generateTypeObject( + false, + name, + paramCandids, + returnCandid, + mode, + api + )}`, + ...type + ]; + } + + return [...paramTypeDeclarations, ...returnTypeDeclaration]; +} + +function generateCandidTypeAnnotation( + useTypeDeclaration: boolean, + name: string, + api: Api +): string { + if (useTypeDeclaration === true) { + if (api === 'class') { + return name; + } + return `typeof ${name}.tsType`; + } + + return `[Principal, string]`; +} + +function generateTypeObject( + useTypeDeclaration: boolean, + name: string, + paramCandids: CandidDefinition[], + returnCandid: CandidDefinition, + mode: Mode, + api: Api +): string { + if (useTypeDeclaration === true) { + return name; + } + + const params = paramCandids + .map((param) => param.candidMeta.typeObject) + .join(', '); + + const returnType = returnCandid.candidMeta.typeObject; + + if (api === 'class') { + return `IDL.Func([${params}], [${returnType}], ${ + mode === 'update' ? '' : `['${mode}']` + })`; + } + + return `Func([${params}], ${returnType}, '${mode}')`; +} + +function generateRuntimeTypeObject( + paramCandids: CandidDefinition[], + returnCandid: CandidDefinition, + mode: Mode +): CandidType { + const params = paramCandids.map( + (param) => param.candidMeta.runtimeTypeObject + ); + + return Func(params, returnCandid.candidMeta.runtimeTypeObject, mode); +} diff --git a/property_tests/arbitraries/candid/reference/func_arb/index.ts b/test/property/arbitraries/candid/reference/func_arb/index.ts similarity index 100% rename from property_tests/arbitraries/candid/reference/func_arb/index.ts rename to test/property/arbitraries/candid/reference/func_arb/index.ts diff --git a/property_tests/arbitraries/candid/reference/func_arb/values_arb.ts b/test/property/arbitraries/candid/reference/func_arb/values_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/reference/func_arb/values_arb.ts rename to test/property/arbitraries/candid/reference/func_arb/values_arb.ts diff --git a/property_tests/arbitraries/candid/reference/principal_arb.ts b/test/property/arbitraries/candid/reference/principal_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/reference/principal_arb.ts rename to test/property/arbitraries/candid/reference/principal_arb.ts diff --git a/test/property/arbitraries/candid/reference/service_arb/definition_arb.ts b/test/property/arbitraries/candid/reference/service_arb/definition_arb.ts new file mode 100644 index 0000000000..d5e4ba838b --- /dev/null +++ b/test/property/arbitraries/candid/reference/service_arb/definition_arb.ts @@ -0,0 +1,183 @@ +import fc from 'fast-check'; + +import { Canister } from '../../../../../../src/lib/experimental/candid/types/reference/service'; +import { Api, Context } from '../../../types'; +import { UniqueIdentifierArb } from '../../../unique_identifier_arb'; +import { + CandidDefinition, + ServiceCandidDefinition, + WithShapes, + WithShapesArb +} from '../../candid_definition_arb/types'; +import { + ServiceMethodArb, + ServiceMethodDefinition +} from './service_method_arb'; + +export function ServiceDefinitionArb( + context: Context, + fieldCandidDefArb: WithShapesArb +): WithShapesArb { + const api = context.api; + return fc + .tuple( + UniqueIdentifierArb('globalNames'), + fc.uniqueArray(ServiceMethodArb(context, fieldCandidDefArb), { + selector: (entry) => entry.definition.name + }), + fc.constant(true) // TODO This needs to be true, I don't know why we set up to be an arbitrary boolean if it has to be true + ) + .map( + ([ + name, + fieldsAndShapes, + useTypeDeclaration + ]): WithShapes => { + const fields = fieldsAndShapes.map( + (fieldAndShapes) => fieldAndShapes.definition + ); + const recursiveShapes = fieldsAndShapes.reduce( + (acc, fieldAndShapes) => { + return { ...acc, ...fieldAndShapes.recursiveShapes }; + }, + {} + ); + + const typeAnnotation = generateCandidTypeAnnotation( + useTypeDeclaration, + name, + api + ); + + const typeObject = generateTypeObject( + useTypeDeclaration, + name, + fields, + api + ); + + const runtimeTypeObject = generateRuntimeTypeObject(fields); + + const variableAliasDeclarations = + generateVariableAliasDeclarations( + useTypeDeclaration, + name, + fields, + api + ); + + const imports = generateImports(fields, api); + + return { + definition: { + name, + candidMeta: { + typeAnnotation, + typeObject, + runtimeTypeObject, + variableAliasDeclarations, + imports, + candidType: 'Service' + }, + funcs: fields + }, + recursiveShapes + }; + } + ); +} + +function generateImports( + serviceMethods: ServiceMethodDefinition[], + api: Api +): Set { + const serviceImports = api === 'functional' ? ['Canister'] : ['IDL']; + return new Set([ + ...serviceMethods.flatMap((serviceMethod) => + Array.from(serviceMethod.imports) + ), + 'Principal', + 'query', + ...serviceImports + ]); +} + +function generateVariableAliasDeclarations( + useTypeDeclaration: boolean, + name: string, + serviceMethods: ServiceMethodDefinition[], + api: Api +): string[] { + const serviceMethodTypeAliasDecls = serviceMethods.flatMap( + (serviceMethod) => serviceMethod.variableAliasDeclarations + ); + if (useTypeDeclaration) { + const type = api === 'functional' ? [] : [`type ${name} = Principal`]; + return [ + ...serviceMethodTypeAliasDecls, + `const ${name} = ${generateTypeObject( + false, + name, + serviceMethods, + api + )};`, + ...type + ]; + } + return serviceMethodTypeAliasDecls; +} + +function generateCandidTypeAnnotation( + useTypeDeclaration: boolean, + name: string, + api: Api +): string { + if (useTypeDeclaration === true) { + if (api === 'class') { + return name; + } + return `typeof ${name}.tsType`; + } + + return '[Principal]'; +} + +function generateTypeObject( + useTypeDeclaration: boolean, + name: string, + serviceMethods: ServiceMethodDefinition[], + api: Api +): string { + if (useTypeDeclaration === true) { + return name; + } + + if (api === 'class') { + const methods = serviceMethods + .map((serviceMethod) => serviceMethod.idl) + .filter((typeDeclaration) => typeDeclaration) + .join(',\n'); + + return `IDL.Service({${methods}})`; + } + + const methods = serviceMethods + .map((serviceMethod) => serviceMethod.src) + .filter((typeDeclaration) => typeDeclaration) + .join(',\n'); + + return `Canister({${methods}})`; +} + +// TODO make this function's return type explicit https://github.com/demergent-labs/azle/issues/1860 +// eslint-disable-next-line @typescript-eslint/explicit-function-return-type +function generateRuntimeTypeObject(serviceMethods: ServiceMethodDefinition[]) { + const methods = serviceMethods.reduce((acc, serviceMethod) => { + return { + ...acc, + [serviceMethod.name]: serviceMethod.runtimeTypeObject + }; + }, {}); + + return Canister(methods); +} diff --git a/property_tests/arbitraries/candid/reference/service_arb/index.ts b/test/property/arbitraries/candid/reference/service_arb/index.ts similarity index 100% rename from property_tests/arbitraries/candid/reference/service_arb/index.ts rename to test/property/arbitraries/candid/reference/service_arb/index.ts diff --git a/property_tests/arbitraries/candid/reference/service_arb/service_method_arb.ts b/test/property/arbitraries/candid/reference/service_arb/service_method_arb.ts similarity index 94% rename from property_tests/arbitraries/candid/reference/service_arb/service_method_arb.ts rename to test/property/arbitraries/candid/reference/service_arb/service_method_arb.ts index c3a86f77ef..7b8d35c42a 100644 --- a/property_tests/arbitraries/candid/reference/service_arb/service_method_arb.ts +++ b/test/property/arbitraries/candid/reference/service_arb/service_method_arb.ts @@ -3,8 +3,8 @@ import fc from 'fast-check'; import { query, update -} from '../../../../../src/lib/experimental/canister_methods/methods/'; -import { CanisterMethodInfo } from '../../../../../src/lib/experimental/canister_methods/types/canister_method_info'; +} from '../../../../../../src/lib/experimental/canister_methods/methods/'; +import { CanisterMethodInfo } from '../../../../../../src/lib/experimental/canister_methods/types/canister_method_info'; import { JsFunctionNameArb } from '../../../js_function_name_arb'; import { Context } from '../../../types'; import { diff --git a/property_tests/arbitraries/candid/reference/service_arb/values_arb.ts b/test/property/arbitraries/candid/reference/service_arb/values_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/reference/service_arb/values_arb.ts rename to test/property/arbitraries/candid/reference/service_arb/values_arb.ts diff --git a/property_tests/arbitraries/candid/simple_type_arbs/candid_type_to_azle_candid_type.ts b/test/property/arbitraries/candid/simple_type_arbs/candid_type_to_azle_candid_type.ts similarity index 97% rename from property_tests/arbitraries/candid/simple_type_arbs/candid_type_to_azle_candid_type.ts rename to test/property/arbitraries/candid/simple_type_arbs/candid_type_to_azle_candid_type.ts index fa94f88caa..3e421b6cb3 100644 --- a/property_tests/arbitraries/candid/simple_type_arbs/candid_type_to_azle_candid_type.ts +++ b/test/property/arbitraries/candid/simple_type_arbs/candid_type_to_azle_candid_type.ts @@ -18,7 +18,7 @@ import { Principal, text, Void -} from '../../../../src/lib/experimental'; +} from '../../../../../src/lib/experimental'; import { SimpleCandidType } from '../candid_type'; export function candidTypeToRuntimeTypeObject( diff --git a/property_tests/arbitraries/candid/simple_type_arbs/definition_arb.ts b/test/property/arbitraries/candid/simple_type_arbs/definition_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/simple_type_arbs/definition_arb.ts rename to test/property/arbitraries/candid/simple_type_arbs/definition_arb.ts diff --git a/property_tests/arbitraries/candid/simple_type_arbs/values_arb.ts b/test/property/arbitraries/candid/simple_type_arbs/values_arb.ts similarity index 100% rename from property_tests/arbitraries/candid/simple_type_arbs/values_arb.ts rename to test/property/arbitraries/candid/simple_type_arbs/values_arb.ts diff --git a/property_tests/arbitraries/candid/to_src_literal/bigint.ts b/test/property/arbitraries/candid/to_src_literal/bigint.ts similarity index 100% rename from property_tests/arbitraries/candid/to_src_literal/bigint.ts rename to test/property/arbitraries/candid/to_src_literal/bigint.ts diff --git a/property_tests/arbitraries/candid/to_src_literal/blob.ts b/test/property/arbitraries/candid/to_src_literal/blob.ts similarity index 100% rename from property_tests/arbitraries/candid/to_src_literal/blob.ts rename to test/property/arbitraries/candid/to_src_literal/blob.ts diff --git a/property_tests/arbitraries/candid/to_src_literal/boolean.ts b/test/property/arbitraries/candid/to_src_literal/boolean.ts similarity index 100% rename from property_tests/arbitraries/candid/to_src_literal/boolean.ts rename to test/property/arbitraries/candid/to_src_literal/boolean.ts diff --git a/property_tests/arbitraries/candid/to_src_literal/float.ts b/test/property/arbitraries/candid/to_src_literal/float.ts similarity index 100% rename from property_tests/arbitraries/candid/to_src_literal/float.ts rename to test/property/arbitraries/candid/to_src_literal/float.ts diff --git a/property_tests/arbitraries/candid/to_src_literal/null.ts b/test/property/arbitraries/candid/to_src_literal/null.ts similarity index 100% rename from property_tests/arbitraries/candid/to_src_literal/null.ts rename to test/property/arbitraries/candid/to_src_literal/null.ts diff --git a/property_tests/arbitraries/candid/to_src_literal/number.ts b/test/property/arbitraries/candid/to_src_literal/number.ts similarity index 100% rename from property_tests/arbitraries/candid/to_src_literal/number.ts rename to test/property/arbitraries/candid/to_src_literal/number.ts diff --git a/property_tests/arbitraries/candid/to_src_literal/principal.ts b/test/property/arbitraries/candid/to_src_literal/principal.ts similarity index 100% rename from property_tests/arbitraries/candid/to_src_literal/principal.ts rename to test/property/arbitraries/candid/to_src_literal/principal.ts diff --git a/property_tests/arbitraries/candid/to_src_literal/string.ts b/test/property/arbitraries/candid/to_src_literal/string.ts similarity index 100% rename from property_tests/arbitraries/candid/to_src_literal/string.ts rename to test/property/arbitraries/candid/to_src_literal/string.ts diff --git a/property_tests/arbitraries/candid/to_src_literal/void.ts b/test/property/arbitraries/candid/to_src_literal/void.ts similarity index 100% rename from property_tests/arbitraries/candid/to_src_literal/void.ts rename to test/property/arbitraries/candid/to_src_literal/void.ts diff --git a/property_tests/arbitraries/canister_arb.ts b/test/property/arbitraries/canister_arb.ts similarity index 100% rename from property_tests/arbitraries/canister_arb.ts rename to test/property/arbitraries/canister_arb.ts diff --git a/property_tests/arbitraries/canister_methods/index.ts b/test/property/arbitraries/canister_methods/index.ts similarity index 100% rename from property_tests/arbitraries/canister_methods/index.ts rename to test/property/arbitraries/canister_methods/index.ts diff --git a/property_tests/arbitraries/canister_methods/init_method_arb.ts b/test/property/arbitraries/canister_methods/init_method_arb.ts similarity index 100% rename from property_tests/arbitraries/canister_methods/init_method_arb.ts rename to test/property/arbitraries/canister_methods/init_method_arb.ts diff --git a/property_tests/arbitraries/canister_methods/inspect_message_method_arb.ts b/test/property/arbitraries/canister_methods/inspect_message_method_arb.ts similarity index 100% rename from property_tests/arbitraries/canister_methods/inspect_message_method_arb.ts rename to test/property/arbitraries/canister_methods/inspect_message_method_arb.ts diff --git a/property_tests/arbitraries/canister_methods/post_upgrade_arb.ts b/test/property/arbitraries/canister_methods/post_upgrade_arb.ts similarity index 100% rename from property_tests/arbitraries/canister_methods/post_upgrade_arb.ts rename to test/property/arbitraries/canister_methods/post_upgrade_arb.ts diff --git a/property_tests/arbitraries/canister_methods/pre_upgrade_method_arb.ts b/test/property/arbitraries/canister_methods/pre_upgrade_method_arb.ts similarity index 100% rename from property_tests/arbitraries/canister_methods/pre_upgrade_method_arb.ts rename to test/property/arbitraries/canister_methods/pre_upgrade_method_arb.ts diff --git a/property_tests/arbitraries/canister_methods/query_method_arb.ts b/test/property/arbitraries/canister_methods/query_method_arb.ts similarity index 100% rename from property_tests/arbitraries/canister_methods/query_method_arb.ts rename to test/property/arbitraries/canister_methods/query_method_arb.ts diff --git a/property_tests/arbitraries/canister_methods/update_method_arb.ts b/test/property/arbitraries/canister_methods/update_method_arb.ts similarity index 100% rename from property_tests/arbitraries/canister_methods/update_method_arb.ts rename to test/property/arbitraries/canister_methods/update_method_arb.ts diff --git a/property_tests/arbitraries/config.ts b/test/property/arbitraries/config.ts similarity index 100% rename from property_tests/arbitraries/config.ts rename to test/property/arbitraries/config.ts diff --git a/property_tests/arbitraries/http/body_arb.ts b/test/property/arbitraries/http/body_arb.ts similarity index 100% rename from property_tests/arbitraries/http/body_arb.ts rename to test/property/arbitraries/http/body_arb.ts diff --git a/property_tests/arbitraries/http/headers_arb.ts b/test/property/arbitraries/http/headers_arb.ts similarity index 100% rename from property_tests/arbitraries/http/headers_arb.ts rename to test/property/arbitraries/http/headers_arb.ts diff --git a/property_tests/arbitraries/http/request_arb.ts b/test/property/arbitraries/http/request_arb.ts similarity index 98% rename from property_tests/arbitraries/http/request_arb.ts rename to test/property/arbitraries/http/request_arb.ts index 34668ec3cf..24a9611542 100644 --- a/property_tests/arbitraries/http/request_arb.ts +++ b/test/property/arbitraries/http/request_arb.ts @@ -1,6 +1,6 @@ import fc from 'fast-check'; -import { HttpRequest, None, Some } from '../../../src/lib/experimental'; +import { HttpRequest, None, Some } from '../../../../src/lib/experimental'; import { CandidValueAndMeta } from '../candid/candid_value_and_meta_arb'; import { blobToSrcLiteral } from '../candid/to_src_literal/blob'; import { stringToSrcLiteral } from '../candid/to_src_literal/string'; diff --git a/property_tests/arbitraries/http/response_arb.ts b/test/property/arbitraries/http/response_arb.ts similarity index 99% rename from property_tests/arbitraries/http/response_arb.ts rename to test/property/arbitraries/http/response_arb.ts index 137fda8b20..e4bfc32f64 100644 --- a/property_tests/arbitraries/http/response_arb.ts +++ b/test/property/arbitraries/http/response_arb.ts @@ -1,6 +1,6 @@ import fc from 'fast-check'; -import { HttpResponse, None } from '../../../src/lib/experimental'; +import { HttpResponse, None } from '../../../../src/lib/experimental'; import { CandidValueAndMeta } from '../candid/candid_value_and_meta_arb'; import { CorrespondingJSType } from '../candid/corresponding_js_type'; import { blobToSrcLiteral } from '../candid/to_src_literal/blob'; diff --git a/property_tests/arbitraries/js_function_name_arb.ts b/test/property/arbitraries/js_function_name_arb.ts similarity index 100% rename from property_tests/arbitraries/js_function_name_arb.ts rename to test/property/arbitraries/js_function_name_arb.ts diff --git a/property_tests/arbitraries/stable_b_tree_map_arb.ts b/test/property/arbitraries/stable_b_tree_map_arb.ts similarity index 100% rename from property_tests/arbitraries/stable_b_tree_map_arb.ts rename to test/property/arbitraries/stable_b_tree_map_arb.ts diff --git a/property_tests/arbitraries/types.ts b/test/property/arbitraries/types.ts similarity index 100% rename from property_tests/arbitraries/types.ts rename to test/property/arbitraries/types.ts diff --git a/property_tests/arbitraries/unique_identifier_arb.ts b/test/property/arbitraries/unique_identifier_arb.ts similarity index 100% rename from property_tests/arbitraries/unique_identifier_arb.ts rename to test/property/arbitraries/unique_identifier_arb.ts diff --git a/property_tests/arbitraries/unique_primitive_arb.ts b/test/property/arbitraries/unique_primitive_arb.ts similarity index 100% rename from property_tests/arbitraries/unique_primitive_arb.ts rename to test/property/arbitraries/unique_primitive_arb.ts diff --git a/property_tests/are_params_correctly_ordered.ts b/test/property/are_params_correctly_ordered.ts similarity index 100% rename from property_tests/are_params_correctly_ordered.ts rename to test/property/are_params_correctly_ordered.ts diff --git a/property_tests/get_actor.ts b/test/property/get_actor.ts similarity index 95% rename from property_tests/get_actor.ts rename to test/property/get_actor.ts index 69f700e358..cc575b28c2 100644 --- a/property_tests/get_actor.ts +++ b/test/property/get_actor.ts @@ -1,6 +1,6 @@ import { Agent, HttpAgent } from '@dfinity/agent'; -import { getCanisterId } from '../dfx'; +import { getCanisterId } from '../../dfx'; export function getActor(parentDir: string, agent?: Agent): any { const resolvedPathIndex = require.resolve( diff --git a/property_tests/index.ts b/test/property/index.ts similarity index 100% rename from property_tests/index.ts rename to test/property/index.ts diff --git a/property_tests/set_experimental.ts b/test/property/set_experimental.ts similarity index 100% rename from property_tests/set_experimental.ts rename to test/property/set_experimental.ts diff --git a/property_tests/test/index.ts b/test/property/test/index.ts similarity index 99% rename from property_tests/test/index.ts rename to test/property/test/index.ts index 5b599f0a8e..add82832a1 100644 --- a/property_tests/test/index.ts +++ b/test/property/test/index.ts @@ -4,7 +4,7 @@ // eslint-disable-next-line @typescript-eslint/no-var-requires const deepEqual = require('deep-is'); -import { jsonStringify } from '../../src/lib/experimental/json'; +import { jsonStringify } from '../../../src/lib/experimental/json'; export type Test<> = { name: string; diff --git a/property_tests/tsconfig.json b/test/property/tsconfig.json similarity index 100% rename from property_tests/tsconfig.json rename to test/property/tsconfig.json diff --git a/property_tests/visitors/LICENCE b/test/property/visitors/LICENCE similarity index 100% rename from property_tests/visitors/LICENCE rename to test/property/visitors/LICENCE diff --git a/property_tests/visitors/cli-string-visitor.ts b/test/property/visitors/cli-string-visitor.ts similarity index 100% rename from property_tests/visitors/cli-string-visitor.ts rename to test/property/visitors/cli-string-visitor.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/async_await/.gitignore b/tests/end_to_end/candid_rpc/class_api/async_await/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/async_await/.gitignore rename to tests/end_to_end/candid_rpc/class_api/async_await/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/async_await/dfx.json b/tests/end_to_end/candid_rpc/class_api/async_await/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/async_await/dfx.json rename to tests/end_to_end/candid_rpc/class_api/async_await/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/async_await/jest.config.js b/tests/end_to_end/candid_rpc/class_api/async_await/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/async_await/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/async_await/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/async_await/package-lock.json b/tests/end_to_end/candid_rpc/class_api/async_await/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/async_await/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/async_await/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/async_await/package.json b/tests/end_to_end/candid_rpc/class_api/async_await/package.json new file mode 100644 index 0000000000..d6a8860a87 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/async_await/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "async_await_end_to_end_test_functional_api": "file:../../functional_api/async_await", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/async_await/src/async_await.ts b/tests/end_to_end/candid_rpc/class_api/async_await/src/async_await.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/async_await/src/async_await.ts rename to tests/end_to_end/candid_rpc/class_api/async_await/src/async_await.ts diff --git a/tests/end_to_end/candid_rpc/class_api/async_await/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/async_await/test/pretest.ts new file mode 100644 index 0000000000..8ad676c501 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/async_await/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'async_await' + ) + ); + + execSync(`dfx canister uninstall-code async_await || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy async_await`, { + stdio: 'inherit' + }); + + execSync(`dfx generate async_await`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/async_await/test/test.ts b/tests/end_to_end/candid_rpc/class_api/async_await/test/test.ts new file mode 100644 index 0000000000..12300e90a4 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/async_await/test/test.ts @@ -0,0 +1,13 @@ +import { getTests } from 'async_await_end_to_end_test_functional_api/test/tests'; +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; + +import { createActor } from './dfx_generated/async_await'; + +const asyncAwaitCanister = createActor(getCanisterId('async_await'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(asyncAwaitCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/async_await/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/async_await/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/async_await/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/async_await/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/.gitignore b/tests/end_to_end/candid_rpc/class_api/audio_recorder/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/audio_recorder/.gitignore rename to tests/end_to_end/candid_rpc/class_api/audio_recorder/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/dfx.json b/tests/end_to_end/candid_rpc/class_api/audio_recorder/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/audio_recorder/dfx.json rename to tests/end_to_end/candid_rpc/class_api/audio_recorder/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/jest.config.js b/tests/end_to_end/candid_rpc/class_api/audio_recorder/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/audio_recorder/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/audio_recorder/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/package-lock.json b/tests/end_to_end/candid_rpc/class_api/audio_recorder/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/audio_recorder/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/audio_recorder/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/audio_recorder/package.json b/tests/end_to_end/candid_rpc/class_api/audio_recorder/package.json new file mode 100644 index 0000000000..1df1dd2333 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/audio_recorder/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.3", + "audio_recorder_end_to_end_test_functional_api": "file:../../functional_api/audio_recorder", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/src/index.ts b/tests/end_to_end/candid_rpc/class_api/audio_recorder/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/audio_recorder/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/audio_recorder/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/audio_recorder/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/audio_recorder/test/pretest.ts new file mode 100644 index 0000000000..be2dfb4ca3 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/audio_recorder/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'audio_recorder' + ) + ); + + execSync(`dfx canister uninstall-code audio_recorder || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy audio_recorder`, { + stdio: 'inherit' + }); + + execSync(`dfx generate audio_recorder`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/audio_recorder/test/test.ts b/tests/end_to_end/candid_rpc/class_api/audio_recorder/test/test.ts new file mode 100644 index 0000000000..16327efb66 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/audio_recorder/test/test.ts @@ -0,0 +1,13 @@ +import { getTests } from 'audio_recorder_end_to_end_test_functional_api/test/tests'; +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; + +import { createActor } from './dfx_generated/audio_recorder'; + +const audioRecorderCanister = createActor(getCanisterId('audio_recorder'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(audioRecorderCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/audio_recorder/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/audio_recorder/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/audio_recorder/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/.bitcoin.conf b/tests/end_to_end/candid_rpc/class_api/bitcoin/.bitcoin.conf similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bitcoin/.bitcoin.conf rename to tests/end_to_end/candid_rpc/class_api/bitcoin/.bitcoin.conf diff --git a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/.gitignore b/tests/end_to_end/candid_rpc/class_api/bitcoin/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bitcoin/.gitignore rename to tests/end_to_end/candid_rpc/class_api/bitcoin/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/README.md b/tests/end_to_end/candid_rpc/class_api/bitcoin/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bitcoin/README.md rename to tests/end_to_end/candid_rpc/class_api/bitcoin/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/dfx.json b/tests/end_to_end/candid_rpc/class_api/bitcoin/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bitcoin/dfx.json rename to tests/end_to_end/candid_rpc/class_api/bitcoin/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/jest.config.js b/tests/end_to_end/candid_rpc/class_api/bitcoin/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bitcoin/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/bitcoin/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/package-lock.json b/tests/end_to_end/candid_rpc/class_api/bitcoin/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bitcoin/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/bitcoin/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/bitcoin/package.json b/tests/end_to_end/candid_rpc/class_api/bitcoin/package.json new file mode 100644 index 0000000000..e1a074ec15 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/bitcoin/package.json @@ -0,0 +1,21 @@ +{ + "scripts": { + "bitcoind": ".bitcoin/bin/bitcoind -conf=$(pwd)/.bitcoin.conf -datadir=$(pwd)/.bitcoin/data --port=18444", + "bitcoin-cli": "bitcoin-cli -conf=$(pwd)/.bitcoin.conf -datadir=$(pwd)/.bitcoin/data -rpcport=18443", + "deploy": "./scripts/deploy.sh bitcoin", + "install": "./scripts/install.sh", + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "bitcoin_end_to_end_test_functional_api": "file:../../functional_api/bitcoin", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/scripts/deploy.sh b/tests/end_to_end/candid_rpc/class_api/bitcoin/scripts/deploy.sh similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bitcoin/scripts/deploy.sh rename to tests/end_to_end/candid_rpc/class_api/bitcoin/scripts/deploy.sh diff --git a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/scripts/install.sh b/tests/end_to_end/candid_rpc/class_api/bitcoin/scripts/install.sh similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bitcoin/scripts/install.sh rename to tests/end_to_end/candid_rpc/class_api/bitcoin/scripts/install.sh diff --git a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/src/index.ts b/tests/end_to_end/candid_rpc/class_api/bitcoin/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bitcoin/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/bitcoin/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/test/bitcoin_cli.ts b/tests/end_to_end/candid_rpc/class_api/bitcoin/test/bitcoin_cli.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bitcoin/test/bitcoin_cli.ts rename to tests/end_to_end/candid_rpc/class_api/bitcoin/test/bitcoin_cli.ts diff --git a/tests/end_to_end/candid_rpc/class_api/bitcoin/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/bitcoin/test/pretest.ts new file mode 100644 index 0000000000..0a86df0701 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/bitcoin/test/pretest.ts @@ -0,0 +1,27 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join('tests', 'end_to_end', 'candid_rpc', 'functional_api', 'bitcoin') + ); + + execSync(`rm -rf .bitcoin/data/regtest`, { + stdio: 'inherit' + }); + + execSync(`dfx canister uninstall-code bitcoin || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy bitcoin`, { + stdio: 'inherit' + }); + + execSync(`dfx generate`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/test/setup.ts b/tests/end_to_end/candid_rpc/class_api/bitcoin/test/setup.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bitcoin/test/setup.ts rename to tests/end_to_end/candid_rpc/class_api/bitcoin/test/setup.ts diff --git a/tests/end_to_end/candid_rpc/class_api/bitcoin/test/test.ts b/tests/end_to_end/candid_rpc/class_api/bitcoin/test/test.ts new file mode 100644 index 0000000000..0a2be1992b --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/bitcoin/test/test.ts @@ -0,0 +1,30 @@ +import { afterAll, beforeAll, describe } from '@jest/globals'; +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'bitcoin_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/bitcoin'; +import { BitcoinDaemon, startBitcoinDaemon } from './setup'; + +const bitcoinCanister = createActor(getCanisterId('bitcoin'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(() => { + let bitcoinDaemon: BitcoinDaemon; + + beforeAll(async () => { + bitcoinDaemon = await startBitcoinDaemon(); + }, 60_000); + + afterAll(() => { + bitcoinDaemon.kill(); + }); + + describe( + 'runs bitcoin tests while bitcoin daemon is running', + getTests(bitcoinCanister) + ); +}); diff --git a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/test/wallets.ts b/tests/end_to_end/candid_rpc/class_api/bitcoin/test/wallets.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bitcoin/test/wallets.ts rename to tests/end_to_end/candid_rpc/class_api/bitcoin/test/wallets.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/bitcoin/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bitcoin/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/bitcoin/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/blob_array/.gitignore b/tests/end_to_end/candid_rpc/class_api/blob_array/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/blob_array/.gitignore rename to tests/end_to_end/candid_rpc/class_api/blob_array/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/blob_array/README.md b/tests/end_to_end/candid_rpc/class_api/blob_array/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/blob_array/README.md rename to tests/end_to_end/candid_rpc/class_api/blob_array/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/blob_array/dfx.json b/tests/end_to_end/candid_rpc/class_api/blob_array/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/blob_array/dfx.json rename to tests/end_to_end/candid_rpc/class_api/blob_array/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/blob_array/jest.config.js b/tests/end_to_end/candid_rpc/class_api/blob_array/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/blob_array/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/blob_array/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/blob_array/package-lock.json b/tests/end_to_end/candid_rpc/class_api/blob_array/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/blob_array/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/blob_array/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/blob_array/package.json b/tests/end_to_end/candid_rpc/class_api/blob_array/package.json new file mode 100644 index 0000000000..fa08868436 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/blob_array/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "blob_array_end_to_end_test_functional_api": "file:../../functional_api/blob_array", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/blob_array/src/index.ts b/tests/end_to_end/candid_rpc/class_api/blob_array/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/blob_array/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/blob_array/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/blob_array/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/blob_array/test/pretest.ts new file mode 100644 index 0000000000..704f7e06b6 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/blob_array/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'blob_array' + ) + ); + + execSync(`dfx canister uninstall-code blob_array || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy blob_array`, { + stdio: 'inherit' + }); + + execSync(`dfx generate blob_array`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/blob_array/test/test.ts b/tests/end_to_end/candid_rpc/class_api/blob_array/test/test.ts new file mode 100644 index 0000000000..170e922ea6 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/blob_array/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'blob_array_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/blob_array'; + +const blobCanister = createActor(getCanisterId('blob_array'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(blobCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/blob_array/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/blob_array/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/blob_array/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/blob_array/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/bytes/.gitignore b/tests/end_to_end/candid_rpc/class_api/bytes/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bytes/.gitignore rename to tests/end_to_end/candid_rpc/class_api/bytes/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/bytes/dfx.json b/tests/end_to_end/candid_rpc/class_api/bytes/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bytes/dfx.json rename to tests/end_to_end/candid_rpc/class_api/bytes/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/bytes/jest.config.js b/tests/end_to_end/candid_rpc/class_api/bytes/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bytes/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/bytes/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/bytes/package-lock.json b/tests/end_to_end/candid_rpc/class_api/bytes/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bytes/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/bytes/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/bytes/package.json b/tests/end_to_end/candid_rpc/class_api/bytes/package.json new file mode 100644 index 0000000000..c7b375094c --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/bytes/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "bytes_end_to_end_test_functional_api": "file:../../functional_api/bytes", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/bytes/src/index.ts b/tests/end_to_end/candid_rpc/class_api/bytes/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bytes/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/bytes/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/bytes/test/example_files/example_1000_kb.txt b/tests/end_to_end/candid_rpc/class_api/bytes/test/example_files/example_1000_kb.txt similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bytes/test/example_files/example_1000_kb.txt rename to tests/end_to_end/candid_rpc/class_api/bytes/test/example_files/example_1000_kb.txt diff --git a/tests/end_to_end/candid_rpc/class_syntax/bytes/test/example_files/example_100_kb.txt b/tests/end_to_end/candid_rpc/class_api/bytes/test/example_files/example_100_kb.txt similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bytes/test/example_files/example_100_kb.txt rename to tests/end_to_end/candid_rpc/class_api/bytes/test/example_files/example_100_kb.txt diff --git a/tests/end_to_end/candid_rpc/class_syntax/bytes/test/example_files/example_10_kb.txt b/tests/end_to_end/candid_rpc/class_api/bytes/test/example_files/example_10_kb.txt similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bytes/test/example_files/example_10_kb.txt rename to tests/end_to_end/candid_rpc/class_api/bytes/test/example_files/example_10_kb.txt diff --git a/tests/end_to_end/candid_rpc/class_syntax/bytes/test/example_files/example_1_kb.txt b/tests/end_to_end/candid_rpc/class_api/bytes/test/example_files/example_1_kb.txt similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bytes/test/example_files/example_1_kb.txt rename to tests/end_to_end/candid_rpc/class_api/bytes/test/example_files/example_1_kb.txt diff --git a/tests/end_to_end/candid_rpc/class_syntax/bytes/test/example_files/example_2000_kb.txt b/tests/end_to_end/candid_rpc/class_api/bytes/test/example_files/example_2000_kb.txt similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bytes/test/example_files/example_2000_kb.txt rename to tests/end_to_end/candid_rpc/class_api/bytes/test/example_files/example_2000_kb.txt diff --git a/tests/end_to_end/candid_rpc/class_api/bytes/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/bytes/test/pretest.ts new file mode 100644 index 0000000000..7eb3e29fa8 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/bytes/test/pretest.ts @@ -0,0 +1,23 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join('tests', 'end_to_end', 'candid_rpc', 'functional_api', 'bytes') + ); + + execSync(`dfx canister uninstall-code bytes_canister || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy bytes_canister`, { + stdio: 'inherit' + }); + + execSync(`dfx generate bytes_canister`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/bytes/test/test.ts b/tests/end_to_end/candid_rpc/class_api/bytes/test/test.ts new file mode 100644 index 0000000000..8722106c9d --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/bytes/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'bytes_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/bytes_canister'; + +const bytesCanister = createActor(getCanisterId('bytes_canister'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(bytesCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/bytes/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/bytes/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/bytes/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/bytes/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/call_raw/.gitignore b/tests/end_to_end/candid_rpc/class_api/call_raw/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/call_raw/.gitignore rename to tests/end_to_end/candid_rpc/class_api/call_raw/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/call_raw/dfx.json b/tests/end_to_end/candid_rpc/class_api/call_raw/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/call_raw/dfx.json rename to tests/end_to_end/candid_rpc/class_api/call_raw/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/call_raw/jest.config.js b/tests/end_to_end/candid_rpc/class_api/call_raw/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/call_raw/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/call_raw/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/call_raw/package-lock.json b/tests/end_to_end/candid_rpc/class_api/call_raw/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/call_raw/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/call_raw/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/call_raw/package.json b/tests/end_to_end/candid_rpc/class_api/call_raw/package.json new file mode 100644 index 0000000000..4bbab222c0 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/call_raw/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "call_raw_end_to_end_test_functional_api": "file:../../functional_api/call_raw", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/call_raw/src/index.ts b/tests/end_to_end/candid_rpc/class_api/call_raw/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/call_raw/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/call_raw/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/call_raw/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/call_raw/test/pretest.ts new file mode 100644 index 0000000000..85e6ef7e70 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/call_raw/test/pretest.ts @@ -0,0 +1,23 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join('tests', 'end_to_end', 'candid_rpc', 'functional_api', 'call_raw') + ); + + execSync(`dfx canister uninstall-code call_raw || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy call_raw`, { + stdio: 'inherit' + }); + + execSync(`dfx generate call_raw`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/call_raw/test/test.ts b/tests/end_to_end/candid_rpc/class_api/call_raw/test/test.ts new file mode 100644 index 0000000000..15cd53c64a --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/call_raw/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'call_raw_end_to_end_test_functional_api/test/tests'; + +import { createActor } from '../test/dfx_generated/call_raw'; + +const callRawCanister = createActor(getCanisterId('call_raw'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(callRawCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/call_raw/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/call_raw/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/call_raw/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/call_raw/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/.gitignore b/tests/end_to_end/candid_rpc/class_api/candid_encoding/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/candid_encoding/.gitignore rename to tests/end_to_end/candid_rpc/class_api/candid_encoding/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/dfx.json b/tests/end_to_end/candid_rpc/class_api/candid_encoding/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/candid_encoding/dfx.json rename to tests/end_to_end/candid_rpc/class_api/candid_encoding/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/jest.config.js b/tests/end_to_end/candid_rpc/class_api/candid_encoding/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/candid_encoding/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/candid_encoding/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/package-lock.json b/tests/end_to_end/candid_rpc/class_api/candid_encoding/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/candid_encoding/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/candid_encoding/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/candid_encoding/package.json b/tests/end_to_end/candid_rpc/class_api/candid_encoding/package.json new file mode 100644 index 0000000000..045a0f4781 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/candid_encoding/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "candid_encoding_end_to_end_test_functional_api": "file:../../functional_api/candid_encoding", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/src/index.ts b/tests/end_to_end/candid_rpc/class_api/candid_encoding/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/candid_encoding/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/candid_encoding/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/candid_encoding/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/candid_encoding/test/pretest.ts new file mode 100644 index 0000000000..45edf111f4 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/candid_encoding/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'candid_encoding' + ) + ); + + execSync(`dfx canister uninstall-code candid_encoding || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy candid_encoding`, { + stdio: 'inherit' + }); + + execSync(`dfx generate candid_encoding`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/candid_encoding/test/test.ts b/tests/end_to_end/candid_rpc/class_api/candid_encoding/test/test.ts new file mode 100644 index 0000000000..1700f247c5 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/candid_encoding/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'candid_encoding_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/candid_encoding'; + +const candidEncodingCanister = createActor(getCanisterId('candid_encoding'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(candidEncodingCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/candid_encoding/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/candid_encoding/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/candid_encoding/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/.gitignore b/tests/end_to_end/candid_rpc/class_api/candid_keywords/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/candid_keywords/.gitignore rename to tests/end_to_end/candid_rpc/class_api/candid_keywords/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/dfx.json b/tests/end_to_end/candid_rpc/class_api/candid_keywords/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/candid_keywords/dfx.json rename to tests/end_to_end/candid_rpc/class_api/candid_keywords/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/jest.config.js b/tests/end_to_end/candid_rpc/class_api/candid_keywords/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/candid_keywords/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/candid_keywords/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/package-lock.json b/tests/end_to_end/candid_rpc/class_api/candid_keywords/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/candid_keywords/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/candid_keywords/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/candid_keywords/package.json b/tests/end_to_end/candid_rpc/class_api/candid_keywords/package.json new file mode 100644 index 0000000000..4f8ba10162 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/candid_keywords/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.19.2", + "candid_keywords_end_to_end_test_functional_api": "file:../../functional_api/candid_keywords", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/src/index.ts b/tests/end_to_end/candid_rpc/class_api/candid_keywords/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/candid_keywords/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/candid_keywords/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/candid_keywords/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/candid_keywords/test/pretest.ts new file mode 100644 index 0000000000..4d2139d493 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/candid_keywords/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'candid_keywords' + ) + ); + + execSync(`dfx canister uninstall-code candid_keywords || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy candid_keywords`, { + stdio: 'inherit' + }); + + execSync(`dfx generate candid_keywords`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/candid_keywords/test/test.ts b/tests/end_to_end/candid_rpc/class_api/candid_keywords/test/test.ts new file mode 100644 index 0000000000..60fbae3c95 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/candid_keywords/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'candid_keywords_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/candid_keywords'; + +const queryCanister = createActor(getCanisterId('candid_keywords'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(queryCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/candid_keywords/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/candid_keywords/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/candid_keywords/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/canister/.gitignore b/tests/end_to_end/candid_rpc/class_api/canister/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/canister/.gitignore rename to tests/end_to_end/candid_rpc/class_api/canister/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/canister/dfx.json b/tests/end_to_end/candid_rpc/class_api/canister/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/canister/dfx.json rename to tests/end_to_end/candid_rpc/class_api/canister/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/canister/jest.config.js b/tests/end_to_end/candid_rpc/class_api/canister/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/canister/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/canister/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/canister/package-lock.json b/tests/end_to_end/candid_rpc/class_api/canister/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/canister/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/canister/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/canister/package.json b/tests/end_to_end/candid_rpc/class_api/canister/package.json new file mode 100644 index 0000000000..226db65734 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/canister/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.21.4", + "canister_end_to_end_test_functional_api": "file:../../functional_api/canister", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/canister/src/index.ts b/tests/end_to_end/candid_rpc/class_api/canister/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/canister/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/canister/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/canister/src/some_canister.did b/tests/end_to_end/candid_rpc/class_api/canister/src/some_canister.did similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/canister/src/some_canister.did rename to tests/end_to_end/candid_rpc/class_api/canister/src/some_canister.did diff --git a/tests/end_to_end/candid_rpc/class_syntax/canister/src/some_canister.ts b/tests/end_to_end/candid_rpc/class_api/canister/src/some_canister.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/canister/src/some_canister.ts rename to tests/end_to_end/candid_rpc/class_api/canister/src/some_canister.ts diff --git a/tests/end_to_end/candid_rpc/class_api/canister/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/canister/test/pretest.ts new file mode 100644 index 0000000000..bdf13b84c1 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/canister/test/pretest.ts @@ -0,0 +1,35 @@ +import { getCanisterId } from 'azle/dfx'; +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join('tests', 'end_to_end', 'candid_rpc', 'functional_api', 'canister') + ); + + execSync(`dfx canister uninstall-code canister || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister uninstall-code some_canister || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister create some_canister || true`, { + stdio: 'inherit' + }); + + execSync( + `SOME_CANISTER_PRINCIPAL=${getCanisterId('some_canister')} dfx deploy`, + { + stdio: 'inherit' + } + ); + + execSync(`dfx generate`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/canister/test/test.ts b/tests/end_to_end/candid_rpc/class_api/canister/test/test.ts new file mode 100644 index 0000000000..529cf6b95d --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/canister/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'canister_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/canister'; + +const canister = createActor(getCanisterId('canister'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(canister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/canister/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/canister/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/canister/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/canister/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_init/.gitignore b/tests/end_to_end/candid_rpc/class_api/complex_init/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_init/.gitignore rename to tests/end_to_end/candid_rpc/class_api/complex_init/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_init/dfx.json b/tests/end_to_end/candid_rpc/class_api/complex_init/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_init/dfx.json rename to tests/end_to_end/candid_rpc/class_api/complex_init/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_init/jest.config.js b/tests/end_to_end/candid_rpc/class_api/complex_init/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_init/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/complex_init/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_init/package-lock.json b/tests/end_to_end/candid_rpc/class_api/complex_init/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_init/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/complex_init/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/complex_init/package.json b/tests/end_to_end/candid_rpc/class_api/complex_init/package.json new file mode 100644 index 0000000000..b5ab08f7cb --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/complex_init/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "complex_init_end_to_end_test_functional_api": "file:../../functional_api/complex_init", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_init/src/complex_init/index.ts b/tests/end_to_end/candid_rpc/class_api/complex_init/src/complex_init/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_init/src/complex_init/index.ts rename to tests/end_to_end/candid_rpc/class_api/complex_init/src/complex_init/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_init/src/rec_init/index.ts b/tests/end_to_end/candid_rpc/class_api/complex_init/src/rec_init/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_init/src/rec_init/index.ts rename to tests/end_to_end/candid_rpc/class_api/complex_init/src/rec_init/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/complex_init/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/complex_init/test/pretest.ts new file mode 100644 index 0000000000..27678e4186 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/complex_init/test/pretest.ts @@ -0,0 +1,47 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'complex_init' + ) + ); + + execSync(`dfx canister uninstall-code complex_init || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister uninstall-code rec_init || true`, { + stdio: 'inherit' + }); + + execSync( + `dfx deploy complex_init --argument 'record {"Oh hello there user"; record { id = "1" }}'`, + { + stdio: 'inherit' + } + ); + + execSync( + `dfx deploy rec_init --argument 'variant {Branch = variant {Leaf}}'`, + { + stdio: 'inherit' + } + ); + + execSync(`dfx generate complex_init`, { + stdio: 'inherit' + }); + + execSync(`dfx generate rec_init`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/complex_init/test/test.ts b/tests/end_to_end/candid_rpc/class_api/complex_init/test/test.ts new file mode 100644 index 0000000000..3f9dff812b --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/complex_init/test/test.ts @@ -0,0 +1,28 @@ +import { describe } from '@jest/globals'; +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { + getRecTests, + getTests +} from 'complex_init_end_to_end_test_functional_api/test/tests'; + +import { createActor as createComplexActor } from './dfx_generated/complex_init'; +// @ts-ignore +import { createActor as createRecActor } from './dfx_generated/rec_init'; + +const complexInitCanister = createComplexActor(getCanisterId('complex_init'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +const recInitCanister = createRecActor(getCanisterId('rec_init'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(() => { + describe('complex init canister', getTests(complexInitCanister)); + describe('rec init canister', getRecTests(recInitCanister)); +}); diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_init/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/complex_init/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_init/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/complex_init/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_types/.gitignore b/tests/end_to_end/candid_rpc/class_api/complex_types/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_types/.gitignore rename to tests/end_to_end/candid_rpc/class_api/complex_types/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_types/dfx.json b/tests/end_to_end/candid_rpc/class_api/complex_types/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_types/dfx.json rename to tests/end_to_end/candid_rpc/class_api/complex_types/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_types/jest.config.js b/tests/end_to_end/candid_rpc/class_api/complex_types/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_types/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/complex_types/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_types/package-lock.json b/tests/end_to_end/candid_rpc/class_api/complex_types/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_types/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/complex_types/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/complex_types/package.json b/tests/end_to_end/candid_rpc/class_api/complex_types/package.json new file mode 100644 index 0000000000..973e6c1958 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/complex_types/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "complex_types_end_to_end_test_functional_api": "file:../../functional_api/complex_types", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_types/src/candid_types.ts b/tests/end_to_end/candid_rpc/class_api/complex_types/src/candid_types.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_types/src/candid_types.ts rename to tests/end_to_end/candid_rpc/class_api/complex_types/src/candid_types.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_types/src/index.ts b/tests/end_to_end/candid_rpc/class_api/complex_types/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_types/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/complex_types/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_types/src/posts.ts b/tests/end_to_end/candid_rpc/class_api/complex_types/src/posts.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_types/src/posts.ts rename to tests/end_to_end/candid_rpc/class_api/complex_types/src/posts.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_types/src/reactions.ts b/tests/end_to_end/candid_rpc/class_api/complex_types/src/reactions.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_types/src/reactions.ts rename to tests/end_to_end/candid_rpc/class_api/complex_types/src/reactions.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_types/src/state.ts b/tests/end_to_end/candid_rpc/class_api/complex_types/src/state.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_types/src/state.ts rename to tests/end_to_end/candid_rpc/class_api/complex_types/src/state.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_types/src/threads.ts b/tests/end_to_end/candid_rpc/class_api/complex_types/src/threads.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_types/src/threads.ts rename to tests/end_to_end/candid_rpc/class_api/complex_types/src/threads.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_types/src/users.ts b/tests/end_to_end/candid_rpc/class_api/complex_types/src/users.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_types/src/users.ts rename to tests/end_to_end/candid_rpc/class_api/complex_types/src/users.ts diff --git a/tests/end_to_end/candid_rpc/class_api/complex_types/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/complex_types/test/pretest.ts new file mode 100644 index 0000000000..1337b869c2 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/complex_types/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'complex_types' + ) + ); + + execSync(`dfx canister uninstall-code complex_types || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy complex_types`, { + stdio: 'inherit' + }); + + execSync(`dfx generate complex_types`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/complex_types/test/test.ts b/tests/end_to_end/candid_rpc/class_api/complex_types/test/test.ts new file mode 100644 index 0000000000..a951855c24 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/complex_types/test/test.ts @@ -0,0 +1,15 @@ +// TODO this needs to be more thoroughly tested + +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'complex_types_end_to_end_test_functional_api/test/tests'; + +import { createActor } from '../test/dfx_generated/complex_types'; + +const complexTypesCanister = createActor(getCanisterId('complex_types'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(complexTypesCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_types/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/complex_types/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/complex_types/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/complex_types/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/composite_queries/.gitignore b/tests/end_to_end/candid_rpc/class_api/composite_queries/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/composite_queries/.gitignore rename to tests/end_to_end/candid_rpc/class_api/composite_queries/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/composite_queries/dfx.json b/tests/end_to_end/candid_rpc/class_api/composite_queries/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/composite_queries/dfx.json rename to tests/end_to_end/candid_rpc/class_api/composite_queries/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/composite_queries/jest.config.js b/tests/end_to_end/candid_rpc/class_api/composite_queries/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/composite_queries/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/composite_queries/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/composite_queries/package-lock.json b/tests/end_to_end/candid_rpc/class_api/composite_queries/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/composite_queries/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/composite_queries/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/composite_queries/package.json b/tests/end_to_end/candid_rpc/class_api/composite_queries/package.json new file mode 100644 index 0000000000..08d706a1d3 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/composite_queries/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "composite_queries_end_to_end_test_functional_api": "file:../../functional_api/composite_queries", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/composite_queries/src/canister1/index.ts b/tests/end_to_end/candid_rpc/class_api/composite_queries/src/canister1/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/composite_queries/src/canister1/index.ts rename to tests/end_to_end/candid_rpc/class_api/composite_queries/src/canister1/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/composite_queries/src/canister2/index.did b/tests/end_to_end/candid_rpc/class_api/composite_queries/src/canister2/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/composite_queries/src/canister2/index.did rename to tests/end_to_end/candid_rpc/class_api/composite_queries/src/canister2/index.did diff --git a/tests/end_to_end/candid_rpc/class_syntax/composite_queries/src/canister2/index.ts b/tests/end_to_end/candid_rpc/class_api/composite_queries/src/canister2/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/composite_queries/src/canister2/index.ts rename to tests/end_to_end/candid_rpc/class_api/composite_queries/src/canister2/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/composite_queries/src/canister3/index.did b/tests/end_to_end/candid_rpc/class_api/composite_queries/src/canister3/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/composite_queries/src/canister3/index.did rename to tests/end_to_end/candid_rpc/class_api/composite_queries/src/canister3/index.did diff --git a/tests/end_to_end/candid_rpc/class_syntax/composite_queries/src/canister3/index.ts b/tests/end_to_end/candid_rpc/class_api/composite_queries/src/canister3/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/composite_queries/src/canister3/index.ts rename to tests/end_to_end/candid_rpc/class_api/composite_queries/src/canister3/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/composite_queries/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/composite_queries/test/pretest.ts new file mode 100644 index 0000000000..c452b290cd --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/composite_queries/test/pretest.ts @@ -0,0 +1,57 @@ +import { getCanisterId } from 'azle/dfx'; +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'composite_queries' + ) + ); + + execSync(`dfx canister uninstall-code canister1 || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister uninstall-code canister2 || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister uninstall-code canister3 || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister create canister1`, { + stdio: 'inherit' + }); + + execSync(`dfx canister create canister2`, { + stdio: 'inherit' + }); + + execSync(`dfx canister create canister3`, { + stdio: 'inherit' + }); + + execSync( + `CANISTER1_PRINCIPAL=${getCanisterId( + 'canister1' + )} CANISTER2_PRINCIPAL=${getCanisterId( + 'canister2' + )} CANISTER3_PRINCIPAL=${getCanisterId('canister3')} dfx deploy`, + { + stdio: 'inherit' + } + ); + + execSync(`dfx generate`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/composite_queries/test/test.ts b/tests/end_to_end/candid_rpc/class_api/composite_queries/test/test.ts new file mode 100644 index 0000000000..43425bb088 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/composite_queries/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'composite_queries_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/canister1'; + +const canister1 = createActor(getCanisterId('canister1'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(canister1)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/composite_queries/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/composite_queries/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/composite_queries/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/composite_queries/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/counter/.gitignore b/tests/end_to_end/candid_rpc/class_api/counter/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/counter/.gitignore rename to tests/end_to_end/candid_rpc/class_api/counter/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/counter/dfx.json b/tests/end_to_end/candid_rpc/class_api/counter/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/counter/dfx.json rename to tests/end_to_end/candid_rpc/class_api/counter/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/counter/jest.config.js b/tests/end_to_end/candid_rpc/class_api/counter/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/counter/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/counter/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/counter/package-lock.json b/tests/end_to_end/candid_rpc/class_api/counter/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/counter/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/counter/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/counter/package.json b/tests/end_to_end/candid_rpc/class_api/counter/package.json new file mode 100644 index 0000000000..4af13b39a2 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/counter/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "counter_end_to_end_test_functional_api": "file:../../functional_api/counter", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/counter/src/index.ts b/tests/end_to_end/candid_rpc/class_api/counter/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/counter/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/counter/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/counter/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/counter/test/pretest.ts new file mode 100644 index 0000000000..e471c4cae6 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/counter/test/pretest.ts @@ -0,0 +1,23 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join('tests', 'end_to_end', 'candid_rpc', 'functional_api', 'counter') + ); + + execSync(`dfx canister uninstall-code counter || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy counter`, { + stdio: 'inherit' + }); + + execSync(`dfx generate counter`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/counter/test/test.ts b/tests/end_to_end/candid_rpc/class_api/counter/test/test.ts new file mode 100644 index 0000000000..382825353b --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/counter/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'counter_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/counter'; + +const counterCanister = createActor(getCanisterId('counter'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(counterCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/counter/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/counter/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/counter/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/counter/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/.gitignore b/tests/end_to_end/candid_rpc/class_api/cross_canister_calls/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/.gitignore rename to tests/end_to_end/candid_rpc/class_api/cross_canister_calls/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/dfx.json b/tests/end_to_end/candid_rpc/class_api/cross_canister_calls/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/dfx.json rename to tests/end_to_end/candid_rpc/class_api/cross_canister_calls/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/jest.config.js b/tests/end_to_end/candid_rpc/class_api/cross_canister_calls/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/cross_canister_calls/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/package-lock.json b/tests/end_to_end/candid_rpc/class_api/cross_canister_calls/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/cross_canister_calls/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/cross_canister_calls/package.json b/tests/end_to_end/candid_rpc/class_api/cross_canister_calls/package.json new file mode 100644 index 0000000000..d5d948a66c --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/cross_canister_calls/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "cross_canister_calls_end_to_end_test_functional_api": "file:../../functional_api/cross_canister_calls", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/src/canister1/index.ts b/tests/end_to_end/candid_rpc/class_api/cross_canister_calls/src/canister1/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/src/canister1/index.ts rename to tests/end_to_end/candid_rpc/class_api/cross_canister_calls/src/canister1/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/src/canister2/index.did b/tests/end_to_end/candid_rpc/class_api/cross_canister_calls/src/canister2/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/src/canister2/index.did rename to tests/end_to_end/candid_rpc/class_api/cross_canister_calls/src/canister2/index.did diff --git a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/src/canister2/index.ts b/tests/end_to_end/candid_rpc/class_api/cross_canister_calls/src/canister2/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/src/canister2/index.ts rename to tests/end_to_end/candid_rpc/class_api/cross_canister_calls/src/canister2/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/src/canister2/types.ts b/tests/end_to_end/candid_rpc/class_api/cross_canister_calls/src/canister2/types.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/src/canister2/types.ts rename to tests/end_to_end/candid_rpc/class_api/cross_canister_calls/src/canister2/types.ts diff --git a/tests/end_to_end/candid_rpc/class_api/cross_canister_calls/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/cross_canister_calls/test/pretest.ts new file mode 100644 index 0000000000..56caa7cf60 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/cross_canister_calls/test/pretest.ts @@ -0,0 +1,38 @@ +import { getCanisterId } from 'azle/dfx'; +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'cross_canister_calls' + ) + ); + + execSync(`dfx canister uninstall-code canister1 || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister uninstall-code canister2 || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister create canister2`, { + stdio: 'inherit' + }); + + execSync(`CANISTER2_PRINCIPAL=${getCanisterId('canister2')} dfx deploy`, { + stdio: 'inherit' + }); + + execSync(`dfx generate`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/cross_canister_calls/test/test.ts b/tests/end_to_end/candid_rpc/class_api/cross_canister_calls/test/test.ts new file mode 100644 index 0000000000..0ac7274130 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/cross_canister_calls/test/test.ts @@ -0,0 +1,20 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'cross_canister_calls_end_to_end_test_functional_api/test/tests'; + +import { createActor as createActorCanister1 } from './dfx_generated/canister1'; +import { createActor as createActorCanister2 } from './dfx_generated/canister2'; + +const canister1 = createActorCanister1(getCanisterId('canister1'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +const canister2 = createActorCanister2(getCanisterId('canister2'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(canister1, canister2)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/cross_canister_calls/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/cross_canister_calls/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/cycles/.gitignore b/tests/end_to_end/candid_rpc/class_api/cycles/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/cycles/.gitignore rename to tests/end_to_end/candid_rpc/class_api/cycles/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/cycles/dfx.json b/tests/end_to_end/candid_rpc/class_api/cycles/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/cycles/dfx.json rename to tests/end_to_end/candid_rpc/class_api/cycles/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/cycles/jest.config.js b/tests/end_to_end/candid_rpc/class_api/cycles/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/cycles/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/cycles/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/cycles/package-lock.json b/tests/end_to_end/candid_rpc/class_api/cycles/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/cycles/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/cycles/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/cycles/package.json b/tests/end_to_end/candid_rpc/class_api/cycles/package.json new file mode 100644 index 0000000000..122fb1892c --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/cycles/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "cycles_end_to_end_test_functional_api": "file:../../functional_api/cycles", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/cycles/src/cycles/index.did b/tests/end_to_end/candid_rpc/class_api/cycles/src/cycles/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/cycles/src/cycles/index.did rename to tests/end_to_end/candid_rpc/class_api/cycles/src/cycles/index.did diff --git a/tests/end_to_end/candid_rpc/class_syntax/cycles/src/cycles/index.ts b/tests/end_to_end/candid_rpc/class_api/cycles/src/cycles/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/cycles/src/cycles/index.ts rename to tests/end_to_end/candid_rpc/class_api/cycles/src/cycles/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/cycles/src/intermediary/index.ts b/tests/end_to_end/candid_rpc/class_api/cycles/src/intermediary/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/cycles/src/intermediary/index.ts rename to tests/end_to_end/candid_rpc/class_api/cycles/src/intermediary/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/cycles/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/cycles/test/pretest.ts new file mode 100644 index 0000000000..cb39b1348d --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/cycles/test/pretest.ts @@ -0,0 +1,35 @@ +import { getCanisterId } from 'azle/dfx'; +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join('tests', 'end_to_end', 'candid_rpc', 'functional_api', 'cycles') + ); + + execSync(`dfx canister uninstall-code cycles || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister uninstall-code intermediary || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy cycles`, { + stdio: 'inherit' + }); + + execSync( + `CYCLES_PRINCIPAL=${getCanisterId('cycles')} dfx deploy intermediary`, + { + stdio: 'inherit' + } + ); + + execSync(`dfx generate`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/cycles/test/test.ts b/tests/end_to_end/candid_rpc/class_api/cycles/test/test.ts new file mode 100644 index 0000000000..e61e7e4e5c --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/cycles/test/test.ts @@ -0,0 +1,25 @@ +// TODO If we want these tests to be more exact, we can check balances and make sure they are within some margin of error + +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'cycles_end_to_end_test_functional_api/test/tests'; + +import { createActor as createCyclesActor } from './dfx_generated/cycles'; +import { createActor as createIntermediaryActor } from './dfx_generated/intermediary'; + +const cyclesCanister = createCyclesActor(getCanisterId('cycles'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +const intermediaryCanister = createIntermediaryActor( + getCanisterId('intermediary'), + { + agentOptions: { + host: 'http://127.0.0.1:8000' + } + } +); + +runTests(getTests(cyclesCanister, intermediaryCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/cycles/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/cycles/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/cycles/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/cycles/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/date/.gitignore b/tests/end_to_end/candid_rpc/class_api/date/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/date/.gitignore rename to tests/end_to_end/candid_rpc/class_api/date/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/date/dfx.json b/tests/end_to_end/candid_rpc/class_api/date/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/date/dfx.json rename to tests/end_to_end/candid_rpc/class_api/date/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/date/jest.config.js b/tests/end_to_end/candid_rpc/class_api/date/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/date/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/date/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/date/package-lock.json b/tests/end_to_end/candid_rpc/class_api/date/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/date/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/date/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/date/package.json b/tests/end_to_end/candid_rpc/class_api/date/package.json new file mode 100644 index 0000000000..c3df3194e6 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/date/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "date_end_to_end_test_functional_api": "file:../../functional_api/date", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/date/src/index.ts b/tests/end_to_end/candid_rpc/class_api/date/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/date/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/date/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/date/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/date/test/pretest.ts new file mode 100644 index 0000000000..76a456de7a --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/date/test/pretest.ts @@ -0,0 +1,23 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join('tests', 'end_to_end', 'candid_rpc', 'functional_api', 'date') + ); + + execSync(`dfx canister uninstall-code date || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy date`, { + stdio: 'inherit' + }); + + execSync(`dfx generate date`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/date/test/test.ts b/tests/end_to_end/candid_rpc/class_api/date/test/test.ts new file mode 100644 index 0000000000..8047871df1 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/date/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'date_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/date'; + +const dateCanister = createActor(getCanisterId('date'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(dateCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/date/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/date/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/date/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/date/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/.gitignore b/tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/.gitignore rename to tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/dfx.json b/tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/dfx.json rename to tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/jest.config.js b/tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/package-lock.json b/tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/package.json b/tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/package.json new file mode 100644 index 0000000000..ef19420c6d --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "ETHEREUM_URL=https://rpc.ankr.com/eth tsx test/pretest.ts", + "test": "ETHEREUM_URL=https://rpc.ankr.com/eth jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "ethereum_json_rpc_end_to_end_test_functional_api": "file:../../functional_api/ethereum_json_rpc", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/src/index.ts b/tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/test/pretest.ts new file mode 100644 index 0000000000..d3ebdf9c5f --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/test/pretest.ts @@ -0,0 +1,32 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'ethereum_json_rpc' + ) + ); + + execSync(`dfx canister uninstall-code ethereum_json_rpc || true`, { + stdio: 'inherit' + }); + + execSync( + `dfx deploy ethereum_json_rpc --argument '("${process.env.ETHEREUM_URL}")'`, + { + stdio: 'inherit' + } + ); + + execSync(`dfx generate`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/test/test.ts b/tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/test/test.ts new file mode 100644 index 0000000000..326bfb711e --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/test/test.ts @@ -0,0 +1,24 @@ +// Ethereum genesis block balances taken from: https://raw.githubusercontent.com/lastmjs/eth-total-supply/master/nethermind-foundation.json + +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'ethereum_json_rpc_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/ethereum_json_rpc'; + +if (process.env.ETHEREUM_URL === undefined) { + throw new Error( + `No Ethereum URL set, did you set the ETHEREUM_URL environment variable?\nExample: ETHEREUM_URL=https://some-ethereum-provider-url.org npm test` + ); +} + +const ethereumJsonRpcCanister = createActor( + getCanisterId('ethereum_json_rpc'), + { + agentOptions: { + host: 'http://127.0.0.1:8000' + } + } +); + +runTests(getTests(ethereumJsonRpcCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/ethereum_json_rpc/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/func_types/.gitignore b/tests/end_to_end/candid_rpc/class_api/func_types/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/func_types/.gitignore rename to tests/end_to_end/candid_rpc/class_api/func_types/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/func_types/canisters/func_types/index.ts b/tests/end_to_end/candid_rpc/class_api/func_types/canisters/func_types/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/func_types/canisters/func_types/index.ts rename to tests/end_to_end/candid_rpc/class_api/func_types/canisters/func_types/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/func_types/canisters/notifiers/index.did b/tests/end_to_end/candid_rpc/class_api/func_types/canisters/notifiers/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/func_types/canisters/notifiers/index.did rename to tests/end_to_end/candid_rpc/class_api/func_types/canisters/notifiers/index.did diff --git a/tests/end_to_end/candid_rpc/class_syntax/func_types/canisters/notifiers/index.ts b/tests/end_to_end/candid_rpc/class_api/func_types/canisters/notifiers/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/func_types/canisters/notifiers/index.ts rename to tests/end_to_end/candid_rpc/class_api/func_types/canisters/notifiers/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/func_types/dfx.json b/tests/end_to_end/candid_rpc/class_api/func_types/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/func_types/dfx.json rename to tests/end_to_end/candid_rpc/class_api/func_types/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/func_types/jest.config.js b/tests/end_to_end/candid_rpc/class_api/func_types/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/func_types/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/func_types/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/func_types/package-lock.json b/tests/end_to_end/candid_rpc/class_api/func_types/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/func_types/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/func_types/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/func_types/package.json b/tests/end_to_end/candid_rpc/class_api/func_types/package.json new file mode 100644 index 0000000000..712f0286d1 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/func_types/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "func_types_end_to_end_test_functional_api": "file:../../functional_api/func_types", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_api/func_types/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/func_types/test/pretest.ts new file mode 100644 index 0000000000..2290d34259 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/func_types/test/pretest.ts @@ -0,0 +1,38 @@ +import { getCanisterId } from 'azle/dfx'; +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'func_types' + ) + ); + + execSync(`dfx canister uninstall-code func_types || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister uninstall-code notifiers || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister create notifiers || true`, { + stdio: 'inherit' + }); + + execSync(`NOTIFIERS_PRINCIPAL=${getCanisterId('notifiers')} dfx deploy`, { + stdio: 'inherit' + }); + + execSync(`dfx generate`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/func_types/test/test.ts b/tests/end_to_end/candid_rpc/class_api/func_types/test/test.ts new file mode 100644 index 0000000000..d1eeedf159 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/func_types/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'func_types_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/func_types'; + +const funcTypesCanister = createActor(getCanisterId('func_types'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(funcTypesCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/func_types/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/func_types/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/func_types/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/func_types/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/heartbeat/.gitignore b/tests/end_to_end/candid_rpc/class_api/heartbeat/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/heartbeat/.gitignore rename to tests/end_to_end/candid_rpc/class_api/heartbeat/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/heartbeat/dfx.json b/tests/end_to_end/candid_rpc/class_api/heartbeat/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/heartbeat/dfx.json rename to tests/end_to_end/candid_rpc/class_api/heartbeat/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/heartbeat/jest.config.js b/tests/end_to_end/candid_rpc/class_api/heartbeat/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/heartbeat/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/heartbeat/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/heartbeat/package-lock.json b/tests/end_to_end/candid_rpc/class_api/heartbeat/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/heartbeat/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/heartbeat/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/heartbeat/package.json b/tests/end_to_end/candid_rpc/class_api/heartbeat/package.json new file mode 100644 index 0000000000..e551966d4b --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/heartbeat/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "heartbeat_end_to_end_test_functional_api": "file:../../functional_api/heartbeat", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/heartbeat/src/heartbeat_async/index.ts b/tests/end_to_end/candid_rpc/class_api/heartbeat/src/heartbeat_async/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/heartbeat/src/heartbeat_async/index.ts rename to tests/end_to_end/candid_rpc/class_api/heartbeat/src/heartbeat_async/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/heartbeat/src/heartbeat_sync/index.ts b/tests/end_to_end/candid_rpc/class_api/heartbeat/src/heartbeat_sync/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/heartbeat/src/heartbeat_sync/index.ts rename to tests/end_to_end/candid_rpc/class_api/heartbeat/src/heartbeat_sync/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/heartbeat/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/heartbeat/test/pretest.ts new file mode 100644 index 0000000000..2ac126099d --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/heartbeat/test/pretest.ts @@ -0,0 +1,27 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join('tests', 'end_to_end', 'candid_rpc', 'functional_api', 'heartbeat') + ); + + execSync(`dfx canister uninstall-code heartbeat_async || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister uninstall-code heartbeat_sync || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy`, { + stdio: 'inherit' + }); + + execSync(`dfx generate`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/heartbeat/test/test.ts b/tests/end_to_end/candid_rpc/class_api/heartbeat/test/test.ts new file mode 100644 index 0000000000..41d967feb5 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/heartbeat/test/test.ts @@ -0,0 +1,26 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'heartbeat_end_to_end_test_functional_api/test/tests'; + +import { createActor as createActorHeartbeatAsync } from './dfx_generated/heartbeat_async'; +import { createActor as createActorHeartbeatSync } from './dfx_generated/heartbeat_sync'; + +const heartbeatAsyncCanister = createActorHeartbeatAsync( + getCanisterId('heartbeat_async'), + { + agentOptions: { + host: 'http://127.0.0.1:8000' + } + } +); + +const heartbeatSyncCanister = createActorHeartbeatSync( + getCanisterId('heartbeat_sync'), + { + agentOptions: { + host: 'http://127.0.0.1:8000' + } + } +); + +runTests(getTests(heartbeatAsyncCanister, heartbeatSyncCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/heartbeat/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/heartbeat/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/heartbeat/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/heartbeat/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/ic_api/.gitignore b/tests/end_to_end/candid_rpc/class_api/ic_api/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ic_api/.gitignore rename to tests/end_to_end/candid_rpc/class_api/ic_api/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/ic_api/dfx.json b/tests/end_to_end/candid_rpc/class_api/ic_api/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ic_api/dfx.json rename to tests/end_to_end/candid_rpc/class_api/ic_api/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/ic_api/jest.config.js b/tests/end_to_end/candid_rpc/class_api/ic_api/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ic_api/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/ic_api/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/ic_api/package-lock.json b/tests/end_to_end/candid_rpc/class_api/ic_api/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ic_api/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/ic_api/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/ic_api/package.json b/tests/end_to_end/candid_rpc/class_api/ic_api/package.json new file mode 100644 index 0000000000..dec1e1321c --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/ic_api/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "ic_api_end_to_end_test_functional_api": "file:../../functional_api/ic_api", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/ic_api/src/index.ts b/tests/end_to_end/candid_rpc/class_api/ic_api/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ic_api/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/ic_api/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/ic_api/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/ic_api/test/pretest.ts new file mode 100644 index 0000000000..6c17843dab --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/ic_api/test/pretest.ts @@ -0,0 +1,23 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join('tests', 'end_to_end', 'candid_rpc', 'functional_api', 'ic_api') + ); + + execSync(`dfx canister uninstall-code ic_api || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy ic_api`, { + stdio: 'inherit' + }); + + execSync(`dfx generate ic_api`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/ic_api/test/test.ts b/tests/end_to_end/candid_rpc/class_api/ic_api/test/test.ts new file mode 100644 index 0000000000..8222e979e0 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/ic_api/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'ic_api_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/ic_api'; + +const icApiCanister = createActor(getCanisterId('ic_api'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(icApiCanister as any)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/ic_api/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/ic_api/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ic_api/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/ic_api/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/icrc/.gitignore b/tests/end_to_end/candid_rpc/class_api/icrc/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/icrc/.gitignore rename to tests/end_to_end/candid_rpc/class_api/icrc/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/icrc/README.md b/tests/end_to_end/candid_rpc/class_api/icrc/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/icrc/README.md rename to tests/end_to_end/candid_rpc/class_api/icrc/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/icrc/canisters/proxy/index.ts b/tests/end_to_end/candid_rpc/class_api/icrc/canisters/proxy/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/icrc/canisters/proxy/index.ts rename to tests/end_to_end/candid_rpc/class_api/icrc/canisters/proxy/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/icrc/dfx.json b/tests/end_to_end/candid_rpc/class_api/icrc/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/icrc/dfx.json rename to tests/end_to_end/candid_rpc/class_api/icrc/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/icrc/jest.config.js b/tests/end_to_end/candid_rpc/class_api/icrc/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/icrc/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/icrc/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/icrc/package-lock.json b/tests/end_to_end/candid_rpc/class_api/icrc/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/icrc/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/icrc/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/icrc/package.json b/tests/end_to_end/candid_rpc/class_api/icrc/package.json new file mode 100644 index 0000000000..35189e3f82 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/icrc/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.14.1", + "icrc_end_to_end_test_functional_api": "file:../../functional_api/icrc", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/icrc/params.did b/tests/end_to_end/candid_rpc/class_api/icrc/params.did similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/icrc/params.did rename to tests/end_to_end/candid_rpc/class_api/icrc/params.did diff --git a/tests/end_to_end/candid_rpc/class_api/icrc/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/icrc/test/pretest.ts new file mode 100644 index 0000000000..f70853138f --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/icrc/test/pretest.ts @@ -0,0 +1,44 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(icrcPath: string): void { + linkAndInstallPatch( + join('tests', 'end_to_end', 'candid_rpc', 'functional_api', 'icrc') + ); + + execSync(`dfx canister uninstall-code proxy || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister uninstall-code icrc || true`, { + stdio: 'inherit' + }); + + execSync( + `rm -rf ${icrcPath} && cd canisters && git clone https://github.com/dfinity/ICRC-1 && cd ICRC-1 && rm -rf .git`, + { + stdio: 'inherit' + } + ); + + execSync( + `dfx deploy --argument "($(cat params.did | tr -s '\n' ' '))" icrc --specified-id rrkah-fqaaa-aaaaa-aaaaq-cai`, + { + stdio: 'inherit' + } + ); + + execSync( + `ICRC_PRINCIPAL=rrkah-fqaaa-aaaaa-aaaaq-cai dfx deploy proxy --specified-id r7inp-6aaaa-aaaaa-aaabq-cai`, + { + stdio: 'inherit' + } + ); + + execSync(`dfx generate proxy`, { + stdio: 'inherit' + }); +} + +pretest('canisters/ICRC-1'); diff --git a/tests/end_to_end/candid_rpc/class_api/icrc/test/test.ts b/tests/end_to_end/candid_rpc/class_api/icrc/test/test.ts new file mode 100644 index 0000000000..f25e4acc98 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/icrc/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'icrc_end_to_end_test_functional_api/test/tests'; + +import { createActor } from '../test/dfx_generated/proxy'; + +const proxyCanister = createActor(getCanisterId('proxy'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(proxyCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/icrc/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/icrc/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/icrc/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/icrc/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/imports/.gitignore b/tests/end_to_end/candid_rpc/class_api/imports/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/imports/.gitignore rename to tests/end_to_end/candid_rpc/class_api/imports/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/imports/dfx.json b/tests/end_to_end/candid_rpc/class_api/imports/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/imports/dfx.json rename to tests/end_to_end/candid_rpc/class_api/imports/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/imports/jest.config.js b/tests/end_to_end/candid_rpc/class_api/imports/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/imports/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/imports/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/imports/package-lock.json b/tests/end_to_end/candid_rpc/class_api/imports/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/imports/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/imports/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/imports/package.json b/tests/end_to_end/candid_rpc/class_api/imports/package.json new file mode 100644 index 0000000000..92d86ab41b --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/imports/package.json @@ -0,0 +1,18 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0", + "js-sha256": "0.9.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "imports_end_to_end_test_functional_api": "file:../../functional_api/imports", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/imports/src/index.ts b/tests/end_to_end/candid_rpc/class_api/imports/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/imports/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/imports/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/imports/src/library.ts b/tests/end_to_end/candid_rpc/class_api/imports/src/library.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/imports/src/library.ts rename to tests/end_to_end/candid_rpc/class_api/imports/src/library.ts diff --git a/tests/end_to_end/candid_rpc/class_api/imports/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/imports/test/pretest.ts new file mode 100644 index 0000000000..da9a2d0fab --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/imports/test/pretest.ts @@ -0,0 +1,23 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join('tests', 'end_to_end', 'candid_rpc', 'functional_api', 'imports') + ); + + execSync(`dfx canister uninstall-code imports || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy imports`, { + stdio: 'inherit' + }); + + execSync(`dfx generate imports`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/imports/test/test.ts b/tests/end_to_end/candid_rpc/class_api/imports/test/test.ts new file mode 100644 index 0000000000..f730008503 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/imports/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'imports_end_to_end_test_functional_api/test/tests'; + +import { createActor } from '../test/dfx_generated/imports'; + +const importsCanister = createActor(getCanisterId('imports'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(importsCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/imports/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/imports/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/imports/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/imports/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/init/.gitignore b/tests/end_to_end/candid_rpc/class_api/init/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/init/.gitignore rename to tests/end_to_end/candid_rpc/class_api/init/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/init/dfx.json b/tests/end_to_end/candid_rpc/class_api/init/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/init/dfx.json rename to tests/end_to_end/candid_rpc/class_api/init/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/init/jest.config.js b/tests/end_to_end/candid_rpc/class_api/init/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/init/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/init/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/init/package-lock.json b/tests/end_to_end/candid_rpc/class_api/init/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/init/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/init/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/init/package.json b/tests/end_to_end/candid_rpc/class_api/init/package.json new file mode 100644 index 0000000000..a7a3de8867 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/init/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^1.4.0", + "init_end_to_end_test_functional_api": "file:../../functional_api/init", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/init/src/index.ts b/tests/end_to_end/candid_rpc/class_api/init/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/init/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/init/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/init/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/init/test/pretest.ts new file mode 100644 index 0000000000..2fef146176 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/init/test/pretest.ts @@ -0,0 +1,26 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join('tests', 'end_to_end', 'candid_rpc', 'functional_api', 'init') + ); + + execSync(`dfx canister uninstall-code init || true`, { + stdio: 'inherit' + }); + + execSync( + `dfx deploy init --argument '(record { id = "0" }, variant { Fire }, principal "rrkah-fqaaa-aaaaa-aaaaq-cai")'`, + { + stdio: 'inherit' + } + ); + + execSync(`dfx generate init`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/init/test/test.ts b/tests/end_to_end/candid_rpc/class_api/init/test/test.ts new file mode 100644 index 0000000000..f8c34b8849 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/init/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'init_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/init'; + +const initCanister = createActor(getCanisterId('init'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(initCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/init/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/init/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/init/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/init/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/inspect_message/.gitignore b/tests/end_to_end/candid_rpc/class_api/inspect_message/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/inspect_message/.gitignore rename to tests/end_to_end/candid_rpc/class_api/inspect_message/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/inspect_message/dfx.json b/tests/end_to_end/candid_rpc/class_api/inspect_message/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/inspect_message/dfx.json rename to tests/end_to_end/candid_rpc/class_api/inspect_message/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/inspect_message/jest.config.js b/tests/end_to_end/candid_rpc/class_api/inspect_message/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/inspect_message/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/inspect_message/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/inspect_message/package-lock.json b/tests/end_to_end/candid_rpc/class_api/inspect_message/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/inspect_message/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/inspect_message/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/inspect_message/package.json b/tests/end_to_end/candid_rpc/class_api/inspect_message/package.json new file mode 100644 index 0000000000..5ab64c71e4 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/inspect_message/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "inspect_message_end_to_end_test_functional_api": "file:../../functional_api/inspect_message", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/inspect_message/src/index.ts b/tests/end_to_end/candid_rpc/class_api/inspect_message/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/inspect_message/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/inspect_message/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/inspect_message/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/inspect_message/test/pretest.ts new file mode 100644 index 0000000000..1c23bd4fca --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/inspect_message/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'inspect_message' + ) + ); + + execSync(`dfx canister uninstall-code inspect_message || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy inspect_message`, { + stdio: 'inherit' + }); + + execSync(`dfx generate inspect_message`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/inspect_message/test/test.ts b/tests/end_to_end/candid_rpc/class_api/inspect_message/test/test.ts new file mode 100644 index 0000000000..008e4e4851 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/inspect_message/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'inspect_message_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/inspect_message'; + +const inspectMessageCanister = createActor(getCanisterId('inspect_message'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(inspectMessageCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/inspect_message/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/inspect_message/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/inspect_message/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/inspect_message/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/key_value_store/.gitignore b/tests/end_to_end/candid_rpc/class_api/key_value_store/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/key_value_store/.gitignore rename to tests/end_to_end/candid_rpc/class_api/key_value_store/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/key_value_store/dfx.json b/tests/end_to_end/candid_rpc/class_api/key_value_store/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/key_value_store/dfx.json rename to tests/end_to_end/candid_rpc/class_api/key_value_store/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/key_value_store/jest.config.js b/tests/end_to_end/candid_rpc/class_api/key_value_store/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/key_value_store/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/key_value_store/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/key_value_store/package-lock.json b/tests/end_to_end/candid_rpc/class_api/key_value_store/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/key_value_store/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/key_value_store/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/key_value_store/package.json b/tests/end_to_end/candid_rpc/class_api/key_value_store/package.json new file mode 100644 index 0000000000..fdd0b96eec --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/key_value_store/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "key_value_store_end_to_end_test_functional_api": "file:../../functional_api/key_value_store", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/key_value_store/src/index.ts b/tests/end_to_end/candid_rpc/class_api/key_value_store/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/key_value_store/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/key_value_store/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/key_value_store/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/key_value_store/test/pretest.ts new file mode 100644 index 0000000000..0663f8a69c --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/key_value_store/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'key_value_store' + ) + ); + + execSync(`dfx canister uninstall-code key_value_store || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy key_value_store`, { + stdio: 'inherit' + }); + + execSync(`dfx generate key_value_store`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/key_value_store/test/test.ts b/tests/end_to_end/candid_rpc/class_api/key_value_store/test/test.ts new file mode 100644 index 0000000000..bd81480015 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/key_value_store/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'key_value_store_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/key_value_store'; + +const keyValueStoreCanister = createActor(getCanisterId('key_value_store'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(keyValueStoreCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/key_value_store/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/key_value_store/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/key_value_store/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/key_value_store/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/.gitignore b/tests/end_to_end/candid_rpc/class_api/ledger_canister/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ledger_canister/.gitignore rename to tests/end_to_end/candid_rpc/class_api/ledger_canister/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/dfx.json b/tests/end_to_end/candid_rpc/class_api/ledger_canister/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ledger_canister/dfx.json rename to tests/end_to_end/candid_rpc/class_api/ledger_canister/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/jest.config.js b/tests/end_to_end/candid_rpc/class_api/ledger_canister/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ledger_canister/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/ledger_canister/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/package-lock.json b/tests/end_to_end/candid_rpc/class_api/ledger_canister/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ledger_canister/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/ledger_canister/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/ledger_canister/package.json b/tests/end_to_end/candid_rpc/class_api/ledger_canister/package.json new file mode 100644 index 0000000000..e3edc66781 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/ledger_canister/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ledger_canister_end_to_end_test_functional_api": "file:../../functional_api/ledger_canister", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/src/icp_ledger/ledger.private.did b/tests/end_to_end/candid_rpc/class_api/ledger_canister/src/icp_ledger/ledger.private.did similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ledger_canister/src/icp_ledger/ledger.private.did rename to tests/end_to_end/candid_rpc/class_api/ledger_canister/src/icp_ledger/ledger.private.did diff --git a/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/src/icp_ledger/ledger.public.did b/tests/end_to_end/candid_rpc/class_api/ledger_canister/src/icp_ledger/ledger.public.did similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ledger_canister/src/icp_ledger/ledger.public.did rename to tests/end_to_end/candid_rpc/class_api/ledger_canister/src/icp_ledger/ledger.public.did diff --git a/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/src/ledger_canister/index.ts b/tests/end_to_end/candid_rpc/class_api/ledger_canister/src/ledger_canister/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ledger_canister/src/ledger_canister/index.ts rename to tests/end_to_end/candid_rpc/class_api/ledger_canister/src/ledger_canister/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/ledger_canister/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/ledger_canister/test/pretest.ts new file mode 100644 index 0000000000..e8e81f7d93 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/ledger_canister/test/pretest.ts @@ -0,0 +1,69 @@ +import { getCanisterId } from 'azle/dfx'; +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(icp_ledger_path: string): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'ledger_canister' + ) + ); + + execSync(`dfx canister uninstall-code icp_ledger || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister uninstall-code ledger_canister || true`, { + stdio: 'inherit' + }); + + execSync(`mkdir -p ${icp_ledger_path}`, { + stdio: 'inherit' + }); + + execSync( + `cd ${icp_ledger_path} && curl -o ledger.wasm.gz https://download.dfinity.systems/ic/d6d395a480cd6986b4788f4aafffc5c03a07e46e/canisters/ledger-canister_notify-method.wasm.gz`, + { + stdio: 'inherit' + } + ); + + execSync(`cd ${icp_ledger_path} && gunzip -f ledger.wasm.gz`, { + stdio: 'inherit' + }); + + execSync(`dfx canister create ledger_canister || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister create icp_ledger || true`, { + stdio: 'inherit' + }); + + execSync( + `ICP_CANISTER_PRINCIPAL=${getCanisterId( + 'icp_ledger' + )} dfx deploy ledger_canister`, + { + stdio: 'inherit' + } + ); + + execSync( + `dfx deploy icp_ledger --argument='(record {minting_account = "'$(dfx ledger account-id)'"; initial_values = vec { record { "'$(dfx ledger account-id --of-canister ledger_canister)'"; record { e8s=100_000_000_000 } }; }; send_whitelist = vec {}})'`, + { + stdio: 'inherit' + } + ); + + execSync(`dfx generate ledger_canister`, { + stdio: 'inherit' + }); +} + +pretest('src/icp_ledger'); diff --git a/tests/end_to_end/candid_rpc/class_api/ledger_canister/test/test.ts b/tests/end_to_end/candid_rpc/class_api/ledger_canister/test/test.ts new file mode 100644 index 0000000000..8b80bf0785 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/ledger_canister/test/test.ts @@ -0,0 +1,16 @@ +// TODO write tests for all ICRC functionality +// TODO test all errors for query blocks + +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'ledger_canister_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/ledger_canister'; + +const ledgerCanister = createActor(getCanisterId('ledger_canister'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(ledgerCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/ledger_canister/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/ledger_canister/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/ledger_canister/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/.gitignore b/tests/end_to_end/candid_rpc/class_api/list_of_lists/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/list_of_lists/.gitignore rename to tests/end_to_end/candid_rpc/class_api/list_of_lists/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/dfx.json b/tests/end_to_end/candid_rpc/class_api/list_of_lists/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/list_of_lists/dfx.json rename to tests/end_to_end/candid_rpc/class_api/list_of_lists/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/jest.config.js b/tests/end_to_end/candid_rpc/class_api/list_of_lists/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/list_of_lists/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/list_of_lists/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/package-lock.json b/tests/end_to_end/candid_rpc/class_api/list_of_lists/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/list_of_lists/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/list_of_lists/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/list_of_lists/package.json b/tests/end_to_end/candid_rpc/class_api/list_of_lists/package.json new file mode 100644 index 0000000000..e80a7b8e47 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/list_of_lists/package.json @@ -0,0 +1,18 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "fast-equals": "^5.0.1", + "jest": "^29.7.0", + "list_of_lists_end_to_end_test_functional_api": "file:../../functional_api/list_of_lists", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/src/index.ts b/tests/end_to_end/candid_rpc/class_api/list_of_lists/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/list_of_lists/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/list_of_lists/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/list_of_lists/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/list_of_lists/test/pretest.ts new file mode 100644 index 0000000000..a02f728a81 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/list_of_lists/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'list_of_lists' + ) + ); + + execSync(`dfx canister uninstall-code list_of_lists || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy list_of_lists`, { + stdio: 'inherit' + }); + + execSync(`dfx generate list_of_lists`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/list_of_lists/test/test.ts b/tests/end_to_end/candid_rpc/class_api/list_of_lists/test/test.ts new file mode 100644 index 0000000000..3488ef974c --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/list_of_lists/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'list_of_lists_end_to_end_test_functional_api/test/tests'; + +import { createActor } from '../dfx_generated/list_of_lists'; + +const listOfListsCanister = createActor(getCanisterId('list_of_lists'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(listOfListsCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/list_of_lists/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/list_of_lists/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/list_of_lists/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/management_canister/.gitignore b/tests/end_to_end/candid_rpc/class_api/management_canister/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/management_canister/.gitignore rename to tests/end_to_end/candid_rpc/class_api/management_canister/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/management_canister/dfx.json b/tests/end_to_end/candid_rpc/class_api/management_canister/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/management_canister/dfx.json rename to tests/end_to_end/candid_rpc/class_api/management_canister/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/management_canister/jest.config.js b/tests/end_to_end/candid_rpc/class_api/management_canister/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/management_canister/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/management_canister/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/management_canister/package-lock.json b/tests/end_to_end/candid_rpc/class_api/management_canister/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/management_canister/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/management_canister/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/management_canister/package.json b/tests/end_to_end/candid_rpc/class_api/management_canister/package.json new file mode 100644 index 0000000000..69b05244eb --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/management_canister/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "management_canister_end_to_end_test_functional_api": "file:../../functional_api/management_canister", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/management_canister/src/index.ts b/tests/end_to_end/candid_rpc/class_api/management_canister/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/management_canister/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/management_canister/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/management_canister/src/test.wasm b/tests/end_to_end/candid_rpc/class_api/management_canister/src/test.wasm similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/management_canister/src/test.wasm rename to tests/end_to_end/candid_rpc/class_api/management_canister/src/test.wasm diff --git a/tests/end_to_end/candid_rpc/class_api/management_canister/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/management_canister/test/pretest.ts new file mode 100644 index 0000000000..a85114a56e --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/management_canister/test/pretest.ts @@ -0,0 +1,36 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'management_canister' + ) + ); + + execSync(`dfx canister uninstall-code management_canister || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy`, { + stdio: 'inherit' + }); + + execSync( + `dfx ledger fabricate-cycles --canister management_canister --cycles 100000000000000`, + { + stdio: 'inherit' + } + ); + + execSync(`dfx generate`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/management_canister/test/test.ts b/tests/end_to_end/candid_rpc/class_api/management_canister/test/test.ts new file mode 100644 index 0000000000..49996d6cc4 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/management_canister/test/test.ts @@ -0,0 +1,15 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'management_canister_end_to_end_test_functional_api/test/tests'; + +import { createActor } from '../test/dfx_generated/management_canister'; + +const canisterName = 'management_canister'; + +const managementCanister = createActor(getCanisterId(canisterName), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(managementCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/management_canister/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/management_canister/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/management_canister/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/management_canister/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/manual_reply/.gitignore b/tests/end_to_end/candid_rpc/class_api/manual_reply/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/manual_reply/.gitignore rename to tests/end_to_end/candid_rpc/class_api/manual_reply/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/manual_reply/dfx.json b/tests/end_to_end/candid_rpc/class_api/manual_reply/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/manual_reply/dfx.json rename to tests/end_to_end/candid_rpc/class_api/manual_reply/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/manual_reply/jest.config.js b/tests/end_to_end/candid_rpc/class_api/manual_reply/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/manual_reply/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/manual_reply/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/manual_reply/package-lock.json b/tests/end_to_end/candid_rpc/class_api/manual_reply/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/manual_reply/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/manual_reply/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/manual_reply/package.json b/tests/end_to_end/candid_rpc/class_api/manual_reply/package.json new file mode 100644 index 0000000000..5181c56182 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/manual_reply/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "manual_reply_end_to_end_test_functional_api": "file:../../functional_api/manual_reply", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/manual_reply/src/index.ts b/tests/end_to_end/candid_rpc/class_api/manual_reply/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/manual_reply/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/manual_reply/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/manual_reply/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/manual_reply/test/pretest.ts new file mode 100644 index 0000000000..6249f44c3e --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/manual_reply/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'manual_reply' + ) + ); + + execSync(`dfx canister uninstall-code manual_reply || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy manual_reply`, { + stdio: 'inherit' + }); + + execSync(`dfx generate manual_reply`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/manual_reply/test/test.ts b/tests/end_to_end/candid_rpc/class_api/manual_reply/test/test.ts new file mode 100644 index 0000000000..9c4d906ea3 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/manual_reply/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'manual_reply_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/manual_reply'; + +const manualReplyCanister = createActor(getCanisterId('manual_reply'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(manualReplyCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/manual_reply/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/manual_reply/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/manual_reply/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/manual_reply/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/README.md b/tests/end_to_end/candid_rpc/class_api/motoko_examples/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/README.md rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/.gitignore b/tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/.gitignore rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/README.md b/tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/README.md rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/dfx.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/dfx.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/jest.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/package-lock.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/package.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/package.json new file mode 100644 index 0000000000..7546ed8c61 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "calc_end_to_end_test_functional_api": "file:../../../functional_api/motoko_examples/calc", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/src/index.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/test/pretest.ts new file mode 100644 index 0000000000..aadb3fac58 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/test/pretest.ts @@ -0,0 +1,30 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'motoko_examples', + 'calc' + ) + ); + + execSync(`dfx canister uninstall-code calc || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy calc`, { + stdio: 'inherit' + }); + + execSync(`dfx generate calc`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/test/test.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/test/test.ts new file mode 100644 index 0000000000..21609c4cd8 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/test/test.ts @@ -0,0 +1,14 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'calc_end_to_end_test_functional_api/test/tests'; + +// @ts-ignore +import { createActor } from './dfx_generated/calc'; + +const calcCanister = createActor(getCanisterId('calc'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(calcCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/calc/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/.gitignore b/tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/.gitignore rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/README.md b/tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/README.md rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/dfx.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/dfx.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/jest.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/package-lock.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/package.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/package.json new file mode 100644 index 0000000000..5c0ae092f8 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "counter_end_to_end_test_functional_api": "file:../../../functional_api/motoko_examples/counter", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/src/index.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/test/pretest.ts new file mode 100644 index 0000000000..13a647d5d2 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/test/pretest.ts @@ -0,0 +1,30 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'motoko_examples', + 'counter' + ) + ); + + execSync(`dfx canister uninstall-code counter || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy counter`, { + stdio: 'inherit' + }); + + execSync(`dfx generate counter`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/test/test.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/test/test.ts new file mode 100644 index 0000000000..dfabc6edb3 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/test/test.ts @@ -0,0 +1,14 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'counter_end_to_end_test_functional_api/test/tests'; + +// @ts-ignore +import { createActor } from './dfx_generated/counter'; + +const counterCanister = createActor(getCanisterId('counter'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(counterCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/counter/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/.gitignore b/tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/.gitignore rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/README.md b/tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/README.md rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/dfx.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/dfx.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/jest.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/package-lock.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/package.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/package.json new file mode 100644 index 0000000000..57e936c5f4 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "echo_end_to_end_test_functional_api": "file:../../../functional_api/motoko_examples/echo", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/src/index.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/test/pretest.ts new file mode 100644 index 0000000000..ffb196fc11 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/test/pretest.ts @@ -0,0 +1,30 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'motoko_examples', + 'echo' + ) + ); + + execSync(`dfx canister uninstall-code echo || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy echo`, { + stdio: 'inherit' + }); + + execSync(`dfx generate echo`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/test/test.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/test/test.ts new file mode 100644 index 0000000000..ea8b5fc547 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/test/test.ts @@ -0,0 +1,14 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'echo_end_to_end_test_functional_api/test/tests'; + +// @ts-ignore +import { createActor } from './dfx_generated/echo'; + +const echoCanister = createActor(getCanisterId('echo'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(echoCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/echo/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/.gitignore b/tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/.gitignore rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/README.md b/tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/README.md rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/dfx.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/dfx.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/jest.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/package-lock.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/package.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/package.json new file mode 100644 index 0000000000..80c7b35deb --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "factorial_end_to_end_test_functional_api": "file:../../../functional_api/motoko_examples/factorial", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/src/index.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/test/pretest.ts new file mode 100644 index 0000000000..17fc797936 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/test/pretest.ts @@ -0,0 +1,30 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'motoko_examples', + 'factorial' + ) + ); + + execSync(`dfx canister uninstall-code factorial || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy factorial`, { + stdio: 'inherit' + }); + + execSync(`dfx generate factorial`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/test/test.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/test/test.ts new file mode 100644 index 0000000000..4b200b507c --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/test/test.ts @@ -0,0 +1,14 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'factorial_end_to_end_test_functional_api/test/tests'; + +// @ts-ignore +import { createActor } from './dfx_generated/factorial'; + +const factorialCanister = createActor(getCanisterId('factorial'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(factorialCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/factorial/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/.gitignore b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/.gitignore rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/README.md b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/README.md rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/dfx.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/dfx.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/jest.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/package-lock.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/package.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/package.json new file mode 100644 index 0000000000..f748d678d8 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "hello-world_end_to_end_test_functional_api": "file:../../../functional_api/motoko_examples/hello-world", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/src/index.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/test/pretest.ts new file mode 100644 index 0000000000..10ab983f4c --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/test/pretest.ts @@ -0,0 +1,30 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'motoko_examples', + 'hello-world' + ) + ); + + execSync(`dfx canister uninstall-code hello_world || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy hello_world`, { + stdio: 'inherit' + }); + + execSync(`dfx generate hello_world`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/test/test.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/test/test.ts new file mode 100644 index 0000000000..ac76f5c82b --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/test/test.ts @@ -0,0 +1,14 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'hello-world_end_to_end_test_functional_api/test/tests'; + +// @ts-ignore +import { createActor } from './dfx_generated/hello_world'; + +const helloWorldCanister = createActor(getCanisterId('hello_world'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(helloWorldCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello-world/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/.gitignore b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/.gitignore rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/NOTICE b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/NOTICE similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/NOTICE rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/NOTICE diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/README.md b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/README.md rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/dfx.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/dfx.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/jest.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/package-lock.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/package.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/package.json new file mode 100644 index 0000000000..8c1b312fe5 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/package.json @@ -0,0 +1,50 @@ +{ + "version": "0.1.0", + "description": "Internet Computer starter application", + "keywords": [ + "Internet Computer", + "Motoko", + "JavaScript", + "Canister" + ], + "scripts": { + "build": "webpack", + "prebuild": "npm run generate", + "start": "webpack serve --mode development --env development", + "prestart": "npm run generate", + "generate": "dfx generate hello", + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.0", + "@dfinity/candid": "^0.19.0", + "@dfinity/principal": "^0.19.0", + "assert": "^2.0.0", + "buffer": "^6.0.3", + "copy-webpack-plugin": "^11.0.0", + "events": "^3.3.0", + "hello_end_to_end_test_functional_api": "file:../../../functional_api/motoko_examples/hello", + "html-webpack-plugin": "^5.5.0", + "jest": "^29.7.0", + "process": "^0.11.10", + "stream-browserify": "^3.0.0", + "terser-webpack-plugin": "^5.3.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2", + "util": "^0.12.0", + "webpack": "^5.88.0", + "webpack-cli": "^5.1.0", + "webpack-dev-server": "^4.15.0" + }, + "browserslist": [ + "last 2 chrome version", + "last 2 firefox version", + "last 2 safari version", + "last 2 edge version" + ] +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/src/hello/index.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/src/hello/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/src/hello/index.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/src/hello/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/src/hello_assets/assets/favicon.ico b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/src/hello_assets/assets/favicon.ico similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/src/hello_assets/assets/favicon.ico rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/src/hello_assets/assets/favicon.ico diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/src/hello_assets/assets/logo.png b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/src/hello_assets/assets/logo.png similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/src/hello_assets/assets/logo.png rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/src/hello_assets/assets/logo.png diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/src/hello_assets/assets/main.css b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/src/hello_assets/assets/main.css similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/src/hello_assets/assets/main.css rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/src/hello_assets/assets/main.css diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/src/hello_assets/assets/sample-asset.txt b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/src/hello_assets/assets/sample-asset.txt similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/src/hello_assets/assets/sample-asset.txt rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/src/hello_assets/assets/sample-asset.txt diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/src/hello_assets/src/index.html b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/src/hello_assets/src/index.html similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/src/hello_assets/src/index.html rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/src/hello_assets/src/index.html diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/src/hello_assets/src/index.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/src/hello_assets/src/index.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/src/hello_assets/src/index.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/src/hello_assets/src/index.js diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/test/pretest.ts new file mode 100644 index 0000000000..6c57e8e162 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/test/pretest.ts @@ -0,0 +1,30 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'motoko_examples', + 'hello' + ) + ); + + execSync(`dfx canister uninstall-code hello || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy hello`, { + stdio: 'inherit' + }); + + execSync(`dfx generate hello`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/test/test.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/test/test.ts new file mode 100644 index 0000000000..48a4dbce34 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/test/test.ts @@ -0,0 +1,14 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'hello_end_to_end_test_functional_api/test/tests'; + +// @ts-ignore +import { createActor } from '../dfx_generated/hello'; + +const helloCanister = createActor(getCanisterId('hello'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(helloCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/webpack.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/webpack.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/webpack.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/hello/webpack.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/.gitignore b/tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/.gitignore rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/NOTICE b/tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/NOTICE similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/NOTICE rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/NOTICE diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/README.md b/tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/README.md rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/dfx.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/dfx.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/jest.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/package-lock.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/package.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/package.json new file mode 100644 index 0000000000..ec16a80063 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/package.json @@ -0,0 +1,25 @@ +{ + "version": "0.1.0", + "description": "Reimplementation of the [Motoko Http Counter example](https://github.com/dfinity/examples/tree/master/motoko/http_counter)", + "keywords": [ + "Internet Computer", + "TypeScript", + "Canister", + "JavaScript" + ], + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.0", + "http_counter_end_to_end_test_functional_api": "file:../../../functional_api/motoko_examples/http_counter", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/src/index.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/test/pretest.ts new file mode 100644 index 0000000000..8cbe4bbabd --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/test/pretest.ts @@ -0,0 +1,26 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'motoko_examples', + 'http_counter' + ) + ); + + execSync(`dfx canister uninstall-code http_counter || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy http_counter`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/test/test.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/test/test.ts new file mode 100644 index 0000000000..a1691884c4 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/test/test.ts @@ -0,0 +1,4 @@ +import { runTests } from 'azle/test'; +import { getTests } from 'http_counter_end_to_end_test_functional_api/test/tests'; + +runTests(getTests()); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/http_counter/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/.gitignore b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/.gitignore rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/NOTICE b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/NOTICE similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/NOTICE rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/NOTICE diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/README.md b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/README.md rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/dfx.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/dfx.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/jest.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/package-lock.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/package.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/package.json new file mode 100644 index 0000000000..be166b56cb --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/package.json @@ -0,0 +1,48 @@ +{ + "version": "0.1.0", + "description": "Reimplementation of the [Motoko Minimalistic Dapp example](https://github.com/dfinity/examples/tree/master/motoko/minimal-counter-dapp)", + "keywords": [ + "Internet Computer", + "TypeScript", + "Canister", + "JavaScript" + ], + "scripts": { + "build": "webpack", + "prebuild": "npm run generate", + "start": "webpack serve --mode development --env development", + "prestart": "npm run generate", + "generate": "dfx generate minimal_dapp", + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.0", + "@dfinity/candid": "^0.19.0", + "@dfinity/principal": "^0.19.0", + "assert": "^2.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "html-webpack-plugin": "^5.5.0", + "jest": "^29.7.0", + "minimal-counter-dapp_end_to_end_test_functional_api": "file:../../../functional_api/motoko_examples/minimal-counter-dapp", + "process": "^0.11.10", + "stream-browserify": "^3.0.0", + "terser-webpack-plugin": "^5.3.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "util": "^0.12.0", + "webpack": "^5.88.0", + "webpack-cli": "^5.1.0", + "webpack-dev-server": "^4.15.0" + }, + "browserslist": [ + "last 2 chrome version", + "last 2 firefox version", + "last 2 safari version", + "last 2 edge version" + ] +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp/index.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp/index.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/logo.png b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/logo.png similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/logo.png rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/logo.png diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/main.css b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/main.css similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/main.css rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/main.css diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/sample-asset.txt b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/sample-asset.txt similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/sample-asset.txt rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/sample-asset.txt diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/src/index.html b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/src/index.html similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/src/index.html rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/src/index.html diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/src/index.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/src/index.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/src/index.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/src/index.js diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/test/pretest.ts new file mode 100644 index 0000000000..e75efe6bf5 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/test/pretest.ts @@ -0,0 +1,30 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'motoko_examples', + 'minimal-counter-dapp' + ) + ); + + execSync(`dfx canister uninstall-code minimal_dapp || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy minimal_dapp`, { + stdio: 'inherit' + }); + + execSync(`dfx generate minimal_dapp`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/test/test.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/test/test.ts new file mode 100644 index 0000000000..3039433283 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/test/test.ts @@ -0,0 +1,14 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'minimal-counter-dapp_end_to_end_test_functional_api/test/tests'; + +// @ts-ignore +import { createActor } from '../src/declarations/minimal_dapp'; + +const counterCanister = createActor(getCanisterId('minimal_dapp'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(counterCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/webpack.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/webpack.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/webpack.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/minimal-counter-dapp/webpack.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/.gitignore b/tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/.gitignore rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/NOTICE b/tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/NOTICE similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/NOTICE rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/NOTICE diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/README.md b/tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/README.md rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/dfx.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/dfx.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/jest.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/package-lock.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/package.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/package.json new file mode 100644 index 0000000000..c0288b99c0 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "persistent-storage_end_to_end_test_functional_api": "file:../../../functional_api/motoko_examples/persistent-storage", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/src/index.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/test/pretest.ts new file mode 100644 index 0000000000..10d064ad6e --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/test/pretest.ts @@ -0,0 +1,30 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'motoko_examples', + 'persistent-storage' + ) + ); + + execSync(`dfx canister uninstall-code persistent_storage || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy persistent_storage`, { + stdio: 'inherit' + }); + + execSync(`dfx generate persistent_storage`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/test/test.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/test/test.ts new file mode 100644 index 0000000000..fa92ebfc6a --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/test/test.ts @@ -0,0 +1,16 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'persistent-storage_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/persistent_storage'; + +const persistentStorageCanister = createActor( + getCanisterId('persistent_storage'), + { + agentOptions: { + host: 'http://127.0.0.1:8000' + } + } +); + +runTests(getTests(persistentStorageCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/persistent-storage/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/.gitignore b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/.gitignore rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/NOTICE b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/NOTICE similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/NOTICE rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/NOTICE diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/README.md b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/README.md rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/dfx.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/dfx.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/jest.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/package-lock.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/package.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/package.json new file mode 100644 index 0000000000..7bbb21a96f --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/package.json @@ -0,0 +1,47 @@ +{ + "scripts": { + "build": "webpack", + "prebuild": "npm run generate", + "start": "webpack serve --mode development --env development", + "prestart": "npm run generate", + "generate": "dfx generate phone_book", + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.0", + "@dfinity/candid": "^0.19.0", + "@dfinity/principal": "^0.19.0", + "assert": "^2.0.0", + "buffer": "^6.0.3", + "copy-webpack-plugin": "^11.0.0", + "css-loader": "^6.0.0", + "events": "^3.3.0", + "html-webpack-plugin": "^5.5.0", + "jest": "^29.7.0", + "phone-book_end_to_end_test_functional_api": "file:../../../functional_api/motoko_examples/phone-book", + "process": "^0.11.10", + "stream-browserify": "^3.0.0", + "style-loader": "^3.3.0", + "terser-webpack-plugin": "^5.3.0", + "ts-jest": "^29.1.4", + "ts-loader": "^9.4.0", + "tsx": "^4.15.7", + "typescript": "^5.2.2", + "util": "^0.12.0", + "webpack": "^5.88.0", + "webpack-cli": "^5.1.0", + "webpack-dev-server": "^4.15.0" + }, + "browserslist": [ + "last 2 chrome version", + "last 2 firefox version", + "last 2 safari version", + "last 2 edge version" + ], + "dependencies": { + "azle": "0.23.0", + "react": "^17.0.2", + "react-dom": "^17.0.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/src/declarations/phone_book/index.d.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/src/declarations/phone_book/index.d.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/src/declarations/phone_book/index.d.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/src/declarations/phone_book/index.d.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/src/declarations/phone_book/index.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/src/declarations/phone_book/index.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/src/declarations/phone_book/index.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/src/declarations/phone_book/index.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did.d.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did.d.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did.d.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did.d.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/src/phone_book/index.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/src/phone_book/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/src/phone_book/index.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/src/phone_book/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/src/www/assets/sample-asset.txt b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/src/www/assets/sample-asset.txt similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/src/www/assets/sample-asset.txt rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/src/www/assets/sample-asset.txt diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/src/www/src/index.html b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/src/www/src/index.html similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/src/www/src/index.html rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/src/www/src/index.html diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/src/www/src/index.jsx b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/src/www/src/index.jsx similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/src/www/src/index.jsx rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/src/www/src/index.jsx diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/test/pretest.ts new file mode 100644 index 0000000000..4e5ccf4027 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/test/pretest.ts @@ -0,0 +1,30 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'motoko_examples', + 'phone-book' + ) + ); + + execSync(`dfx canister uninstall-code phone_book || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy phone_book`, { + stdio: 'inherit' + }); + + execSync(`dfx generate phone_book`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/test/test.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/test/test.ts new file mode 100644 index 0000000000..8c2a37d44f --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'phone-book_end_to_end_test_functional_api/test/tests'; + +import { createActor } from '../src/declarations/phone_book'; + +const phoneBookCanister = createActor(getCanisterId('phone_book'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(phoneBookCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/tsconfig.webpack.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/tsconfig.webpack.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/tsconfig.webpack.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/tsconfig.webpack.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/webpack.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/webpack.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/webpack.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/phone-book/webpack.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/.gitignore b/tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/.gitignore rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/README.md b/tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/README.md rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/dfx.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/dfx.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/jest.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/package-lock.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/package.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/package.json new file mode 100644 index 0000000000..61e0381020 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "quicksort_end_to_end_test_functional_api": "file:../../../functional_api/motoko_examples/quicksort", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/src/comparison.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/src/comparison.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/src/comparison.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/src/comparison.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/src/index.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/src/quicksort.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/src/quicksort.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/src/quicksort.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/src/quicksort.ts diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/test/pretest.ts new file mode 100644 index 0000000000..e01355b5e5 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/test/pretest.ts @@ -0,0 +1,30 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'motoko_examples', + 'quicksort' + ) + ); + + execSync(`dfx canister uninstall-code quicksort || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy quicksort`, { + stdio: 'inherit' + }); + + execSync(`dfx generate quicksort`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/test/test.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/test/test.ts new file mode 100644 index 0000000000..374012c283 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/test/test.ts @@ -0,0 +1,14 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'quicksort_end_to_end_test_functional_api/test/tests'; + +// @ts-ignore +import { createActor } from './dfx_generated/quicksort'; + +const quicksortCanister = createActor(getCanisterId('quicksort'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(quicksortCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/quicksort/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/.gitignore b/tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/.gitignore rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/README.md b/tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/README.md rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/dfx.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/dfx.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/jest.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/package-lock.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/package.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/package.json new file mode 100644 index 0000000000..c4d2fdfd33 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "simple-to-do_end_to_end_test_functional_api": "file:../../../functional_api/motoko_examples/simple-to-do", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/src/index.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/test/pretest.ts new file mode 100644 index 0000000000..6ccebb70f4 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/test/pretest.ts @@ -0,0 +1,30 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'motoko_examples', + 'simple-to-do' + ) + ); + + execSync(`dfx canister uninstall-code simple_to_do || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy simple_to_do`, { + stdio: 'inherit' + }); + + execSync(`dfx generate simple_to_do`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/test/test.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/test/test.ts new file mode 100644 index 0000000000..bd0a144178 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/test/test.ts @@ -0,0 +1,14 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'simple-to-do_end_to_end_test_functional_api/test/tests'; + +// @ts-ignore +import { createActor } from './dfx_generated/simple_to_do'; + +const todoCanister = createActor(getCanisterId('simple_to_do'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(todoCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/simple-to-do/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/.gitignore b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/.gitignore rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/NOTICE b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/NOTICE similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/NOTICE rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/NOTICE diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/README.md b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/README.md rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/dfx.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/dfx.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/jest.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/package-lock.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/package.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/package.json new file mode 100644 index 0000000000..478b0e7d1d --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/package.json @@ -0,0 +1,47 @@ +{ + "scripts": { + "build": "webpack", + "prebuild": "npm run generate", + "start": "webpack serve --mode development --env development", + "prestart": "npm run generate", + "generate": "dfx generate superheroes", + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.0", + "@dfinity/candid": "^0.19.0", + "@dfinity/principal": "^0.19.0", + "assert": "^2.0.0", + "buffer": "^6.0.3", + "copy-webpack-plugin": "^11.0.0", + "css-loader": "^6.0.0", + "events": "^3.3.0", + "html-webpack-plugin": "^5.5.0", + "jest": "^29.7.0", + "process": "^0.11.10", + "stream-browserify": "^3.0.0", + "style-loader": "^3.3.0", + "superheroes_end_to_end_test_functional_api": "file:../../../functional_api/motoko_examples/superheroes", + "terser-webpack-plugin": "^5.3.0", + "ts-jest": "^29.1.4", + "ts-loader": "^9.4.0", + "tsx": "^4.15.7", + "typescript": "^5.2.2", + "util": "^0.12.0", + "webpack": "^5.88.0", + "webpack-cli": "^5.1.0", + "webpack-dev-server": "^4.15.0" + }, + "browserslist": [ + "last 2 chrome version", + "last 2 firefox version", + "last 2 safari version", + "last 2 edge version" + ], + "dependencies": { + "azle": "0.23.0", + "react": "^17.0.2", + "react-dom": "^17.0.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/declarations/index.d.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/declarations/index.d.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/declarations/index.d.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/declarations/index.d.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/declarations/index.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/declarations/index.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/declarations/index.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/declarations/index.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/declarations/superheroes.did b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/declarations/superheroes.did similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/declarations/superheroes.did rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/declarations/superheroes.did diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/declarations/superheroes.did.d.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/declarations/superheroes.did.d.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/declarations/superheroes.did.d.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/declarations/superheroes.did.d.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/declarations/superheroes.did.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/declarations/superheroes.did.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/declarations/superheroes.did.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/declarations/superheroes.did.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/superheroes/index.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/superheroes/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/superheroes/index.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/superheroes/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/www/components/create.jsx b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/www/components/create.jsx similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/www/components/create.jsx rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/www/components/create.jsx diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/www/components/delete.jsx b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/www/components/delete.jsx similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/www/components/delete.jsx rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/www/components/delete.jsx diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/www/components/read.jsx b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/www/components/read.jsx similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/www/components/read.jsx rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/www/components/read.jsx diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/www/components/update.jsx b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/www/components/update.jsx similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/www/components/update.jsx rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/www/components/update.jsx diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/www/index.html b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/www/index.html similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/www/index.html rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/www/index.html diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/www/index.jsx b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/www/index.jsx similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/src/www/index.jsx rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/src/www/index.jsx diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/test/pretest.ts new file mode 100644 index 0000000000..dc6e6a9ebe --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/test/pretest.ts @@ -0,0 +1,30 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'motoko_examples', + 'superheroes' + ) + ); + + execSync(`dfx canister uninstall-code superheroes || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy superheroes`, { + stdio: 'inherit' + }); + + execSync(`dfx generate superheroes`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/test/test.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/test/test.ts new file mode 100644 index 0000000000..6c6f1e7b17 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'superheroes_end_to_end_test_functional_api/test/tests'; + +import { createActor } from '../src/declarations'; + +const superheroesCanister = createActor(getCanisterId('superheroes'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(superheroesCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/tsconfig.webpack.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/tsconfig.webpack.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/tsconfig.webpack.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/tsconfig.webpack.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/webpack.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/webpack.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/webpack.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/superheroes/webpack.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/.gitignore b/tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/.gitignore rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/README.md b/tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/README.md rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/dfx.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/dfx.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/jest.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/package-lock.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/package.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/package.json new file mode 100644 index 0000000000..5a9210417f --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/package.json @@ -0,0 +1,18 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0", + "encode-utf8": "2.0.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "threshold_ecdsa_end_to_end_test_functional_api": "file:../../../functional_api/motoko_examples/threshold_ecdsa", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/src/index.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/test/pretest.ts new file mode 100644 index 0000000000..5d94d0d187 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/test/pretest.ts @@ -0,0 +1,30 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'motoko_examples', + 'threshold_ecdsa' + ) + ); + + execSync(`dfx canister uninstall-code threshold_ecdsa || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy threshold_ecdsa`, { + stdio: 'inherit' + }); + + execSync(`dfx generate threshold_ecdsa`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/test/test.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/test/test.ts new file mode 100644 index 0000000000..26cf00f412 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/test/test.ts @@ -0,0 +1,17 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'threshold_ecdsa_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/threshold_ecdsa'; + +const tEcdsaCanister = createActor(getCanisterId('threshold_ecdsa'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +// TODO currently the replica take 5-10 minutes before it is ready to process +// any tecdsa requests, so we are skipping these tests until we can think of +// an elegant way to run these tests only after the replica is ready to process +// them, when we are no longer skipping the tests we can remove the dummy test +runTests(getTests(tEcdsaCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/threshold_ecdsa/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/.gitignore b/tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/.gitignore rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/README.md b/tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/README.md rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/README.md diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/dfx.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/dfx.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/jest.config.js b/tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/package-lock.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/package.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/package.json new file mode 100644 index 0000000000..f14f314030 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/package.json @@ -0,0 +1,18 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "@dfinity/identity": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2", + "whoami_end_to_end_test_functional_api": "file:../../../functional_api/motoko_examples/whoami" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/src/index.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/test/pretest.ts new file mode 100644 index 0000000000..f69c763516 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/test/pretest.ts @@ -0,0 +1,43 @@ +import { SignIdentity } from '@dfinity/agent'; +import { Ed25519KeyIdentity } from '@dfinity/identity'; +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +const someoneIdentity = createIdentity(2); +export const someonePrincipal = someoneIdentity.getPrincipal().toString(); + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'motoko_examples', + 'whoami' + ) + ); + + execSync(`dfx canister uninstall-code whoami || true`, { + stdio: 'inherit' + }); + + execSync( + `dfx deploy whoami --argument '(principal "${someonePrincipal}")'`, + { + stdio: 'inherit' + } + ); + + execSync(`dfx generate whoami`, { + stdio: 'inherit' + }); +} + +pretest(); + +function createIdentity(seed: number): SignIdentity { + const seed1 = [seed, ...new Array(31).fill(0)]; + return Ed25519KeyIdentity.generate(Uint8Array.from(seed1)); +} diff --git a/tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/test/test.ts b/tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/test/test.ts new file mode 100644 index 0000000000..a71cc44b96 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/test/test.ts @@ -0,0 +1,17 @@ +import { runTests } from 'azle/test'; +import { + callingIdentity, + canisterId, + getTests +} from 'whoami_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/whoami'; + +const whoamiCanister = createActor(canisterId, { + agentOptions: { + host: 'http://127.0.0.1:8000', + identity: callingIdentity + } +}); + +runTests(getTests(whoamiCanister, 'whoami')); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/motoko_examples/whoami/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/new/.gitignore b/tests/end_to_end/candid_rpc/class_api/new/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/new/.gitignore rename to tests/end_to_end/candid_rpc/class_api/new/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/new/jest.config.js b/tests/end_to_end/candid_rpc/class_api/new/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/new/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/new/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/new/package-lock.json b/tests/end_to_end/candid_rpc/class_api/new/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/new/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/new/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/new/package.json b/tests/end_to_end/candid_rpc/class_api/new/package.json new file mode 100644 index 0000000000..59cb826316 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/new/package.json @@ -0,0 +1,13 @@ +{ + "name": "new_end_to_end_test_functional_api", + "scripts": { + "test": "if [ \"$AZLE_TEST_RUN_ON_RELEASE\" == \"true\" ]; then tsx test/test.ts; else echo 'Skipping pretests'; fi" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/new/test/test.ts b/tests/end_to_end/candid_rpc/class_api/new/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/new/test/test.ts rename to tests/end_to_end/candid_rpc/class_api/new/test/test.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/new/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/new/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/new/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/new/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/new_candid_rpc/.gitignore b/tests/end_to_end/candid_rpc/class_api/new_candid_rpc/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/new_candid_rpc/.gitignore rename to tests/end_to_end/candid_rpc/class_api/new_candid_rpc/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/new_candid_rpc/jest.config.js b/tests/end_to_end/candid_rpc/class_api/new_candid_rpc/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/new_candid_rpc/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/new_candid_rpc/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/new_candid_rpc/package-lock.json b/tests/end_to_end/candid_rpc/class_api/new_candid_rpc/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/new_candid_rpc/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/new_candid_rpc/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/new_candid_rpc/package.json b/tests/end_to_end/candid_rpc/class_api/new_candid_rpc/package.json new file mode 100644 index 0000000000..59cb826316 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/new_candid_rpc/package.json @@ -0,0 +1,13 @@ +{ + "name": "new_end_to_end_test_functional_api", + "scripts": { + "test": "if [ \"$AZLE_TEST_RUN_ON_RELEASE\" == \"true\" ]; then tsx test/test.ts; else echo 'Skipping pretests'; fi" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/new_candid_rpc/test/test.ts b/tests/end_to_end/candid_rpc/class_api/new_candid_rpc/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/new_candid_rpc/test/test.ts rename to tests/end_to_end/candid_rpc/class_api/new_candid_rpc/test/test.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/new_candid_rpc/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/new_candid_rpc/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/new_candid_rpc/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/new_candid_rpc/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/.gitignore b/tests/end_to_end/candid_rpc/class_api/notify_raw/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/notify_raw/.gitignore rename to tests/end_to_end/candid_rpc/class_api/notify_raw/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/dfx.json b/tests/end_to_end/candid_rpc/class_api/notify_raw/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/notify_raw/dfx.json rename to tests/end_to_end/candid_rpc/class_api/notify_raw/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/jest.config.js b/tests/end_to_end/candid_rpc/class_api/notify_raw/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/notify_raw/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/notify_raw/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/package-lock.json b/tests/end_to_end/candid_rpc/class_api/notify_raw/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/notify_raw/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/notify_raw/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/notify_raw/package.json b/tests/end_to_end/candid_rpc/class_api/notify_raw/package.json new file mode 100644 index 0000000000..2b5c2a3c12 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/notify_raw/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "notify_raw_end_to_end_test_functional_api": "file:../../functional_api/notify_raw", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/src/canister1/index.ts b/tests/end_to_end/candid_rpc/class_api/notify_raw/src/canister1/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/notify_raw/src/canister1/index.ts rename to tests/end_to_end/candid_rpc/class_api/notify_raw/src/canister1/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/src/canister2/index.ts b/tests/end_to_end/candid_rpc/class_api/notify_raw/src/canister2/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/notify_raw/src/canister2/index.ts rename to tests/end_to_end/candid_rpc/class_api/notify_raw/src/canister2/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/notify_raw/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/notify_raw/test/pretest.ts new file mode 100644 index 0000000000..4da4529fac --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/notify_raw/test/pretest.ts @@ -0,0 +1,38 @@ +import { getCanisterId } from 'azle/dfx'; +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'notify_raw' + ) + ); + + execSync(`dfx canister uninstall-code canister1 || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister uninstall-code canister2 || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister create canister2`, { + stdio: 'inherit' + }); + + execSync(`CANISTER2_PRINCIPAL=${getCanisterId('canister2')} dfx deploy`, { + stdio: 'inherit' + }); + + execSync(`dfx generate`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/notify_raw/test/test.ts b/tests/end_to_end/candid_rpc/class_api/notify_raw/test/test.ts new file mode 100644 index 0000000000..42bd34ffbd --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/notify_raw/test/test.ts @@ -0,0 +1,20 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'notify_raw_end_to_end_test_functional_api/test/tests'; + +import { createActor as createActorCanister1 } from './dfx_generated/canister1'; +import { createActor as createActorCanister2 } from './dfx_generated/canister2'; + +const canister1 = createActorCanister1(getCanisterId('canister1'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +const canister2 = createActorCanister2(getCanisterId('canister2'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(canister1, canister2)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/notify_raw/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/notify_raw/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/notify_raw/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/null_example/.gitignore b/tests/end_to_end/candid_rpc/class_api/null_example/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/null_example/.gitignore rename to tests/end_to_end/candid_rpc/class_api/null_example/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/null_example/dfx.json b/tests/end_to_end/candid_rpc/class_api/null_example/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/null_example/dfx.json rename to tests/end_to_end/candid_rpc/class_api/null_example/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/null_example/jest.config.js b/tests/end_to_end/candid_rpc/class_api/null_example/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/null_example/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/null_example/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/null_example/package-lock.json b/tests/end_to_end/candid_rpc/class_api/null_example/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/null_example/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/null_example/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/null_example/package.json b/tests/end_to_end/candid_rpc/class_api/null_example/package.json new file mode 100644 index 0000000000..3d6e474f63 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/null_example/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "null_example_end_to_end_test_functional_api": "file:../../functional_api/null_example", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/null_example/src/index.ts b/tests/end_to_end/candid_rpc/class_api/null_example/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/null_example/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/null_example/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/null_example/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/null_example/test/pretest.ts new file mode 100644 index 0000000000..1bb5250939 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/null_example/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'null_example' + ) + ); + + execSync(`dfx canister uninstall-code null_example || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy`, { + stdio: 'inherit' + }); + + execSync(`dfx generate`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/null_example/test/test.ts b/tests/end_to_end/candid_rpc/class_api/null_example/test/test.ts new file mode 100644 index 0000000000..0aaeb16204 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/null_example/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'null_example_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/null_example'; + +const nullExampleCanister = createActor(getCanisterId('null_example'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(nullExampleCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/null_example/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/null_example/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/null_example/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/null_example/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/optional_types/.gitignore b/tests/end_to_end/candid_rpc/class_api/optional_types/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/optional_types/.gitignore rename to tests/end_to_end/candid_rpc/class_api/optional_types/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/optional_types/dfx.json b/tests/end_to_end/candid_rpc/class_api/optional_types/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/optional_types/dfx.json rename to tests/end_to_end/candid_rpc/class_api/optional_types/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/optional_types/jest.config.js b/tests/end_to_end/candid_rpc/class_api/optional_types/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/optional_types/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/optional_types/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/optional_types/package-lock.json b/tests/end_to_end/candid_rpc/class_api/optional_types/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/optional_types/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/optional_types/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/optional_types/package.json b/tests/end_to_end/candid_rpc/class_api/optional_types/package.json new file mode 100644 index 0000000000..9c960932e9 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/optional_types/package.json @@ -0,0 +1,19 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "@types/node-fetch": "2.6.1", + "jest": "^29.7.0", + "node-fetch": "2.6.7", + "optional_types_end_to_end_test_functional_api": "file:../../functional_api/optional_types", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/optional_types/src/index.ts b/tests/end_to_end/candid_rpc/class_api/optional_types/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/optional_types/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/optional_types/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/optional_types/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/optional_types/test/pretest.ts new file mode 100644 index 0000000000..828c87769e --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/optional_types/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'optional_types' + ) + ); + + execSync(`dfx canister uninstall-code optional_types || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy optional_types`, { + stdio: 'inherit' + }); + + execSync(`dfx generate optional_types`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/optional_types/test/test.ts b/tests/end_to_end/candid_rpc/class_api/optional_types/test/test.ts new file mode 100644 index 0000000000..9bfab98964 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/optional_types/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'optional_types_end_to_end_test_functional_api/test/tests'; + +import { createActor } from '../test/dfx_generated/optional_types'; + +const optionalTypesCanister = createActor(getCanisterId('optional_types'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(optionalTypesCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/optional_types/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/optional_types/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/optional_types/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/optional_types/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/.gitignore b/tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/.gitignore rename to tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/dfx.json b/tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/dfx.json rename to tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/jest.config.js b/tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/package-lock.json b/tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/package.json b/tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/package.json new file mode 100644 index 0000000000..40fb483fab --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/package.json @@ -0,0 +1,19 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "decode-utf8": "1.0.1", + "jest": "^29.7.0", + "outgoing_http_requests_end_to_end_test_functional_api": "file:../../functional_api/outgoing_http_requests", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2", + "utf8-encoder": "1.0.1" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/src/index.ts b/tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/test/pretest.ts new file mode 100644 index 0000000000..adc14c40c3 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'outgoing_http_requests' + ) + ); + + execSync(`dfx canister uninstall-code outgoing_http_requests || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy`, { + stdio: 'inherit' + }); + + execSync(`dfx generate`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/test/test.ts b/tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/test/test.ts new file mode 100644 index 0000000000..b358d2692e --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/test/test.ts @@ -0,0 +1,16 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'outgoing_http_requests_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/outgoing_http_requests'; + +const outgoingHttpRequestsCanister = createActor( + getCanisterId('outgoing_http_requests'), + { + agentOptions: { + host: 'http://127.0.0.1:8000' + } + } +); + +runTests(getTests(outgoingHttpRequestsCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/outgoing_http_requests/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/.gitignore b/tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/.gitignore rename to tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/dfx.json b/tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/dfx.json rename to tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/jest.config.js b/tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/jest.config.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_api/pre_and_post_upgrade/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/package.json b/tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/package.json new file mode 100644 index 0000000000..5d70c5bc82 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "pre_and_post_upgrade_end_to_end_test_functional_api": "file:../../functional_api/pre_and_post_upgrade", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/src/index.ts b/tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/test/pretest.ts new file mode 100644 index 0000000000..19c9b06a68 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'pre_and_post_upgrade' + ) + ); + + execSync(`dfx canister uninstall-code pre_and_post_upgrade || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy pre_and_post_upgrade`, { + stdio: 'inherit' + }); + + execSync(`dfx generate pre_and_post_upgrade`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/test/test.ts b/tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/test/test.ts new file mode 100644 index 0000000000..66468bccea --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/test/test.ts @@ -0,0 +1,16 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'pre_and_post_upgrade_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/pre_and_post_upgrade'; + +const preAndPostUpgradeCanister = createActor( + getCanisterId('pre_and_post_upgrade'), + { + agentOptions: { + host: 'http://127.0.0.1:8000' + } + } +); + +runTests(getTests(preAndPostUpgradeCanister)); 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_api/pre_and_post_upgrade/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/pre_and_post_upgrade/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/primitive_types/.gitignore b/tests/end_to_end/candid_rpc/class_api/primitive_types/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/primitive_types/.gitignore rename to tests/end_to_end/candid_rpc/class_api/primitive_types/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/primitive_types/dfx.json b/tests/end_to_end/candid_rpc/class_api/primitive_types/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/primitive_types/dfx.json rename to tests/end_to_end/candid_rpc/class_api/primitive_types/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/primitive_types/jest.config.js b/tests/end_to_end/candid_rpc/class_api/primitive_types/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/primitive_types/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/primitive_types/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/primitive_types/package-lock.json b/tests/end_to_end/candid_rpc/class_api/primitive_types/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/primitive_types/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/primitive_types/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/primitive_types/package.json b/tests/end_to_end/candid_rpc/class_api/primitive_types/package.json new file mode 100644 index 0000000000..f7b18b483a --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/primitive_types/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "primitive_types_end_to_end_test_functional_api": "file:../../functional_api/primitive_types", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/primitive_types/src/index.ts b/tests/end_to_end/candid_rpc/class_api/primitive_types/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/primitive_types/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/primitive_types/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/primitive_types/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/primitive_types/test/pretest.ts new file mode 100644 index 0000000000..018ef3e522 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/primitive_types/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'primitive_types' + ) + ); + + execSync(`dfx canister uninstall-code primitive_types || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy primitive_types`, { + stdio: 'inherit' + }); + + execSync(`dfx generate primitive_types`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/primitive_types/test/test.ts b/tests/end_to_end/candid_rpc/class_api/primitive_types/test/test.ts new file mode 100644 index 0000000000..a0a198bdb2 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/primitive_types/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'primitive_types_end_to_end_test_functional_api/test/tests'; + +import { createActor } from '../test/dfx_generated/primitive_types'; + +const primitiveTypesCanister = createActor(getCanisterId('primitive_types'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(primitiveTypesCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/primitive_types/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/primitive_types/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/primitive_types/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/primitive_types/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/principal/.gitignore b/tests/end_to_end/candid_rpc/class_api/principal/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/principal/.gitignore rename to tests/end_to_end/candid_rpc/class_api/principal/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/principal/dfx.json b/tests/end_to_end/candid_rpc/class_api/principal/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/principal/dfx.json rename to tests/end_to_end/candid_rpc/class_api/principal/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/principal/jest.config.js b/tests/end_to_end/candid_rpc/class_api/principal/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/principal/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/principal/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/principal/package-lock.json b/tests/end_to_end/candid_rpc/class_api/principal/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/principal/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/principal/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/principal/package.json b/tests/end_to_end/candid_rpc/class_api/principal/package.json new file mode 100644 index 0000000000..c731cc064e --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/principal/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "principal_end_to_end_test_functional_api": "file:../../functional_api/principal", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/principal/src/index.ts b/tests/end_to_end/candid_rpc/class_api/principal/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/principal/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/principal/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/principal/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/principal/test/pretest.ts new file mode 100644 index 0000000000..f0a2aa61a5 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/principal/test/pretest.ts @@ -0,0 +1,23 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join('tests', 'end_to_end', 'candid_rpc', 'functional_api', 'principal') + ); + + execSync(`dfx canister uninstall-code principal || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy principal`, { + stdio: 'inherit' + }); + + execSync(`dfx generate principal`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/principal/test/test.ts b/tests/end_to_end/candid_rpc/class_api/principal/test/test.ts new file mode 100644 index 0000000000..d58564ebb6 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/principal/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'principal_end_to_end_test_functional_api/test/tests'; + +import { createActor } from '../test/dfx_generated/principal'; + +const principalCanister = createActor(getCanisterId('principal'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(principalCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/principal/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/principal/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/principal/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/principal/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/query/.gitignore b/tests/end_to_end/candid_rpc/class_api/query/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/query/.gitignore rename to tests/end_to_end/candid_rpc/class_api/query/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/query/dfx.json b/tests/end_to_end/candid_rpc/class_api/query/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/query/dfx.json rename to tests/end_to_end/candid_rpc/class_api/query/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/query/jest.config.js b/tests/end_to_end/candid_rpc/class_api/query/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/query/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/query/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_api/query/package-lock.json b/tests/end_to_end/candid_rpc/class_api/query/package-lock.json new file mode 100644 index 0000000000..463fe10015 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/query/package-lock.json @@ -0,0 +1,11086 @@ +{ + "name": "query", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.19.2", + "jest": "^29.7.0", + "query_end_to_end_test_functional_api": "file:../../functional_api/query", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } + }, + "../../../../../examples/query": { + "name": "query_end_to_end_test_functional_syntax", + "extraneous": true, + "dependencies": { + "azle": "0.22.0" + }, + "devDependencies": { + "@dfinity/agent": "0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } + }, + "../../../examples/query": { + "name": "query_end_to_end_test_canister_syntax", + "extraneous": true, + "dependencies": { + "azle": "0.22.0" + }, + "devDependencies": { + "@dfinity/agent": "0.19.2", + "ts-node": "10.9.0", + "typescript": "5.2.2" + } + }, + "../../functional_api/query": { + "dev": true, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } + }, + "../../functional_syntax/query": { + "name": "query_end_to_end_test_functional_syntax", + "extraneous": true, + "dependencies": { + "azle": "0.22.0" + }, + "devDependencies": { + "@dfinity/agent": "0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } + }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@ampproject/remapping/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@dfinity/agent": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-0.19.2.tgz", + "integrity": "sha512-KLRWEjeU9SyyaS7IBVJ9ZUcufxufr55e/kRIyClK157+0pkTG9a8xKjUIMx3QzKvLsqqzXL238nWwdoP6jAD8g==", + "dev": true, + "dependencies": { + "@noble/hashes": "^1.3.1", + "base64-arraybuffer": "^0.2.0", + "borc": "^2.1.1", + "simple-cbor": "^0.4.1" + }, + "peerDependencies": { + "@dfinity/candid": "^0.19.2", + "@dfinity/principal": "^0.19.2" + } + }, + "node_modules/@dfinity/candid": { + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-0.19.3.tgz", + "integrity": "sha512-yXfbLSWTeRd4G0bLLxYoDqpXH3Jim0P+1PPZOoktXNC1X1hB+ea3yrZebX75t4GVoQK7123F7mxWHiPjuV2tQQ==", + "dev": true, + "peer": true, + "peerDependencies": { + "@dfinity/principal": "^0.19.3" + } + }, + "node_modules/@dfinity/identity-secp256k1": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/identity-secp256k1/-/identity-secp256k1-1.2.0.tgz", + "integrity": "sha512-QAsVycTLY0HH5OS/Ub8G0A70WZb9nkJR9fzZywUIAKpFRY8ZXHiXrT/ifM6AqY9L/83l/ywrwuSKbHVngshpkw==", + "dependencies": { + "@dfinity/agent": "^1.2.0", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.1", + "asn1js": "^3.0.5", + "bip39": "^3.1.0", + "bs58check": "^3.0.1", + "hdkey": "^2.1.0" + } + }, + "node_modules/@dfinity/identity-secp256k1/node_modules/@dfinity/agent": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.2.0.tgz", + "integrity": "sha512-i9mH0PO73nrhLc9lZv14SWr4muyMcs6uqqlG2SHQtRUFRXbqj4DOhKsU0Sm+kC8eWYCSu65WPKPYwwAR7YM6ug==", + "dependencies": { + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.1", + "base64-arraybuffer": "^0.2.0", + "borc": "^2.1.1", + "buffer": "^6.0.3", + "simple-cbor": "^0.4.1" + }, + "peerDependencies": { + "@dfinity/candid": "^1.2.0", + "@dfinity/principal": "^1.2.0" + } + }, + "node_modules/@dfinity/identity-secp256k1/node_modules/@dfinity/candid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.2.0.tgz", + "integrity": "sha512-L6gV3ODIFC9qNenq3zuRvHrTwH36IM5utVH2wMS5f5eIUeG9fNe+avYLRPBUJwdeX7cM7xhvDgE/m/aN2cZvKQ==", + "peer": true, + "peerDependencies": { + "@dfinity/principal": "^1.2.0" + } + }, + "node_modules/@dfinity/identity-secp256k1/node_modules/@dfinity/principal": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.2.0.tgz", + "integrity": "sha512-7eurqPDL5ptlTTLMJPeiO75FAumXHsWEWDVQaN6XpA3aZtmofNK4Sb5g5Ne9syeuoCJcW3mFBbbFtFNxggxu+g==", + "peer": true, + "dependencies": { + "@noble/hashes": "^1.3.1" + } + }, + "node_modules/@dfinity/identity-secp256k1/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@dfinity/principal": { + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-0.19.3.tgz", + "integrity": "sha512-+nixVvdGt7ECxRvLXDXsvU9q9sSPssBtDQ4bXa149SK6gcYcmZ6lfWIi3DJNqj3tGROxILVBsguel9tECappsA==", + "dev": true, + "peer": true, + "dependencies": { + "@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" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", + "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", + "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", + "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", + "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", + "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", + "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", + "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", + "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", + "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", + "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", + "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", + "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", + "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", + "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", + "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", + "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", + "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", + "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", + "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", + "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", + "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", + "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", + "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "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" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@swc/core": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.91.tgz", + "integrity": "sha512-r950d0fdlZ8qbSDyvApn3HyCojiZE8xpgJzQvypeMi32dalYwugdJKWyLB55JIGMRGJ8+lmVvY4MPGkSR3kXgA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "peer": true, + "dependencies": { + "@swc/counter": "^0.1.1", + "@swc/types": "^0.1.5" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.3.91", + "@swc/core-darwin-x64": "1.3.91", + "@swc/core-linux-arm-gnueabihf": "1.3.91", + "@swc/core-linux-arm64-gnu": "1.3.91", + "@swc/core-linux-arm64-musl": "1.3.91", + "@swc/core-linux-x64-gnu": "1.3.91", + "@swc/core-linux-x64-musl": "1.3.91", + "@swc/core-win32-arm64-msvc": "1.3.91", + "@swc/core-win32-ia32-msvc": "1.3.91", + "@swc/core-win32-x64-msvc": "1.3.91" + }, + "peerDependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.91.tgz", + "integrity": "sha512-7kHGiQ1he5khcEeJuHDmLZPM3rRL/ith5OTmV6bOPsoHi46kLeixORW+ts1opC3tC9vu6xbk16xgX0QAJchc1w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.91.tgz", + "integrity": "sha512-8SpU18FbFpZDVzsHsAwdI1thF/picQGxq9UFxa8W+T9SDnbsqwFJv/6RqKJeJoDV6qFdl2OLjuO0OL7xrp0qnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.91.tgz", + "integrity": "sha512-fOq4Cy8UbwX1yf0WB0d8hWZaIKCnPtPGguRqdXGLfwvhjZ9SIErT6PnmGTGRbQCNCIkOZWHKyTU0r8t2dN3haQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.91.tgz", + "integrity": "sha512-fki4ioRP/Esy4vdp8T34RCV+V9dqkRmOt763pf74pdiyFV2dPLXa5lnw/XvR1RTfPGknrYgjEQLCfZlReTryRw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.91.tgz", + "integrity": "sha512-XrG+DUUqNtfVLcJ20imby7fpBwQNG5VsEQBzQndSonPyUOa2YkTbBb60YDondfQGDABopuHH8gHN8o2H2/VCnQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.91.tgz", + "integrity": "sha512-d11bYhX+YPBr/Frcjc6eVn3C0LuS/9U1Li9EmQ+6s9EpYtYRl2ygSlC8eueLbaiazBnCVYFnc8bU4o0kc5B9sw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.91.tgz", + "integrity": "sha512-2SRp5Dke2P4jCQePkDx9trkkTstnRpZJVw5r3jvYdk0zeO6iC4+ZPvvoWXJLigqQv/fZnIiSUfJ6ssOoaEqTzQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.91.tgz", + "integrity": "sha512-l9qKXikOxj42UIjbeZpz9xtBmr736jOMqInNP8mVF2/U+ws5sI8zJjcOFFtfis4ru7vWCXhB1wtltdlJYO2vGA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.91.tgz", + "integrity": "sha512-+s+52O0QVPmzOgjEe/rcb0AK6q/J7EHKwAyJCu/FaYO9df5ovE0HJjSKP6HAF0dGPO5hkENrXuNGujofUH9vtQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.91.tgz", + "integrity": "sha512-7u9HDQhjUC3Gv43EFW84dZtduWCSa4MgltK+Sp9zEGti6WXqDPu/ESjvDsQEVYTBEMEvZs/xVAXPgLVHorV5nQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.2.tgz", + "integrity": "sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@swc/types": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", + "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/uuid": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.4.tgz", + "integrity": "sha512-zAuJWQflfx6dYJM62vna+Sn5aeSWhh3OB+wfUEACNcqUSc0AGc5JKl+ycL1vrH7frGTXhJchYjE1Hak8L819dA==" + }, + "node_modules/@types/validator": { + "version": "13.11.10", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.10.tgz", + "integrity": "sha512-e2PNXoXLr6Z+dbfx5zSh9TRlXJrELycxiaXznp4S5+D2M3b9bqJEitNHA5923jhnB2zzFiZHa2f0SI1HoIahpg==" + }, + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "dependencies": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/azle": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/azle/-/azle-0.23.0.tgz", + "integrity": "sha512-BRp0YAe/mtLCWVZDDl5IUbCLFb2fWi2NnKLHTUC0+EmZu59kVAR7AT7DY/oMvYVYVqxGlw9eqOIzhqB1msChWQ==", + "hasInstallScript": true, + "dependencies": { + "@dfinity/agent": "^1.1.0", + "@dfinity/identity-secp256k1": "^1.1.0", + "@types/uuid": "^9.0.4", + "binaryen": "^116.0.0", + "buffer": "^6.0.3", + "chokidar": "^3.6.0", + "class-transformer": "^0.5.1", + "class-validator": "^0.14.1", + "crypto-browserify": "^3.12.0", + "deep-is": "^0.1.4", + "esbuild": "^0.23.0", + "esbuild-plugin-tsc": "^0.4.0", + "ethers": "6.11.1", + "fs-extra": "^11.2.0", + "glob": "^10.3.15", + "hash-of-directory": "^1.0.1", + "http-message-parser": "^0.0.34", + "intl": "^1.2.5", + "js-sha256": "0.9.0", + "net": "^1.0.2", + "pako": "^2.1.0", + "reflect-metadata": "^0.2.2", + "repl": "^0.1.3", + "text-encoding": "0.7.0", + "tsx": "^4.15.7", + "typescript": "^5.2.2", + "uuid": "^9.0.1" + }, + "bin": { + "azle": "src/compiler/index.ts" + } + }, + "node_modules/azle/node_modules/@dfinity/agent": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.2.0.tgz", + "integrity": "sha512-i9mH0PO73nrhLc9lZv14SWr4muyMcs6uqqlG2SHQtRUFRXbqj4DOhKsU0Sm+kC8eWYCSu65WPKPYwwAR7YM6ug==", + "dependencies": { + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.1", + "base64-arraybuffer": "^0.2.0", + "borc": "^2.1.1", + "buffer": "^6.0.3", + "simple-cbor": "^0.4.1" + }, + "peerDependencies": { + "@dfinity/candid": "^1.2.0", + "@dfinity/principal": "^1.2.0" + } + }, + "node_modules/azle/node_modules/@dfinity/candid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.2.0.tgz", + "integrity": "sha512-L6gV3ODIFC9qNenq3zuRvHrTwH36IM5utVH2wMS5f5eIUeG9fNe+avYLRPBUJwdeX7cM7xhvDgE/m/aN2cZvKQ==", + "peer": true, + "peerDependencies": { + "@dfinity/principal": "^1.2.0" + } + }, + "node_modules/azle/node_modules/@dfinity/principal": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.2.0.tgz", + "integrity": "sha512-7eurqPDL5ptlTTLMJPeiO75FAumXHsWEWDVQaN6XpA3aZtmofNK4Sb5g5Ne9syeuoCJcW3mFBbbFtFNxggxu+g==", + "peer": true, + "dependencies": { + "@noble/hashes": "^1.3.1" + } + }, + "node_modules/azle/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/azle/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/azle/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/azle/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/base64-arraybuffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", + "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bignumber.js": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", + "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/binaryen": { + "version": "116.0.0", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0.tgz", + "integrity": "sha512-Hp0dXC6Cb/rTwWEoUS2BRghObE7g/S9umKtxuTDt3f61G6fNTE/YVew/ezyy3IdHcLx3f17qfh6LwETgCfvWkQ==", + "bin": { + "wasm-opt": "bin/wasm-opt", + "wasm2js": "bin/wasm2js" + } + }, + "node_modules/bip39": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", + "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", + "dependencies": { + "@noble/hashes": "^1.2.0" + } + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/borc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", + "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", + "dependencies": { + "bignumber.js": "^9.0.0", + "buffer": "^5.5.0", + "commander": "^2.15.0", + "ieee754": "^1.1.13", + "iso-url": "~0.4.7", + "json-text-sequence": "~0.1.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", + "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", + "dependencies": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.4", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.6", + "readable-stream": "^3.6.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/browserslist": { + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/bs58check": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz", + "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==", + "dependencies": { + "@noble/hashes": "^1.2.0", + "bs58": "^5.0.0" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001636", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz", + "integrity": "sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true + }, + "node_modules/class-transformer": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", + "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==" + }, + "node_modules/class-validator": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.1.tgz", + "integrity": "sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==", + "dependencies": { + "@types/validator": "^13.11.8", + "libphonenumber-js": "^1.10.53", + "validator": "^13.9.0" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delimit-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", + "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=" + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.807", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.807.tgz", + "integrity": "sha512-kSmJl2ZwhNf/bcIuCH/imtNOKlpkLDn2jqT5FJ+/0CXjhnFaOa9cOe9gHKKy71eM49izwuQjZhKk+lWQ1JxB7A==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/esbuild": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", + "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.0", + "@esbuild/android-arm": "0.23.0", + "@esbuild/android-arm64": "0.23.0", + "@esbuild/android-x64": "0.23.0", + "@esbuild/darwin-arm64": "0.23.0", + "@esbuild/darwin-x64": "0.23.0", + "@esbuild/freebsd-arm64": "0.23.0", + "@esbuild/freebsd-x64": "0.23.0", + "@esbuild/linux-arm": "0.23.0", + "@esbuild/linux-arm64": "0.23.0", + "@esbuild/linux-ia32": "0.23.0", + "@esbuild/linux-loong64": "0.23.0", + "@esbuild/linux-mips64el": "0.23.0", + "@esbuild/linux-ppc64": "0.23.0", + "@esbuild/linux-riscv64": "0.23.0", + "@esbuild/linux-s390x": "0.23.0", + "@esbuild/linux-x64": "0.23.0", + "@esbuild/netbsd-x64": "0.23.0", + "@esbuild/openbsd-arm64": "0.23.0", + "@esbuild/openbsd-x64": "0.23.0", + "@esbuild/sunos-x64": "0.23.0", + "@esbuild/win32-arm64": "0.23.0", + "@esbuild/win32-ia32": "0.23.0", + "@esbuild/win32-x64": "0.23.0" + } + }, + "node_modules/esbuild-plugin-tsc": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/esbuild-plugin-tsc/-/esbuild-plugin-tsc-0.4.0.tgz", + "integrity": "sha512-q9gWIovt1nkwchMLc2zhyksaiHOv3kDK4b0AUol8lkMCRhJ1zavgfb2fad6BKp7FT9rh/OHmEBXVjczLoi/0yw==", + "dependencies": { + "strip-comments": "^2.0.1" + }, + "peerDependencies": { + "typescript": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/esbuild/node_modules/@esbuild/aix-ppc64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", + "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ethers": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.11.1.tgz", + "integrity": "sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ethers/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethers/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethers/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-prop": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/get-prop/-/get-prop-0.0.10.tgz", + "integrity": "sha512-XRSGBgcIisSMLJ/dwe1y/eMm9yzLicEJKmEXA3ArBkDkCW2nyRroLOoKIz+SdxuG5SI7ym2QHaTU5ifCl7MTDg==" + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "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==", + "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", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-of-directory": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hash-of-directory/-/hash-of-directory-1.0.1.tgz", + "integrity": "sha512-PX6VaxD6JK8R4113ChdTtEnWIo2XA9mz4yrtGBuUGUKtWCj6iWWYj/qwjdfs3Zgm+FdiNj0Vmt4VwPlwxx8WHw==" + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hdkey": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz", + "integrity": "sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA==", + "dependencies": { + "bs58check": "^2.1.2", + "ripemd160": "^2.0.2", + "safe-buffer": "^5.1.1", + "secp256k1": "^4.0.0" + } + }, + "node_modules/hdkey/node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/hdkey/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/hdkey/node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-message-parser": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/http-message-parser/-/http-message-parser-0.0.34.tgz", + "integrity": "sha512-KABKXT347AYvQoaMZg9/K+/GqW6gfB4pKCiTyMUYnosfkdkaBkrXE/cWGSLk5jvD5tiDeLFlYSHLhhPhQKbRrA==", + "dependencies": { + "buffer": "^4.9.1", + "concat-stream": "^1.5.1", + "get-prop": "0.0.10", + "minimist": "^1.2.0", + "stream-buffers": "^3.0.0" + }, + "bin": { + "http-message-parser": "bin/http-message-parser.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-message-parser/node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/intl": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", + "integrity": "sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==" + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/iso-url": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", + "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==", + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-text-sequence": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", + "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", + "dependencies": { + "delimit-stream": "0.1.0" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/libphonenumber-js": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.11.3.tgz", + "integrity": "sha512-RU0CTsLCu2v6VEzdP+W6UU2n5+jEpMDRkGxUeBgsAJgre3vKgm17eApISH9OQY4G0jZYJVIc8qXmz6CJFueAFg==" + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/net": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/net/-/net-1.0.2.tgz", + "integrity": "sha512-kbhcj2SVVR4caaVnGLJKmlk2+f+oLkjqdKeQlmUtz6nGzOpbcobwVIeSURNgraV/v3tlmGIX82OcPCl0K6RbHQ==" + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node_modules/node-gyp-build": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", + "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" + }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/pvtsutils": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", + "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", + "dependencies": { + "tslib": "^2.6.1" + } + }, + "node_modules/pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/query_end_to_end_test_functional_api": { + "resolved": "../../functional_api/query", + "link": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" + }, + "node_modules/repl": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/repl/-/repl-0.1.3.tgz", + "integrity": "sha512-C3ZEHaX28+EvM9lPiXl9ruN2g5M5sUvyCIDvZ0M4VCusfA1Cn0+z3tJcQl/lvxPsBm82q4hKHKebPlE3SEhFKg==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "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==", + "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", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/simple-cbor": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/simple-cbor/-/simple-cbor-0.4.1.tgz", + "integrity": "sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stream-buffers": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz", + "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==", + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-encoding": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz", + "integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==", + "deprecated": "no longer maintained" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-jest": { + "version": "29.1.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.5.tgz", + "integrity": "sha512-UuClSYxM7byvvYfyWdFI+/2UxMmwNyJb0NPkZPQE2hew3RurV7l7zURgOHAd/1I1ZdPpe3GUsXNXAcN8TFKSIg==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "^7.5.3", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-node": { + "version": "10.9.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.0.tgz", + "integrity": "sha512-bunW18GUyaCSYRev4DPf4SQpom3pWH29wKl0sDk5zE7ze19RImEVhCW7K4v3hHKkUyfWotU08ToE2RS+Y49aug==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "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" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "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==", + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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==", + "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", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "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/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "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, + "optional": true, + "peer": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/validator": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" + }, + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } + } + }, + "@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + } + }, + "@babel/compat-data": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "dev": true + }, + "@babel/core": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + } + }, + "@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "requires": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "dev": true, + "requires": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@dfinity/agent": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-0.19.2.tgz", + "integrity": "sha512-KLRWEjeU9SyyaS7IBVJ9ZUcufxufr55e/kRIyClK157+0pkTG9a8xKjUIMx3QzKvLsqqzXL238nWwdoP6jAD8g==", + "dev": true, + "requires": { + "@noble/hashes": "^1.3.1", + "base64-arraybuffer": "^0.2.0", + "borc": "^2.1.1", + "simple-cbor": "^0.4.1" + } + }, + "@dfinity/candid": { + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-0.19.3.tgz", + "integrity": "sha512-yXfbLSWTeRd4G0bLLxYoDqpXH3Jim0P+1PPZOoktXNC1X1hB+ea3yrZebX75t4GVoQK7123F7mxWHiPjuV2tQQ==", + "dev": true, + "peer": true, + "requires": {} + }, + "@dfinity/identity-secp256k1": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/identity-secp256k1/-/identity-secp256k1-1.2.0.tgz", + "integrity": "sha512-QAsVycTLY0HH5OS/Ub8G0A70WZb9nkJR9fzZywUIAKpFRY8ZXHiXrT/ifM6AqY9L/83l/ywrwuSKbHVngshpkw==", + "requires": { + "@dfinity/agent": "^1.2.0", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.1", + "asn1js": "^3.0.5", + "bip39": "^3.1.0", + "bs58check": "^3.0.1", + "hdkey": "^2.1.0" + }, + "dependencies": { + "@dfinity/agent": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.2.0.tgz", + "integrity": "sha512-i9mH0PO73nrhLc9lZv14SWr4muyMcs6uqqlG2SHQtRUFRXbqj4DOhKsU0Sm+kC8eWYCSu65WPKPYwwAR7YM6ug==", + "requires": { + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.1", + "base64-arraybuffer": "^0.2.0", + "borc": "^2.1.1", + "buffer": "^6.0.3", + "simple-cbor": "^0.4.1" + } + }, + "@dfinity/candid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.2.0.tgz", + "integrity": "sha512-L6gV3ODIFC9qNenq3zuRvHrTwH36IM5utVH2wMS5f5eIUeG9fNe+avYLRPBUJwdeX7cM7xhvDgE/m/aN2cZvKQ==", + "peer": true, + "requires": {} + }, + "@dfinity/principal": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.2.0.tgz", + "integrity": "sha512-7eurqPDL5ptlTTLMJPeiO75FAumXHsWEWDVQaN6XpA3aZtmofNK4Sb5g5Ne9syeuoCJcW3mFBbbFtFNxggxu+g==", + "peer": true, + "requires": { + "@noble/hashes": "^1.3.1" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } + } + }, + "@dfinity/principal": { + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-0.19.3.tgz", + "integrity": "sha512-+nixVvdGt7ECxRvLXDXsvU9q9sSPssBtDQ4bXa149SK6gcYcmZ6lfWIi3DJNqj3tGROxILVBsguel9tECappsA==", + "dev": true, + "peer": true, + "requires": { + "@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==", + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", + "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", + "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", + "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", + "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", + "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", + "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", + "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", + "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", + "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", + "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", + "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", + "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", + "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", + "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", + "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", + "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", + "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", + "optional": true + }, + "@esbuild/openbsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", + "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", + "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", + "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", + "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", + "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", + "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", + "optional": true + }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "requires": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + } + }, + "@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "requires": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + } + }, + "@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3" + } + }, + "@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + } + }, + "@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + } + }, + "@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } + } + }, + "@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.27.8" + } + }, + "@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } + } + }, + "@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "requires": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } + } + }, + "@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "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" + } + }, + "@noble/curves": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "requires": { + "@noble/hashes": "1.4.0" + }, + "dependencies": { + "@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" + } + } + }, + "@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==" + }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true + }, + "@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + } + }, + "@swc/core": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.91.tgz", + "integrity": "sha512-r950d0fdlZ8qbSDyvApn3HyCojiZE8xpgJzQvypeMi32dalYwugdJKWyLB55JIGMRGJ8+lmVvY4MPGkSR3kXgA==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "@swc/core-darwin-arm64": "1.3.91", + "@swc/core-darwin-x64": "1.3.91", + "@swc/core-linux-arm-gnueabihf": "1.3.91", + "@swc/core-linux-arm64-gnu": "1.3.91", + "@swc/core-linux-arm64-musl": "1.3.91", + "@swc/core-linux-x64-gnu": "1.3.91", + "@swc/core-linux-x64-musl": "1.3.91", + "@swc/core-win32-arm64-msvc": "1.3.91", + "@swc/core-win32-ia32-msvc": "1.3.91", + "@swc/core-win32-x64-msvc": "1.3.91", + "@swc/counter": "^0.1.1", + "@swc/types": "^0.1.5" + } + }, + "@swc/core-darwin-arm64": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.91.tgz", + "integrity": "sha512-7kHGiQ1he5khcEeJuHDmLZPM3rRL/ith5OTmV6bOPsoHi46kLeixORW+ts1opC3tC9vu6xbk16xgX0QAJchc1w==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-darwin-x64": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.91.tgz", + "integrity": "sha512-8SpU18FbFpZDVzsHsAwdI1thF/picQGxq9UFxa8W+T9SDnbsqwFJv/6RqKJeJoDV6qFdl2OLjuO0OL7xrp0qnQ==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-linux-arm-gnueabihf": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.91.tgz", + "integrity": "sha512-fOq4Cy8UbwX1yf0WB0d8hWZaIKCnPtPGguRqdXGLfwvhjZ9SIErT6PnmGTGRbQCNCIkOZWHKyTU0r8t2dN3haQ==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-linux-arm64-gnu": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.91.tgz", + "integrity": "sha512-fki4ioRP/Esy4vdp8T34RCV+V9dqkRmOt763pf74pdiyFV2dPLXa5lnw/XvR1RTfPGknrYgjEQLCfZlReTryRw==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-linux-arm64-musl": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.91.tgz", + "integrity": "sha512-XrG+DUUqNtfVLcJ20imby7fpBwQNG5VsEQBzQndSonPyUOa2YkTbBb60YDondfQGDABopuHH8gHN8o2H2/VCnQ==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-linux-x64-gnu": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.91.tgz", + "integrity": "sha512-d11bYhX+YPBr/Frcjc6eVn3C0LuS/9U1Li9EmQ+6s9EpYtYRl2ygSlC8eueLbaiazBnCVYFnc8bU4o0kc5B9sw==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-linux-x64-musl": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.91.tgz", + "integrity": "sha512-2SRp5Dke2P4jCQePkDx9trkkTstnRpZJVw5r3jvYdk0zeO6iC4+ZPvvoWXJLigqQv/fZnIiSUfJ6ssOoaEqTzQ==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-win32-arm64-msvc": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.91.tgz", + "integrity": "sha512-l9qKXikOxj42UIjbeZpz9xtBmr736jOMqInNP8mVF2/U+ws5sI8zJjcOFFtfis4ru7vWCXhB1wtltdlJYO2vGA==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-win32-ia32-msvc": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.91.tgz", + "integrity": "sha512-+s+52O0QVPmzOgjEe/rcb0AK6q/J7EHKwAyJCu/FaYO9df5ovE0HJjSKP6HAF0dGPO5hkENrXuNGujofUH9vtQ==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-win32-x64-msvc": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.91.tgz", + "integrity": "sha512-7u9HDQhjUC3Gv43EFW84dZtduWCSa4MgltK+Sp9zEGti6WXqDPu/ESjvDsQEVYTBEMEvZs/xVAXPgLVHorV5nQ==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/counter": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.2.tgz", + "integrity": "sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/types": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", + "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", + "dev": true, + "optional": true, + "peer": true + }, + "@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true, + "optional": true, + "peer": true + }, + "@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true, + "optional": true, + "peer": true + }, + "@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true, + "optional": true, + "peer": true + }, + "@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true, + "optional": true, + "peer": true + }, + "@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "@types/uuid": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.4.tgz", + "integrity": "sha512-zAuJWQflfx6dYJM62vna+Sn5aeSWhh3OB+wfUEACNcqUSc0AGc5JKl+ycL1vrH7frGTXhJchYjE1Hak8L819dA==" + }, + "@types/validator": { + "version": "13.11.10", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.10.tgz", + "integrity": "sha512-e2PNXoXLr6Z+dbfx5zSh9TRlXJrELycxiaXznp4S5+D2M3b9bqJEitNHA5923jhnB2zzFiZHa2f0SI1HoIahpg==" + }, + "@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, + "optional": true, + "peer": true + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "optional": true, + "peer": true + }, + "aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "optional": true, + "peer": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "requires": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + } + }, + "azle": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/azle/-/azle-0.23.0.tgz", + "integrity": "sha512-BRp0YAe/mtLCWVZDDl5IUbCLFb2fWi2NnKLHTUC0+EmZu59kVAR7AT7DY/oMvYVYVqxGlw9eqOIzhqB1msChWQ==", + "requires": { + "@dfinity/agent": "^1.1.0", + "@dfinity/identity-secp256k1": "^1.1.0", + "@types/uuid": "^9.0.4", + "binaryen": "^116.0.0", + "buffer": "^6.0.3", + "chokidar": "^3.6.0", + "class-transformer": "^0.5.1", + "class-validator": "^0.14.1", + "crypto-browserify": "^3.12.0", + "deep-is": "^0.1.4", + "esbuild": "^0.23.0", + "esbuild-plugin-tsc": "^0.4.0", + "ethers": "6.11.1", + "fs-extra": "^11.2.0", + "glob": "^10.3.15", + "hash-of-directory": "^1.0.1", + "http-message-parser": "^0.0.34", + "intl": "^1.2.5", + "js-sha256": "0.9.0", + "net": "^1.0.2", + "pako": "^2.1.0", + "reflect-metadata": "^0.2.2", + "repl": "^0.1.3", + "text-encoding": "0.7.0", + "tsx": "^4.15.7", + "typescript": "^5.2.2", + "uuid": "^9.0.1" + }, + "dependencies": { + "@dfinity/agent": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.2.0.tgz", + "integrity": "sha512-i9mH0PO73nrhLc9lZv14SWr4muyMcs6uqqlG2SHQtRUFRXbqj4DOhKsU0Sm+kC8eWYCSu65WPKPYwwAR7YM6ug==", + "requires": { + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.1", + "base64-arraybuffer": "^0.2.0", + "borc": "^2.1.1", + "buffer": "^6.0.3", + "simple-cbor": "^0.4.1" + } + }, + "@dfinity/candid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.2.0.tgz", + "integrity": "sha512-L6gV3ODIFC9qNenq3zuRvHrTwH36IM5utVH2wMS5f5eIUeG9fNe+avYLRPBUJwdeX7cM7xhvDgE/m/aN2cZvKQ==", + "peer": true, + "requires": {} + }, + "@dfinity/principal": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.2.0.tgz", + "integrity": "sha512-7eurqPDL5ptlTTLMJPeiO75FAumXHsWEWDVQaN6XpA3aZtmofNK4Sb5g5Ne9syeuoCJcW3mFBbbFtFNxggxu+g==", + "peer": true, + "requires": { + "@noble/hashes": "^1.3.1" + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + } + }, + "minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "requires": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "dependencies": { + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + } + } + }, + "babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "base64-arraybuffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", + "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bignumber.js": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", + "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "binaryen": { + "version": "116.0.0", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0.tgz", + "integrity": "sha512-Hp0dXC6Cb/rTwWEoUS2BRghObE7g/S9umKtxuTDt3f61G6fNTE/YVew/ezyy3IdHcLx3f17qfh6LwETgCfvWkQ==" + }, + "bip39": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", + "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", + "requires": { + "@noble/hashes": "^1.2.0" + } + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "borc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", + "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", + "requires": { + "bignumber.js": "^9.0.0", + "buffer": "^5.5.0", + "commander": "^2.15.0", + "ieee754": "^1.1.13", + "iso-url": "~0.4.7", + "json-text-sequence": "~0.1.0", + "readable-stream": "^3.6.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "requires": { + "fill-range": "^7.1.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", + "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", + "requires": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.4", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.6", + "readable-stream": "^3.6.2", + "safe-buffer": "^5.2.1" + } + }, + "browserslist": { + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" + } + }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "requires": { + "base-x": "^4.0.0" + } + }, + "bs58check": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz", + "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==", + "requires": { + "@noble/hashes": "^1.2.0", + "bs58": "^5.0.0" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001636", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz", + "integrity": "sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true + }, + "class-transformer": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", + "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==" + }, + "class-validator": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.1.tgz", + "integrity": "sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==", + "requires": { + "@types/validator": "^13.11.8", + "libphonenumber-js": "^1.10.53", + "validator": "^13.9.0" + } + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "optional": true, + "peer": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "requires": {} + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true + }, + "delimit-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", + "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=" + }, + "des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "optional": true, + "peer": true + }, + "diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "electron-to-chromium": { + "version": "1.4.807", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.807.tgz", + "integrity": "sha512-kSmJl2ZwhNf/bcIuCH/imtNOKlpkLDn2jqT5FJ+/0CXjhnFaOa9cOe9gHKKy71eM49izwuQjZhKk+lWQ1JxB7A==", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "esbuild": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", + "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", + "requires": { + "@esbuild/aix-ppc64": "0.23.0", + "@esbuild/android-arm": "0.23.0", + "@esbuild/android-arm64": "0.23.0", + "@esbuild/android-x64": "0.23.0", + "@esbuild/darwin-arm64": "0.23.0", + "@esbuild/darwin-x64": "0.23.0", + "@esbuild/freebsd-arm64": "0.23.0", + "@esbuild/freebsd-x64": "0.23.0", + "@esbuild/linux-arm": "0.23.0", + "@esbuild/linux-arm64": "0.23.0", + "@esbuild/linux-ia32": "0.23.0", + "@esbuild/linux-loong64": "0.23.0", + "@esbuild/linux-mips64el": "0.23.0", + "@esbuild/linux-ppc64": "0.23.0", + "@esbuild/linux-riscv64": "0.23.0", + "@esbuild/linux-s390x": "0.23.0", + "@esbuild/linux-x64": "0.23.0", + "@esbuild/netbsd-x64": "0.23.0", + "@esbuild/openbsd-arm64": "0.23.0", + "@esbuild/openbsd-x64": "0.23.0", + "@esbuild/sunos-x64": "0.23.0", + "@esbuild/win32-arm64": "0.23.0", + "@esbuild/win32-ia32": "0.23.0", + "@esbuild/win32-x64": "0.23.0" + }, + "dependencies": { + "@esbuild/aix-ppc64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", + "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", + "optional": true + } + } + }, + "esbuild-plugin-tsc": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/esbuild-plugin-tsc/-/esbuild-plugin-tsc-0.4.0.tgz", + "integrity": "sha512-q9gWIovt1nkwchMLc2zhyksaiHOv3kDK4b0AUol8lkMCRhJ1zavgfb2fad6BKp7FT9rh/OHmEBXVjczLoi/0yw==", + "requires": { + "strip-comments": "^2.0.1" + } + }, + "escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "ethers": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.11.1.tgz", + "integrity": "sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg==", + "requires": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.5.0" + }, + "dependencies": { + "@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "requires": { + "@noble/hashes": "1.3.2" + } + }, + "@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "requires": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" + } + } + }, + "fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-prop": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/get-prop/-/get-prop-0.0.10.tgz", + "integrity": "sha512-XRSGBgcIisSMLJ/dwe1y/eMm9yzLicEJKmEXA3ArBkDkCW2nyRroLOoKIz+SdxuG5SI7ym2QHaTU5ifCl7MTDg==" + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "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==", + "requires": { + "resolve-pkg-maps": "^1.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "hash-of-directory": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hash-of-directory/-/hash-of-directory-1.0.1.tgz", + "integrity": "sha512-PX6VaxD6JK8R4113ChdTtEnWIo2XA9mz4yrtGBuUGUKtWCj6iWWYj/qwjdfs3Zgm+FdiNj0Vmt4VwPlwxx8WHw==" + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, + "hdkey": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz", + "integrity": "sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA==", + "requires": { + "bs58check": "^2.1.2", + "ripemd160": "^2.0.2", + "safe-buffer": "^5.1.1", + "secp256k1": "^4.0.0" + }, + "dependencies": { + "base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + } + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-message-parser": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/http-message-parser/-/http-message-parser-0.0.34.tgz", + "integrity": "sha512-KABKXT347AYvQoaMZg9/K+/GqW6gfB4pKCiTyMUYnosfkdkaBkrXE/cWGSLk5jvD5tiDeLFlYSHLhhPhQKbRrA==", + "requires": { + "buffer": "^4.9.1", + "concat-stream": "^1.5.1", + "get-prop": "0.0.10", + "minimist": "^1.2.0", + "stream-buffers": "^3.0.0" + }, + "dependencies": { + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + } + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "intl": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", + "integrity": "sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "iso-url": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", + "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==" + }, + "istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "dev": true, + "requires": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "dependencies": { + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, + "jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "requires": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + } + }, + "jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "requires": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + } + }, + "jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "requires": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + } + }, + "jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + } + }, + "jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + } + }, + "jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + } + }, + "jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true + }, + "jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + } + }, + "jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "requires": {} + }, + "jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true + }, + "jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "requires": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + } + }, + "jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + } + }, + "jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + } + }, + "jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "dependencies": { + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + } + } + }, + "jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + } + } + }, + "jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "requires": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + } + }, + "jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "requires": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-text-sequence": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", + "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", + "requires": { + "delimit-stream": "0.1.0" + } + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "libphonenumber-js": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.11.3.tgz", + "integrity": "sha512-RU0CTsLCu2v6VEzdP+W6UU2n5+jEpMDRkGxUeBgsAJgre3vKgm17eApISH9OQY4G0jZYJVIc8qXmz6CJFueAFg==" + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "requires": { + "semver": "^7.5.3" + }, + "dependencies": { + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "net": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/net/-/net-1.0.2.tgz", + "integrity": "sha512-kbhcj2SVVR4caaVnGLJKmlk2+f+oLkjqdKeQlmUtz6nGzOpbcobwVIeSURNgraV/v3tlmGIX82OcPCl0K6RbHQ==" + }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node-gyp-build": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", + "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" + }, + "pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "requires": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + } + } + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true + }, + "pvtsutils": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", + "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", + "requires": { + "tslib": "^2.6.1" + } + }, + "pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==" + }, + "query_end_to_end_test_functional_api": { + "version": "file:../../functional_api/query", + "requires": { + "@dfinity/agent": "0.19.2", + "azle": "0.23.0", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" + }, + "repl": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/repl/-/repl-0.1.3.tgz", + "integrity": "sha512-C3ZEHaX28+EvM9lPiXl9ruN2g5M5sUvyCIDvZ0M4VCusfA1Cn0+z3tJcQl/lvxPsBm82q4hKHKebPlE3SEhFKg==" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "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==" + }, + "resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "requires": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "simple-cbor": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/simple-cbor/-/simple-cbor-0.4.1.tgz", + "integrity": "sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w==" + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "stream-buffers": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz", + "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==" + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-encoding": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz", + "integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==" + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-jest": { + "version": "29.1.5", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.5.tgz", + "integrity": "sha512-UuClSYxM7byvvYfyWdFI+/2UxMmwNyJb0NPkZPQE2hew3RurV7l7zURgOHAd/1I1ZdPpe3GUsXNXAcN8TFKSIg==", + "dev": true, + "requires": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "^7.5.3", + "yargs-parser": "^21.0.1" + }, + "dependencies": { + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + } + } + }, + "ts-node": { + "version": "10.9.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.0.tgz", + "integrity": "sha512-bunW18GUyaCSYRev4DPf4SQpom3pWH29wKl0sDk5zE7ze19RImEVhCW7K4v3hHKkUyfWotU08ToE2RS+Y49aug==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "dependencies": { + "@cspotcode/source-map-support": { + "version": "0.8.1", + "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" + } + } + } + }, + "tslib": { + "version": "2.6.2", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==" + }, + "universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" + }, + "update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "requires": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" + }, + "v8-compile-cache-lib": { + "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, + "optional": true, + "peer": true + }, + "v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } + } + }, + "validator": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==" + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "requires": {} + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "optional": true, + "peer": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/tests/end_to_end/candid_rpc/class_api/query/package.json b/tests/end_to_end/candid_rpc/class_api/query/package.json new file mode 100644 index 0000000000..8df9558cd6 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/query/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.19.2", + "jest": "^29.7.0", + "query_end_to_end_test_functional_api": "file:../../functional_api/query", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/query/src/index.ts b/tests/end_to_end/candid_rpc/class_api/query/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/query/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/query/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/query/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/query/test/pretest.ts new file mode 100644 index 0000000000..50d1d83bc6 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/query/test/pretest.ts @@ -0,0 +1,23 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join('tests', 'end_to_end', 'candid_rpc', 'functional_api', 'query') + ); + + execSync(`dfx canister uninstall-code query || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy query`, { + stdio: 'inherit' + }); + + execSync(`dfx generate query`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/query/test/test.ts b/tests/end_to_end/candid_rpc/class_api/query/test/test.ts new file mode 100644 index 0000000000..abbc999a60 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/query/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'query_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/query'; + +const queryCanister = createActor(getCanisterId('query'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(queryCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/query/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/query/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/query/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/query/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/randomness/.gitignore b/tests/end_to_end/candid_rpc/class_api/randomness/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/randomness/.gitignore rename to tests/end_to_end/candid_rpc/class_api/randomness/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/randomness/dfx.json b/tests/end_to_end/candid_rpc/class_api/randomness/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/randomness/dfx.json rename to tests/end_to_end/candid_rpc/class_api/randomness/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/randomness/jest.config.js b/tests/end_to_end/candid_rpc/class_api/randomness/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/randomness/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/randomness/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/randomness/package-lock.json b/tests/end_to_end/candid_rpc/class_api/randomness/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/randomness/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/randomness/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/randomness/package.json b/tests/end_to_end/candid_rpc/class_api/randomness/package.json new file mode 100644 index 0000000000..0807bb6e05 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/randomness/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "randomness_end_to_end_test_functional_api": "file:../../functional_api/randomness", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/randomness/src/index.ts b/tests/end_to_end/candid_rpc/class_api/randomness/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/randomness/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/randomness/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/randomness/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/randomness/test/pretest.ts new file mode 100644 index 0000000000..dad4030803 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/randomness/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'randomness' + ) + ); + + execSync(`dfx canister uninstall-code randomness || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy randomness`, { + stdio: 'inherit' + }); + + execSync(`dfx generate randomness`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/randomness/test/test.ts b/tests/end_to_end/candid_rpc/class_api/randomness/test/test.ts new file mode 100644 index 0000000000..e3ae2c5d12 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/randomness/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'randomness_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/randomness'; + +const randomnessCanister = createActor(getCanisterId('randomness'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(randomnessCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/randomness/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/randomness/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/randomness/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/randomness/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/recursion/.gitignore b/tests/end_to_end/candid_rpc/class_api/recursion/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/recursion/.gitignore rename to tests/end_to_end/candid_rpc/class_api/recursion/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/recursion/dfx.json b/tests/end_to_end/candid_rpc/class_api/recursion/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/recursion/dfx.json rename to tests/end_to_end/candid_rpc/class_api/recursion/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/recursion/jest.config.js b/tests/end_to_end/candid_rpc/class_api/recursion/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/recursion/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/recursion/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/recursion/package-lock.json b/tests/end_to_end/candid_rpc/class_api/recursion/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/recursion/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/recursion/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/recursion/package.json b/tests/end_to_end/candid_rpc/class_api/recursion/package.json new file mode 100644 index 0000000000..e30e781c35 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/recursion/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "recursion_end_to_end_test_functional_api": "file:../../functional_api/recursion", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/recursion/src/recursion/index.ts b/tests/end_to_end/candid_rpc/class_api/recursion/src/recursion/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/recursion/src/recursion/index.ts rename to tests/end_to_end/candid_rpc/class_api/recursion/src/recursion/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/recursion/src/recursive_canister/index.did b/tests/end_to_end/candid_rpc/class_api/recursion/src/recursive_canister/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/recursion/src/recursive_canister/index.did rename to tests/end_to_end/candid_rpc/class_api/recursion/src/recursive_canister/index.did diff --git a/tests/end_to_end/candid_rpc/class_syntax/recursion/src/recursive_canister/index.ts b/tests/end_to_end/candid_rpc/class_api/recursion/src/recursive_canister/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/recursion/src/recursive_canister/index.ts rename to tests/end_to_end/candid_rpc/class_api/recursion/src/recursive_canister/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/recursion/src/recursive_canister/types.ts b/tests/end_to_end/candid_rpc/class_api/recursion/src/recursive_canister/types.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/recursion/src/recursive_canister/types.ts rename to tests/end_to_end/candid_rpc/class_api/recursion/src/recursive_canister/types.ts diff --git a/tests/end_to_end/candid_rpc/class_api/recursion/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/recursion/test/pretest.ts new file mode 100644 index 0000000000..a3af9b8dd1 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/recursion/test/pretest.ts @@ -0,0 +1,41 @@ +import { getCanisterId } from 'azle/dfx'; +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join('tests', 'end_to_end', 'candid_rpc', 'functional_api', 'recursion') + ); + + execSync(`dfx canister uninstall-code recursive_canister || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy recursive_canister --argument '("hello")'`, { + stdio: 'inherit' + }); + + execSync(`dfx generate recursive_canister`, { + stdio: 'inherit' + }); + + execSync(`dfx canister uninstall-code recursion || true`, { + stdio: 'inherit' + }); + + execSync( + `MY_CANISTER_PRINCIPAL=${getCanisterId( + 'recursive_canister' + )} dfx deploy recursion`, + { + stdio: 'inherit' + } + ); + + execSync(`dfx generate recursion`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/recursion/test/test.ts b/tests/end_to_end/candid_rpc/class_api/recursion/test/test.ts new file mode 100644 index 0000000000..e5c63c3603 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/recursion/test/test.ts @@ -0,0 +1,35 @@ +import { describe } from '@jest/globals'; +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { + getRecursiveCanisterTests, + getTests +} from 'recursion_end_to_end_test_functional_api/test/tests'; + +// @ts-ignore +import { createActor } from './dfx_generated/recursion'; +// @ts-ignore +import { createActor as createRecursiveActor } from './dfx_generated/recursive_canister'; + +const recursionCanister = createActor(getCanisterId('recursion'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +const recursiveCanister = createRecursiveActor( + getCanisterId('recursive_canister'), + { + agentOptions: { + host: 'http://127.0.0.1:8000' + } + } +); + +runTests(() => { + describe('getTests', getTests(recursionCanister)); + describe( + 'getRecursiveCanisterTests', + getRecursiveCanisterTests(recursiveCanister) + ); +}); diff --git a/tests/end_to_end/candid_rpc/class_syntax/recursion/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/recursion/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/recursion/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/recursion/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/rejections/.gitignore b/tests/end_to_end/candid_rpc/class_api/rejections/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/rejections/.gitignore rename to tests/end_to_end/candid_rpc/class_api/rejections/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/rejections/dfx.json b/tests/end_to_end/candid_rpc/class_api/rejections/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/rejections/dfx.json rename to tests/end_to_end/candid_rpc/class_api/rejections/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/rejections/jest.config.js b/tests/end_to_end/candid_rpc/class_api/rejections/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/rejections/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/rejections/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/rejections/package-lock.json b/tests/end_to_end/candid_rpc/class_api/rejections/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/rejections/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/rejections/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/rejections/package.json b/tests/end_to_end/candid_rpc/class_api/rejections/package.json new file mode 100644 index 0000000000..db8c3891b8 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/rejections/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "rejections_end_to_end_test_functional_api": "file:../../functional_api/rejections", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/rejections/src/nonexistent.did b/tests/end_to_end/candid_rpc/class_api/rejections/src/nonexistent.did similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/rejections/src/nonexistent.did rename to tests/end_to_end/candid_rpc/class_api/rejections/src/nonexistent.did diff --git a/tests/end_to_end/candid_rpc/class_syntax/rejections/src/rejections/index.ts b/tests/end_to_end/candid_rpc/class_api/rejections/src/rejections/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/rejections/src/rejections/index.ts rename to tests/end_to_end/candid_rpc/class_api/rejections/src/rejections/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/rejections/src/some_canister/index.did b/tests/end_to_end/candid_rpc/class_api/rejections/src/some_canister/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/rejections/src/some_canister/index.did rename to tests/end_to_end/candid_rpc/class_api/rejections/src/some_canister/index.did diff --git a/tests/end_to_end/candid_rpc/class_syntax/rejections/src/some_canister/index.ts b/tests/end_to_end/candid_rpc/class_api/rejections/src/some_canister/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/rejections/src/some_canister/index.ts rename to tests/end_to_end/candid_rpc/class_api/rejections/src/some_canister/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/rejections/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/rejections/test/pretest.ts new file mode 100644 index 0000000000..970f21bbf5 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/rejections/test/pretest.ts @@ -0,0 +1,43 @@ +import { getCanisterId } from 'azle/dfx'; +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'rejections' + ) + ); + + execSync(`dfx canister uninstall-code rejections || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister uninstall-code some_canister || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy some_canister`, { + stdio: 'inherit' + }); + + execSync( + `SOME_CANISTER_PRINCIPAL=${getCanisterId( + 'some_canister' + )} dfx deploy rejections`, + { + stdio: 'inherit' + } + ); + + execSync(`dfx generate`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/rejections/test/test.ts b/tests/end_to_end/candid_rpc/class_api/rejections/test/test.ts new file mode 100644 index 0000000000..bc986c4c8d --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/rejections/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'rejections_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/rejections'; + +const rejectionsCanister = createActor(getCanisterId('rejections'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(rejectionsCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/rejections/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/rejections/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/rejections/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/rejections/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/.gitignore b/tests/end_to_end/candid_rpc/class_api/simple_erc20/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/simple_erc20/.gitignore rename to tests/end_to_end/candid_rpc/class_api/simple_erc20/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/dfx.json b/tests/end_to_end/candid_rpc/class_api/simple_erc20/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/simple_erc20/dfx.json rename to tests/end_to_end/candid_rpc/class_api/simple_erc20/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/jest.config.js b/tests/end_to_end/candid_rpc/class_api/simple_erc20/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/simple_erc20/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/simple_erc20/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/package-lock.json b/tests/end_to_end/candid_rpc/class_api/simple_erc20/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/simple_erc20/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/simple_erc20/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/simple_erc20/package.json b/tests/end_to_end/candid_rpc/class_api/simple_erc20/package.json new file mode 100644 index 0000000000..04dfc66667 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/simple_erc20/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "simple_erc20_end_to_end_test_functional_api": "file:../../functional_api/simple_erc20", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/src/index.ts b/tests/end_to_end/candid_rpc/class_api/simple_erc20/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/simple_erc20/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/simple_erc20/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/simple_erc20/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/simple_erc20/test/pretest.ts new file mode 100644 index 0000000000..5232a7ed06 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/simple_erc20/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'simple_erc20' + ) + ); + + execSync(`dfx canister uninstall-code simple_erc20 || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy simple_erc20`, { + stdio: 'inherit' + }); + + execSync(`dfx generate simple_erc20`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/simple_erc20/test/test.ts b/tests/end_to_end/candid_rpc/class_api/simple_erc20/test/test.ts new file mode 100644 index 0000000000..d6ee34587b --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/simple_erc20/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'simple_erc20_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/simple_erc20'; + +const simpleErc20Canister = createActor(getCanisterId('simple_erc20'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(simpleErc20Canister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/simple_erc20/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/simple_erc20/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/simple_erc20/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/.gitignore b/tests/end_to_end/candid_rpc/class_api/simple_user_accounts/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/.gitignore rename to tests/end_to_end/candid_rpc/class_api/simple_user_accounts/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/dfx.json b/tests/end_to_end/candid_rpc/class_api/simple_user_accounts/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/dfx.json rename to tests/end_to_end/candid_rpc/class_api/simple_user_accounts/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/jest.config.js b/tests/end_to_end/candid_rpc/class_api/simple_user_accounts/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/simple_user_accounts/jest.config.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_api/simple_user_accounts/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/simple_user_accounts/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/simple_user_accounts/package.json b/tests/end_to_end/candid_rpc/class_api/simple_user_accounts/package.json new file mode 100644 index 0000000000..2e88f4ab58 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/simple_user_accounts/package.json @@ -0,0 +1,18 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0", + "text-encoding": "^0.7.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "simple_user_accounts_end_to_end_test_functional_api": "file:../../functional_api/simple_user_accounts", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/src/index.ts b/tests/end_to_end/candid_rpc/class_api/simple_user_accounts/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/simple_user_accounts/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/simple_user_accounts/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/simple_user_accounts/test/pretest.ts new file mode 100644 index 0000000000..aa527fc53b --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/simple_user_accounts/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'simple_user_accounts' + ) + ); + + execSync(`dfx canister uninstall-code simple_user_accounts || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy simple_user_accounts`, { + stdio: 'inherit' + }); + + execSync(`dfx generate simple_user_accounts`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/simple_user_accounts/test/test.ts b/tests/end_to_end/candid_rpc/class_api/simple_user_accounts/test/test.ts new file mode 100644 index 0000000000..b23e810a5a --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/simple_user_accounts/test/test.ts @@ -0,0 +1,16 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'simple_user_accounts_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/simple_user_accounts'; + +const simpleUserAccountsCanister = createActor( + getCanisterId('simple_user_accounts'), + { + agentOptions: { + host: 'http://127.0.0.1:8000' + } + } +); + +runTests(getTests(simpleUserAccountsCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/simple_user_accounts/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/simple_user_accounts/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/.gitignore b/tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/.gitignore rename to tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/dfx.json b/tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/dfx.json rename to tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/jest.config.js b/tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/package-lock.json b/tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/package.json b/tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/package.json new file mode 100644 index 0000000000..5dd8f0d781 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/package.json @@ -0,0 +1,18 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0", + "uuid": "^9.0.1" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "stable_b_tree_map_instruction_threshold_end_to_end_test_functional_api": "file:../../functional_api/stable_b_tree_map_instruction_threshold", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/src/index.ts b/tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/test/pretest.ts new file mode 100644 index 0000000000..5a2b0b1c1f --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/test/pretest.ts @@ -0,0 +1,32 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'stable_b_tree_map_instruction_threshold' + ) + ); + + execSync( + `dfx canister uninstall-code stable_b_tree_map_instruction_threshold || true`, + { + stdio: 'inherit' + } + ); + + execSync(`dfx deploy stable_b_tree_map_instruction_threshold`, { + stdio: 'inherit' + }); + + execSync(`dfx generate stable_b_tree_map_instruction_threshold`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/test/test.ts b/tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/test/test.ts new file mode 100644 index 0000000000..ca6c7dc7a8 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/test/test.ts @@ -0,0 +1,16 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'stable_b_tree_map_instruction_threshold_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/stable_b_tree_map_instruction_threshold'; + +const stableBTreeMapInstructionThresholdCanister = createActor( + getCanisterId('stable_b_tree_map_instruction_threshold'), + { + agentOptions: { + host: 'http://127.0.0.1:8000' + } + } +); + +runTests(getTests(stableBTreeMapInstructionThresholdCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/stable_b_tree_map_instruction_threshold/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_structures/.gitignore b/tests/end_to_end/candid_rpc/class_api/stable_structures/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/stable_structures/.gitignore rename to tests/end_to_end/candid_rpc/class_api/stable_structures/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_structures/dfx.json b/tests/end_to_end/candid_rpc/class_api/stable_structures/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/stable_structures/dfx.json rename to tests/end_to_end/candid_rpc/class_api/stable_structures/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_structures/jest.config.js b/tests/end_to_end/candid_rpc/class_api/stable_structures/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/stable_structures/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/stable_structures/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_structures/package-lock.json b/tests/end_to_end/candid_rpc/class_api/stable_structures/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/stable_structures/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/stable_structures/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/stable_structures/package.json b/tests/end_to_end/candid_rpc/class_api/stable_structures/package.json new file mode 100644 index 0000000000..9515fc9644 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/stable_structures/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "stable_structures_end_to_end_test_functional_api": "file:../../functional_api/stable_structures", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_structures/src/canister1/index.ts b/tests/end_to_end/candid_rpc/class_api/stable_structures/src/canister1/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/stable_structures/src/canister1/index.ts rename to tests/end_to_end/candid_rpc/class_api/stable_structures/src/canister1/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_structures/src/canister2/index.ts b/tests/end_to_end/candid_rpc/class_api/stable_structures/src/canister2/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/stable_structures/src/canister2/index.ts rename to tests/end_to_end/candid_rpc/class_api/stable_structures/src/canister2/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_structures/src/canister3/index.ts b/tests/end_to_end/candid_rpc/class_api/stable_structures/src/canister3/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/stable_structures/src/canister3/index.ts rename to tests/end_to_end/candid_rpc/class_api/stable_structures/src/canister3/index.ts diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_structures/src/types.ts b/tests/end_to_end/candid_rpc/class_api/stable_structures/src/types.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/stable_structures/src/types.ts rename to tests/end_to_end/candid_rpc/class_api/stable_structures/src/types.ts diff --git a/tests/end_to_end/candid_rpc/class_api/stable_structures/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/stable_structures/test/pretest.ts new file mode 100644 index 0000000000..44c8b41b33 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/stable_structures/test/pretest.ts @@ -0,0 +1,37 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'stable_structures' + ) + ); + + execSync(`dfx canister uninstall-code canister1 || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister uninstall-code canister2 || true`, { + stdio: 'inherit' + }); + + execSync(`dfx canister uninstall-code canister3 || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy`, { + stdio: 'inherit' + }); + + execSync(`dfx generate`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/stable_structures/test/test.ts b/tests/end_to_end/candid_rpc/class_api/stable_structures/test/test.ts new file mode 100644 index 0000000000..fd969dde2e --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/stable_structures/test/test.ts @@ -0,0 +1,42 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'stable_structures_end_to_end_test_functional_api/test/tests'; + +import { createActor as createActorCanister1 } from './dfx_generated/canister1'; +import { createActor as createActorCanister2 } from './dfx_generated/canister2'; +import { createActor as createActorCanister3 } from './dfx_generated/canister3'; +import { _SERVICE } from './dfx_generated/canister3/canister3.did'; + +const stableStructuresCanister_1 = createActorCanister1( + getCanisterId('canister1'), + { + agentOptions: { + host: 'http://127.0.0.1:8000' + } + } +); + +const stableStructuresCanister_2 = createActorCanister2( + getCanisterId('canister2'), + { + agentOptions: { + host: 'http://127.0.0.1:8000' + } + } +); +const stableStructuresCanister_3 = createActorCanister3( + getCanisterId('canister3'), + { + agentOptions: { + host: 'http://127.0.0.1:8000' + } + } +); + +runTests( + getTests( + stableStructuresCanister_1, + stableStructuresCanister_2, + stableStructuresCanister_3 + ) +); diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_structures/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/stable_structures/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/stable_structures/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/stable_structures/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/timers/.gitignore b/tests/end_to_end/candid_rpc/class_api/timers/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/timers/.gitignore rename to tests/end_to_end/candid_rpc/class_api/timers/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/timers/dfx.json b/tests/end_to_end/candid_rpc/class_api/timers/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/timers/dfx.json rename to tests/end_to_end/candid_rpc/class_api/timers/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/timers/jest.config.js b/tests/end_to_end/candid_rpc/class_api/timers/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/timers/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/timers/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/timers/package-lock.json b/tests/end_to_end/candid_rpc/class_api/timers/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/timers/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/timers/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/timers/package.json b/tests/end_to_end/candid_rpc/class_api/timers/package.json new file mode 100644 index 0000000000..ebad9422fc --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/timers/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "timers_end_to_end_test_functional_api": "file:../../functional_api/timers", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/timers/src/timers.ts b/tests/end_to_end/candid_rpc/class_api/timers/src/timers.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/timers/src/timers.ts rename to tests/end_to_end/candid_rpc/class_api/timers/src/timers.ts diff --git a/tests/end_to_end/candid_rpc/class_api/timers/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/timers/test/pretest.ts new file mode 100644 index 0000000000..10f6f07446 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/timers/test/pretest.ts @@ -0,0 +1,23 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join('tests', 'end_to_end', 'candid_rpc', 'functional_api', 'timers') + ); + + execSync(`dfx canister uninstall-code timers || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy`, { + stdio: 'inherit' + }); + + execSync(`dfx generate`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/timers/test/test.ts b/tests/end_to_end/candid_rpc/class_api/timers/test/test.ts new file mode 100644 index 0000000000..18c54557ec --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/timers/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'timers_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/timers'; + +const timersCanister = createActor(getCanisterId('timers'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(timersCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/timers/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/timers/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/timers/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/timers/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/tuple_types/.gitignore b/tests/end_to_end/candid_rpc/class_api/tuple_types/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/tuple_types/.gitignore rename to tests/end_to_end/candid_rpc/class_api/tuple_types/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/tuple_types/dfx.json b/tests/end_to_end/candid_rpc/class_api/tuple_types/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/tuple_types/dfx.json rename to tests/end_to_end/candid_rpc/class_api/tuple_types/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/tuple_types/jest.config.js b/tests/end_to_end/candid_rpc/class_api/tuple_types/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/tuple_types/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/tuple_types/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/tuple_types/package-lock.json b/tests/end_to_end/candid_rpc/class_api/tuple_types/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/tuple_types/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/tuple_types/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/tuple_types/package.json b/tests/end_to_end/candid_rpc/class_api/tuple_types/package.json new file mode 100644 index 0000000000..aaae75b83e --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/tuple_types/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "tuple_types_end_to_end_test_functional_api": "file:../../functional_api/tuple_types", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/tuple_types/src/index.ts b/tests/end_to_end/candid_rpc/class_api/tuple_types/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/tuple_types/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/tuple_types/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/tuple_types/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/tuple_types/test/pretest.ts new file mode 100644 index 0000000000..f0c165ef86 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/tuple_types/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'tuple_types' + ) + ); + + execSync(`dfx canister uninstall-code tuple_types || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy tuple_types`, { + stdio: 'inherit' + }); + + execSync(`dfx generate tuple_types`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/tuple_types/test/test.ts b/tests/end_to_end/candid_rpc/class_api/tuple_types/test/test.ts new file mode 100644 index 0000000000..73b6fbbeb7 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/tuple_types/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'tuple_types_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/tuple_types'; + +const tupleTypesCanister = createActor(getCanisterId('tuple_types'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(tupleTypesCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/tuple_types/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/tuple_types/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/tuple_types/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/tuple_types/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/update/.gitignore b/tests/end_to_end/candid_rpc/class_api/update/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/update/.gitignore rename to tests/end_to_end/candid_rpc/class_api/update/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/update/dfx.json b/tests/end_to_end/candid_rpc/class_api/update/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/update/dfx.json rename to tests/end_to_end/candid_rpc/class_api/update/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/update/jest.config.js b/tests/end_to_end/candid_rpc/class_api/update/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/update/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/update/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/update/package-lock.json b/tests/end_to_end/candid_rpc/class_api/update/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/update/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/update/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/update/package.json b/tests/end_to_end/candid_rpc/class_api/update/package.json new file mode 100644 index 0000000000..e012641548 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/update/package.json @@ -0,0 +1,17 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2", + "update_end_to_end_test_functional_api": "file:../../functional_api/update" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/update/src/index.ts b/tests/end_to_end/candid_rpc/class_api/update/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/update/src/index.ts rename to tests/end_to_end/candid_rpc/class_api/update/src/index.ts diff --git a/tests/end_to_end/candid_rpc/class_api/update/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/update/test/pretest.ts new file mode 100644 index 0000000000..b6f5384c48 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/update/test/pretest.ts @@ -0,0 +1,23 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join('tests', 'end_to_end', 'candid_rpc', 'functional_api', 'update') + ); + + execSync(`dfx canister uninstall-code update || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy update`, { + stdio: 'inherit' + }); + + execSync(`dfx generate update`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/update/test/test.ts b/tests/end_to_end/candid_rpc/class_api/update/test/test.ts new file mode 100644 index 0000000000..96fff77637 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/update/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'update_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/update'; + +const updateCanister = createActor(getCanisterId('update'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(updateCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/update/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/update/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/update/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/update/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/.gitignore b/tests/end_to_end/candid_rpc/class_api/vanilla_js/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/vanilla_js/.gitignore rename to tests/end_to_end/candid_rpc/class_api/vanilla_js/.gitignore diff --git a/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/dfx.json b/tests/end_to_end/candid_rpc/class_api/vanilla_js/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/vanilla_js/dfx.json rename to tests/end_to_end/candid_rpc/class_api/vanilla_js/dfx.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/jest.config.js b/tests/end_to_end/candid_rpc/class_api/vanilla_js/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/vanilla_js/jest.config.js rename to tests/end_to_end/candid_rpc/class_api/vanilla_js/jest.config.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/package-lock.json b/tests/end_to_end/candid_rpc/class_api/vanilla_js/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/vanilla_js/package-lock.json rename to tests/end_to_end/candid_rpc/class_api/vanilla_js/package-lock.json diff --git a/tests/end_to_end/candid_rpc/class_api/vanilla_js/package.json b/tests/end_to_end/candid_rpc/class_api/vanilla_js/package.json new file mode 100644 index 0000000000..f584f009a1 --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/vanilla_js/package.json @@ -0,0 +1,18 @@ +{ + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0", + "js-sha256": "0.9.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2", + "vanilla_js_end_to_end_test_functional_api": "file:../../functional_api/vanilla_js" + } +} diff --git a/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/src/index.js b/tests/end_to_end/candid_rpc/class_api/vanilla_js/src/index.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/vanilla_js/src/index.js rename to tests/end_to_end/candid_rpc/class_api/vanilla_js/src/index.js diff --git a/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/src/library.js b/tests/end_to_end/candid_rpc/class_api/vanilla_js/src/library.js similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/vanilla_js/src/library.js rename to tests/end_to_end/candid_rpc/class_api/vanilla_js/src/library.js diff --git a/tests/end_to_end/candid_rpc/class_api/vanilla_js/test/pretest.ts b/tests/end_to_end/candid_rpc/class_api/vanilla_js/test/pretest.ts new file mode 100644 index 0000000000..ceeb2062ad --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/vanilla_js/test/pretest.ts @@ -0,0 +1,29 @@ +import { linkAndInstallPatch } from 'azle/test/jest_link'; +import { execSync } from 'child_process'; +import { join } from 'path'; + +function pretest(): void { + linkAndInstallPatch( + join( + 'tests', + 'end_to_end', + 'candid_rpc', + 'functional_api', + 'vanilla_js' + ) + ); + + execSync(`dfx canister uninstall-code vanilla_js || true`, { + stdio: 'inherit' + }); + + execSync(`dfx deploy vanilla_js`, { + stdio: 'inherit' + }); + + execSync(`dfx generate vanilla_js`, { + stdio: 'inherit' + }); +} + +pretest(); diff --git a/tests/end_to_end/candid_rpc/class_api/vanilla_js/test/test.ts b/tests/end_to_end/candid_rpc/class_api/vanilla_js/test/test.ts new file mode 100644 index 0000000000..f16a386bfc --- /dev/null +++ b/tests/end_to_end/candid_rpc/class_api/vanilla_js/test/test.ts @@ -0,0 +1,13 @@ +import { getCanisterId } from 'azle/dfx'; +import { runTests } from 'azle/test'; +import { getTests } from 'vanilla_js_end_to_end_test_functional_api/test/tests'; + +import { createActor } from './dfx_generated/vanilla_js'; + +const vanillaJsCanister = createActor(getCanisterId('vanilla_js'), { + agentOptions: { + host: 'http://127.0.0.1:8000' + } +}); + +runTests(getTests(vanillaJsCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/tsconfig.json b/tests/end_to_end/candid_rpc/class_api/vanilla_js/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/class_syntax/vanilla_js/tsconfig.json rename to tests/end_to_end/candid_rpc/class_api/vanilla_js/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/class_syntax/async_await/package.json b/tests/end_to_end/candid_rpc/class_syntax/async_await/package.json deleted file mode 100644 index 823118717e..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/async_await/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "async_await_end_to_end_test_functional_syntax": "file:../../functional_syntax/async_await", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/async_await/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/async_await/test/pretest.ts deleted file mode 100644 index 7d66d43f53..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/async_await/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'async_await' - ) - ); - - execSync(`dfx canister uninstall-code async_await || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy async_await`, { - stdio: 'inherit' - }); - - execSync(`dfx generate async_await`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/async_await/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/async_await/test/test.ts deleted file mode 100644 index 3c6ce55058..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/async_await/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getTests } from 'async_await_end_to_end_test_functional_syntax/test/tests'; -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; - -import { createActor } from './dfx_generated/async_await'; - -const asyncAwaitCanister = createActor(getCanisterId('async_await'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(asyncAwaitCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/package.json b/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/package.json deleted file mode 100644 index 2f2400b100..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.3", - "audio_recorder_end_to_end_test_functional_syntax": "file:../../functional_syntax/audio_recorder", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/test/pretest.ts deleted file mode 100644 index c7987c1c80..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'audio_recorder' - ) - ); - - execSync(`dfx canister uninstall-code audio_recorder || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy audio_recorder`, { - stdio: 'inherit' - }); - - execSync(`dfx generate audio_recorder`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/test/test.ts deleted file mode 100644 index 6debc7c140..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/audio_recorder/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getTests } from 'audio_recorder_end_to_end_test_functional_syntax/test/tests'; -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; - -import { createActor } from './dfx_generated/audio_recorder'; - -const audioRecorderCanister = createActor(getCanisterId('audio_recorder'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(audioRecorderCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/package.json b/tests/end_to_end/candid_rpc/class_syntax/bitcoin/package.json deleted file mode 100644 index f7a096eaf6..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "scripts": { - "bitcoind": ".bitcoin/bin/bitcoind -conf=$(pwd)/.bitcoin.conf -datadir=$(pwd)/.bitcoin/data --port=18444", - "bitcoin-cli": "bitcoin-cli -conf=$(pwd)/.bitcoin.conf -datadir=$(pwd)/.bitcoin/data -rpcport=18443", - "deploy": "./scripts/deploy.sh bitcoin", - "install": "./scripts/install.sh", - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "bitcoin_end_to_end_test_functional_syntax": "file:../../functional_syntax/bitcoin", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/bitcoin/test/pretest.ts deleted file mode 100644 index 97a86a8f96..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/test/pretest.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'bitcoin' - ) - ); - - execSync(`rm -rf .bitcoin/data/regtest`, { - stdio: 'inherit' - }); - - execSync(`dfx canister uninstall-code bitcoin || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy bitcoin`, { - stdio: 'inherit' - }); - - execSync(`dfx generate`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/bitcoin/test/test.ts deleted file mode 100644 index 2c3edeb39e..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/bitcoin/test/test.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { afterAll, beforeAll, describe } from '@jest/globals'; -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'bitcoin_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/bitcoin'; -import { BitcoinDaemon, startBitcoinDaemon } from './setup'; - -const bitcoinCanister = createActor(getCanisterId('bitcoin'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(() => { - let bitcoinDaemon: BitcoinDaemon; - - beforeAll(async () => { - bitcoinDaemon = await startBitcoinDaemon(); - }, 60_000); - - afterAll(() => { - bitcoinDaemon.kill(); - }); - - describe( - 'runs bitcoin tests while bitcoin daemon is running', - getTests(bitcoinCanister) - ); -}); diff --git a/tests/end_to_end/candid_rpc/class_syntax/blob_array/package.json b/tests/end_to_end/candid_rpc/class_syntax/blob_array/package.json deleted file mode 100644 index f7b506e2dc..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/blob_array/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "blob_array_end_to_end_test_functional_syntax": "file:../../functional_syntax/blob_array", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/blob_array/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/blob_array/test/pretest.ts deleted file mode 100644 index f6a1e808c7..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/blob_array/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'blob_array' - ) - ); - - execSync(`dfx canister uninstall-code blob_array || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy blob_array`, { - stdio: 'inherit' - }); - - execSync(`dfx generate blob_array`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/blob_array/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/blob_array/test/test.ts deleted file mode 100644 index a12355db8b..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/blob_array/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'blob_array_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/blob_array'; - -const blobCanister = createActor(getCanisterId('blob_array'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(blobCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/bytes/package.json b/tests/end_to_end/candid_rpc/class_syntax/bytes/package.json deleted file mode 100644 index 463ce6578a..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/bytes/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "bytes_end_to_end_test_functional_syntax": "file:../../functional_syntax/bytes", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/bytes/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/bytes/test/pretest.ts deleted file mode 100644 index 32e6f31335..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/bytes/test/pretest.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join('tests', 'end_to_end', 'candid_rpc', 'functional_syntax', 'bytes') - ); - - execSync(`dfx canister uninstall-code bytes_canister || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy bytes_canister`, { - stdio: 'inherit' - }); - - execSync(`dfx generate bytes_canister`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/bytes/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/bytes/test/test.ts deleted file mode 100644 index 1b1ab707ef..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/bytes/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'bytes_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/bytes_canister'; - -const bytesCanister = createActor(getCanisterId('bytes_canister'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(bytesCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/call_raw/package.json b/tests/end_to_end/candid_rpc/class_syntax/call_raw/package.json deleted file mode 100644 index a9979f690f..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/call_raw/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "call_raw_end_to_end_test_functional_syntax": "file:../../functional_syntax/call_raw", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/call_raw/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/call_raw/test/pretest.ts deleted file mode 100644 index b4a816b254..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/call_raw/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'call_raw' - ) - ); - - execSync(`dfx canister uninstall-code call_raw || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy call_raw`, { - stdio: 'inherit' - }); - - execSync(`dfx generate call_raw`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/call_raw/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/call_raw/test/test.ts deleted file mode 100644 index 0874c11212..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/call_raw/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'call_raw_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from '../test/dfx_generated/call_raw'; - -const callRawCanister = createActor(getCanisterId('call_raw'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(callRawCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/package.json b/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/package.json deleted file mode 100644 index 68cea2e6f9..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "candid_encoding_end_to_end_test_functional_syntax": "file:../../functional_syntax/candid_encoding", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/test/pretest.ts deleted file mode 100644 index 5e4bad3bfa..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'candid_encoding' - ) - ); - - execSync(`dfx canister uninstall-code candid_encoding || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy candid_encoding`, { - stdio: 'inherit' - }); - - execSync(`dfx generate candid_encoding`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/test/test.ts deleted file mode 100644 index 2207a63591..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/candid_encoding/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'candid_encoding_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/candid_encoding'; - -const candidEncodingCanister = createActor(getCanisterId('candid_encoding'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(candidEncodingCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/package.json b/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/package.json deleted file mode 100644 index 039f0b9310..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.19.2", - "candid_keywords_end_to_end_test_functional_syntax": "file:../../functional_syntax/candid_keywords", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/test/pretest.ts deleted file mode 100644 index 8abc67ae58..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'candid_keywords' - ) - ); - - execSync(`dfx canister uninstall-code candid_keywords || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy candid_keywords`, { - stdio: 'inherit' - }); - - execSync(`dfx generate candid_keywords`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/test/test.ts deleted file mode 100644 index 4af6a9a099..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/candid_keywords/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'candid_keywords_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/candid_keywords'; - -const queryCanister = createActor(getCanisterId('candid_keywords'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(queryCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/canister/package.json b/tests/end_to_end/candid_rpc/class_syntax/canister/package.json deleted file mode 100644 index 95329b5df4..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/canister/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.21.4", - "canister_end_to_end_test_functional_syntax": "file:../../functional_syntax/canister", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/canister/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/canister/test/pretest.ts deleted file mode 100644 index 947d581c10..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/canister/test/pretest.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'canister' - ) - ); - - execSync(`dfx canister uninstall-code canister || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister uninstall-code some_canister || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister create some_canister || true`, { - stdio: 'inherit' - }); - - execSync( - `SOME_CANISTER_PRINCIPAL=${getCanisterId('some_canister')} dfx deploy`, - { - stdio: 'inherit' - } - ); - - execSync(`dfx generate`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/canister/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/canister/test/test.ts deleted file mode 100644 index 5922535b93..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/canister/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'canister_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/canister'; - -const canister = createActor(getCanisterId('canister'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(canister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_init/package.json b/tests/end_to_end/candid_rpc/class_syntax/complex_init/package.json deleted file mode 100644 index e593324f0d..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/complex_init/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "complex_init_end_to_end_test_functional_syntax": "file:../../functional_syntax/complex_init", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_init/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/complex_init/test/pretest.ts deleted file mode 100644 index 59822c07a8..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/complex_init/test/pretest.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'complex_init' - ) - ); - - execSync(`dfx canister uninstall-code complex_init || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister uninstall-code rec_init || true`, { - stdio: 'inherit' - }); - - execSync( - `dfx deploy complex_init --argument 'record {"Oh hello there user"; record { id = "1" }}'`, - { - stdio: 'inherit' - } - ); - - execSync( - `dfx deploy rec_init --argument 'variant {Branch = variant {Leaf}}'`, - { - stdio: 'inherit' - } - ); - - execSync(`dfx generate complex_init`, { - stdio: 'inherit' - }); - - execSync(`dfx generate rec_init`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_init/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/complex_init/test/test.ts deleted file mode 100644 index 277fbf3431..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/complex_init/test/test.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { describe } from '@jest/globals'; -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { - getRecTests, - getTests -} from 'complex_init_end_to_end_test_functional_syntax/test/tests'; - -import { createActor as createComplexActor } from './dfx_generated/complex_init'; -// @ts-ignore -import { createActor as createRecActor } from './dfx_generated/rec_init'; - -const complexInitCanister = createComplexActor(getCanisterId('complex_init'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -const recInitCanister = createRecActor(getCanisterId('rec_init'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(() => { - describe('complex init canister', getTests(complexInitCanister)); - describe('rec init canister', getRecTests(recInitCanister)); -}); diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_types/package.json b/tests/end_to_end/candid_rpc/class_syntax/complex_types/package.json deleted file mode 100644 index 243d4b72d4..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/complex_types/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "complex_types_end_to_end_test_functional_syntax": "file:../../functional_syntax/complex_types", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_types/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/complex_types/test/pretest.ts deleted file mode 100644 index aaa2014957..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/complex_types/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'complex_types' - ) - ); - - execSync(`dfx canister uninstall-code complex_types || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy complex_types`, { - stdio: 'inherit' - }); - - execSync(`dfx generate complex_types`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/complex_types/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/complex_types/test/test.ts deleted file mode 100644 index 279ca72b21..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/complex_types/test/test.ts +++ /dev/null @@ -1,15 +0,0 @@ -// TODO this needs to be more thoroughly tested - -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'complex_types_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from '../test/dfx_generated/complex_types'; - -const complexTypesCanister = createActor(getCanisterId('complex_types'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(complexTypesCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/composite_queries/package.json b/tests/end_to_end/candid_rpc/class_syntax/composite_queries/package.json deleted file mode 100644 index 2ed08125a9..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/composite_queries/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "composite_queries_end_to_end_test_functional_syntax": "file:../../functional_syntax/composite_queries", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/composite_queries/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/composite_queries/test/pretest.ts deleted file mode 100644 index 5ddb331d53..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/composite_queries/test/pretest.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'composite_queries' - ) - ); - - execSync(`dfx canister uninstall-code canister1 || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister uninstall-code canister2 || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister uninstall-code canister3 || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister create canister1`, { - stdio: 'inherit' - }); - - execSync(`dfx canister create canister2`, { - stdio: 'inherit' - }); - - execSync(`dfx canister create canister3`, { - stdio: 'inherit' - }); - - execSync( - `CANISTER1_PRINCIPAL=${getCanisterId( - 'canister1' - )} CANISTER2_PRINCIPAL=${getCanisterId( - 'canister2' - )} CANISTER3_PRINCIPAL=${getCanisterId('canister3')} dfx deploy`, - { - stdio: 'inherit' - } - ); - - execSync(`dfx generate`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/composite_queries/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/composite_queries/test/test.ts deleted file mode 100644 index 39ef994e34..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/composite_queries/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'composite_queries_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/canister1'; - -const canister1 = createActor(getCanisterId('canister1'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(canister1)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/counter/package.json b/tests/end_to_end/candid_rpc/class_syntax/counter/package.json deleted file mode 100644 index 3e2767a0db..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/counter/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "counter_end_to_end_test_functional_syntax": "file:../../functional_syntax/counter", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/counter/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/counter/test/pretest.ts deleted file mode 100644 index 4493041bc7..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/counter/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'counter' - ) - ); - - execSync(`dfx canister uninstall-code counter || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy counter`, { - stdio: 'inherit' - }); - - execSync(`dfx generate counter`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/counter/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/counter/test/test.ts deleted file mode 100644 index ede495bd89..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/counter/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'counter_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/counter'; - -const counterCanister = createActor(getCanisterId('counter'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(counterCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/package.json b/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/package.json deleted file mode 100644 index 5f3fa7a50b..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "cross_canister_calls_end_to_end_test_functional_syntax": "file:../../functional_syntax/cross_canister_calls", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/test/pretest.ts deleted file mode 100644 index abae7c231f..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/test/pretest.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'cross_canister_calls' - ) - ); - - execSync(`dfx canister uninstall-code canister1 || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister uninstall-code canister2 || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister create canister2`, { - stdio: 'inherit' - }); - - execSync(`CANISTER2_PRINCIPAL=${getCanisterId('canister2')} dfx deploy`, { - stdio: 'inherit' - }); - - execSync(`dfx generate`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/test/test.ts deleted file mode 100644 index 27fe423e64..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/cross_canister_calls/test/test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'cross_canister_calls_end_to_end_test_functional_syntax/test/tests'; - -import { createActor as createActorCanister1 } from './dfx_generated/canister1'; -import { createActor as createActorCanister2 } from './dfx_generated/canister2'; - -const canister1 = createActorCanister1(getCanisterId('canister1'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -const canister2 = createActorCanister2(getCanisterId('canister2'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(canister1, canister2)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/cycles/package.json b/tests/end_to_end/candid_rpc/class_syntax/cycles/package.json deleted file mode 100644 index 38df65ecf1..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/cycles/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "cycles_end_to_end_test_functional_syntax": "file:../../functional_syntax/cycles", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/cycles/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/cycles/test/pretest.ts deleted file mode 100644 index 146b42d6ad..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/cycles/test/pretest.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join('tests', 'end_to_end', 'candid_rpc', 'functional_syntax', 'cycles') - ); - - execSync(`dfx canister uninstall-code cycles || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister uninstall-code intermediary || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy cycles`, { - stdio: 'inherit' - }); - - execSync( - `CYCLES_PRINCIPAL=${getCanisterId('cycles')} dfx deploy intermediary`, - { - stdio: 'inherit' - } - ); - - execSync(`dfx generate`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/cycles/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/cycles/test/test.ts deleted file mode 100644 index 900088be06..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/cycles/test/test.ts +++ /dev/null @@ -1,25 +0,0 @@ -// TODO If we want these tests to be more exact, we can check balances and make sure they are within some margin of error - -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'cycles_end_to_end_test_functional_syntax/test/tests'; - -import { createActor as createCyclesActor } from './dfx_generated/cycles'; -import { createActor as createIntermediaryActor } from './dfx_generated/intermediary'; - -const cyclesCanister = createCyclesActor(getCanisterId('cycles'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -const intermediaryCanister = createIntermediaryActor( - getCanisterId('intermediary'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } - } -); - -runTests(getTests(cyclesCanister, intermediaryCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/date/package.json b/tests/end_to_end/candid_rpc/class_syntax/date/package.json deleted file mode 100644 index a5ed20166d..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/date/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "date_end_to_end_test_functional_syntax": "file:../../functional_syntax/date", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/date/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/date/test/pretest.ts deleted file mode 100644 index 6dd008821c..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/date/test/pretest.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join('tests', 'end_to_end', 'candid_rpc', 'functional_syntax', 'date') - ); - - execSync(`dfx canister uninstall-code date || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy date`, { - stdio: 'inherit' - }); - - execSync(`dfx generate date`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/date/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/date/test/test.ts deleted file mode 100644 index e87c0ceae4..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/date/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'date_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/date'; - -const dateCanister = createActor(getCanisterId('date'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(dateCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/package.json b/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/package.json deleted file mode 100644 index f67024ec19..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "ETHEREUM_URL=https://rpc.ankr.com/eth tsx test/pretest.ts", - "test": "ETHEREUM_URL=https://rpc.ankr.com/eth jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "ethereum_json_rpc_end_to_end_test_functional_syntax": "file:../../functional_syntax/ethereum_json_rpc", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/test/pretest.ts deleted file mode 100644 index 2c58c02dbe..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/test/pretest.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'ethereum_json_rpc' - ) - ); - - execSync(`dfx canister uninstall-code ethereum_json_rpc || true`, { - stdio: 'inherit' - }); - - execSync( - `dfx deploy ethereum_json_rpc --argument '("${process.env.ETHEREUM_URL}")'`, - { - stdio: 'inherit' - } - ); - - execSync(`dfx generate`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/test/test.ts deleted file mode 100644 index 24ebd60c2f..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/ethereum_json_rpc/test/test.ts +++ /dev/null @@ -1,24 +0,0 @@ -// Ethereum genesis block balances taken from: https://raw.githubusercontent.com/lastmjs/eth-total-supply/master/nethermind-foundation.json - -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'ethereum_json_rpc_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/ethereum_json_rpc'; - -if (process.env.ETHEREUM_URL === undefined) { - throw new Error( - `No Ethereum URL set, did you set the ETHEREUM_URL environment variable?\nExample: ETHEREUM_URL=https://some-ethereum-provider-url.org npm test` - ); -} - -const ethereumJsonRpcCanister = createActor( - getCanisterId('ethereum_json_rpc'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } - } -); - -runTests(getTests(ethereumJsonRpcCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/func_types/package.json b/tests/end_to_end/candid_rpc/class_syntax/func_types/package.json deleted file mode 100644 index 6881e5cd2f..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/func_types/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "func_types_end_to_end_test_functional_syntax": "file:../../functional_syntax/func_types", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/func_types/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/func_types/test/pretest.ts deleted file mode 100644 index afaf0200a9..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/func_types/test/pretest.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'func_types' - ) - ); - - execSync(`dfx canister uninstall-code func_types || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister uninstall-code notifiers || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister create notifiers || true`, { - stdio: 'inherit' - }); - - execSync(`NOTIFIERS_PRINCIPAL=${getCanisterId('notifiers')} dfx deploy`, { - stdio: 'inherit' - }); - - execSync(`dfx generate`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/func_types/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/func_types/test/test.ts deleted file mode 100644 index 4e8af58ed7..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/func_types/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'func_types_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/func_types'; - -const funcTypesCanister = createActor(getCanisterId('func_types'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(funcTypesCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/heartbeat/package.json b/tests/end_to_end/candid_rpc/class_syntax/heartbeat/package.json deleted file mode 100644 index 4db362463b..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/heartbeat/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "heartbeat_end_to_end_test_functional_syntax": "file:../../functional_syntax/heartbeat", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/heartbeat/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/heartbeat/test/pretest.ts deleted file mode 100644 index d644ff5404..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/heartbeat/test/pretest.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'heartbeat' - ) - ); - - execSync(`dfx canister uninstall-code heartbeat_async || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister uninstall-code heartbeat_sync || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy`, { - stdio: 'inherit' - }); - - execSync(`dfx generate`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/heartbeat/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/heartbeat/test/test.ts deleted file mode 100644 index 6680b29950..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/heartbeat/test/test.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'heartbeat_end_to_end_test_functional_syntax/test/tests'; - -import { createActor as createActorHeartbeatAsync } from './dfx_generated/heartbeat_async'; -import { createActor as createActorHeartbeatSync } from './dfx_generated/heartbeat_sync'; - -const heartbeatAsyncCanister = createActorHeartbeatAsync( - getCanisterId('heartbeat_async'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } - } -); - -const heartbeatSyncCanister = createActorHeartbeatSync( - getCanisterId('heartbeat_sync'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } - } -); - -runTests(getTests(heartbeatAsyncCanister, heartbeatSyncCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/ic_api/package.json b/tests/end_to_end/candid_rpc/class_syntax/ic_api/package.json deleted file mode 100644 index a982fd242a..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/ic_api/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "ic_api_end_to_end_test_functional_syntax": "file:../../functional_syntax/ic_api", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/ic_api/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/ic_api/test/pretest.ts deleted file mode 100644 index 308f3004c0..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/ic_api/test/pretest.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join('tests', 'end_to_end', 'candid_rpc', 'functional_syntax', 'ic_api') - ); - - execSync(`dfx canister uninstall-code ic_api || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy ic_api`, { - stdio: 'inherit' - }); - - execSync(`dfx generate ic_api`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/ic_api/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/ic_api/test/test.ts deleted file mode 100644 index 40bf30e43f..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/ic_api/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'ic_api_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/ic_api'; - -const icApiCanister = createActor(getCanisterId('ic_api'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(icApiCanister as any)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/icrc/package.json b/tests/end_to_end/candid_rpc/class_syntax/icrc/package.json deleted file mode 100644 index a238e84160..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/icrc/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.14.1", - "icrc_end_to_end_test_functional_syntax": "file:../../functional_syntax/icrc", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/icrc/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/icrc/test/pretest.ts deleted file mode 100644 index b98609ebe3..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/icrc/test/pretest.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(icrcPath: string): void { - linkAndInstallPatch( - join('tests', 'end_to_end', 'candid_rpc', 'functional_syntax', 'icrc') - ); - - execSync(`dfx canister uninstall-code proxy || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister uninstall-code icrc || true`, { - stdio: 'inherit' - }); - - execSync( - `rm -rf ${icrcPath} && cd canisters && git clone https://github.com/dfinity/ICRC-1 && cd ICRC-1 && rm -rf .git`, - { - stdio: 'inherit' - } - ); - - execSync( - `dfx deploy --argument "($(cat params.did | tr -s '\n' ' '))" icrc --specified-id rrkah-fqaaa-aaaaa-aaaaq-cai`, - { - stdio: 'inherit' - } - ); - - execSync( - `ICRC_PRINCIPAL=rrkah-fqaaa-aaaaa-aaaaq-cai dfx deploy proxy --specified-id r7inp-6aaaa-aaaaa-aaabq-cai`, - { - stdio: 'inherit' - } - ); - - execSync(`dfx generate proxy`, { - stdio: 'inherit' - }); -} - -pretest('canisters/ICRC-1'); diff --git a/tests/end_to_end/candid_rpc/class_syntax/icrc/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/icrc/test/test.ts deleted file mode 100644 index 57026140cd..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/icrc/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'icrc_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from '../test/dfx_generated/proxy'; - -const proxyCanister = createActor(getCanisterId('proxy'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(proxyCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/imports/package.json b/tests/end_to_end/candid_rpc/class_syntax/imports/package.json deleted file mode 100644 index 7bfeaa27a5..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/imports/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0", - "js-sha256": "0.9.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "imports_end_to_end_test_functional_syntax": "file:../../functional_syntax/imports", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/imports/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/imports/test/pretest.ts deleted file mode 100644 index 58547b58db..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/imports/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'imports' - ) - ); - - execSync(`dfx canister uninstall-code imports || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy imports`, { - stdio: 'inherit' - }); - - execSync(`dfx generate imports`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/imports/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/imports/test/test.ts deleted file mode 100644 index 7a2fced99a..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/imports/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'imports_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from '../test/dfx_generated/imports'; - -const importsCanister = createActor(getCanisterId('imports'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(importsCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/init/package.json b/tests/end_to_end/candid_rpc/class_syntax/init/package.json deleted file mode 100644 index 5747bb8763..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/init/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^1.4.0", - "init_end_to_end_test_functional_syntax": "file:../../functional_syntax/init", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/init/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/init/test/pretest.ts deleted file mode 100644 index c77e2c923a..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/init/test/pretest.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join('tests', 'end_to_end', 'candid_rpc', 'functional_syntax', 'init') - ); - - execSync(`dfx canister uninstall-code init || true`, { - stdio: 'inherit' - }); - - execSync( - `dfx deploy init --argument '(record { id = "0" }, variant { Fire }, principal "rrkah-fqaaa-aaaaa-aaaaq-cai")'`, - { - stdio: 'inherit' - } - ); - - execSync(`dfx generate init`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/init/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/init/test/test.ts deleted file mode 100644 index a31a392466..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/init/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'init_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/init'; - -const initCanister = createActor(getCanisterId('init'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(initCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/inspect_message/package.json b/tests/end_to_end/candid_rpc/class_syntax/inspect_message/package.json deleted file mode 100644 index 6e7f69ab1f..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/inspect_message/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "inspect_message_end_to_end_test_functional_syntax": "file:../../functional_syntax/inspect_message", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/inspect_message/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/inspect_message/test/pretest.ts deleted file mode 100644 index cd21397d54..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/inspect_message/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'inspect_message' - ) - ); - - execSync(`dfx canister uninstall-code inspect_message || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy inspect_message`, { - stdio: 'inherit' - }); - - execSync(`dfx generate inspect_message`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/inspect_message/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/inspect_message/test/test.ts deleted file mode 100644 index 3ea68d2476..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/inspect_message/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'inspect_message_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/inspect_message'; - -const inspectMessageCanister = createActor(getCanisterId('inspect_message'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(inspectMessageCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/key_value_store/package.json b/tests/end_to_end/candid_rpc/class_syntax/key_value_store/package.json deleted file mode 100644 index 0d4d1a6e7a..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/key_value_store/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "key_value_store_end_to_end_test_functional_syntax": "file:../../functional_syntax/key_value_store", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/key_value_store/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/key_value_store/test/pretest.ts deleted file mode 100644 index d52444ebf5..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/key_value_store/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'key_value_store' - ) - ); - - execSync(`dfx canister uninstall-code key_value_store || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy key_value_store`, { - stdio: 'inherit' - }); - - execSync(`dfx generate key_value_store`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/key_value_store/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/key_value_store/test/test.ts deleted file mode 100644 index 00f8c2af3a..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/key_value_store/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'key_value_store_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/key_value_store'; - -const keyValueStoreCanister = createActor(getCanisterId('key_value_store'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(keyValueStoreCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/package.json b/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/package.json deleted file mode 100644 index f8af6e1eb2..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ledger_canister_end_to_end_test_functional_syntax": "file:../../functional_syntax/ledger_canister", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/test/pretest.ts deleted file mode 100644 index 1610f4343c..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/test/pretest.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(icp_ledger_path: string): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'ledger_canister' - ) - ); - - execSync(`dfx canister uninstall-code icp_ledger || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister uninstall-code ledger_canister || true`, { - stdio: 'inherit' - }); - - execSync(`mkdir -p ${icp_ledger_path}`, { - stdio: 'inherit' - }); - - execSync( - `cd ${icp_ledger_path} && curl -o ledger.wasm.gz https://download.dfinity.systems/ic/d6d395a480cd6986b4788f4aafffc5c03a07e46e/canisters/ledger-canister_notify-method.wasm.gz`, - { - stdio: 'inherit' - } - ); - - execSync(`cd ${icp_ledger_path} && gunzip -f ledger.wasm.gz`, { - stdio: 'inherit' - }); - - execSync(`dfx canister create ledger_canister || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister create icp_ledger || true`, { - stdio: 'inherit' - }); - - execSync( - `ICP_CANISTER_PRINCIPAL=${getCanisterId( - 'icp_ledger' - )} dfx deploy ledger_canister`, - { - stdio: 'inherit' - } - ); - - execSync( - `dfx deploy icp_ledger --argument='(record {minting_account = "'$(dfx ledger account-id)'"; initial_values = vec { record { "'$(dfx ledger account-id --of-canister ledger_canister)'"; record { e8s=100_000_000_000 } }; }; send_whitelist = vec {}})'`, - { - stdio: 'inherit' - } - ); - - execSync(`dfx generate ledger_canister`, { - stdio: 'inherit' - }); -} - -pretest('src/icp_ledger'); diff --git a/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/test/test.ts deleted file mode 100644 index 88da2a398b..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/ledger_canister/test/test.ts +++ /dev/null @@ -1,16 +0,0 @@ -// TODO write tests for all ICRC functionality -// TODO test all errors for query blocks - -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'ledger_canister_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from '../test/dfx_generated/ledger_canister'; - -const ledgerCanister = createActor(getCanisterId('ledger_canister'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(ledgerCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/package.json b/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/package.json deleted file mode 100644 index de637f1f1b..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "fast-equals": "^5.0.1", - "jest": "^29.7.0", - "list_of_lists_end_to_end_test_functional_syntax": "file:../../functional_syntax/list_of_lists", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/test/pretest.ts deleted file mode 100644 index 4d83a92e0c..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'list_of_lists' - ) - ); - - execSync(`dfx canister uninstall-code list_of_lists || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy list_of_lists`, { - stdio: 'inherit' - }); - - execSync(`dfx generate list_of_lists`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/test/test.ts deleted file mode 100644 index 73e38536ae..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/list_of_lists/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'list_of_lists_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from '../dfx_generated/list_of_lists'; - -const listOfListsCanister = createActor(getCanisterId('list_of_lists'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(listOfListsCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/management_canister/package.json b/tests/end_to_end/candid_rpc/class_syntax/management_canister/package.json deleted file mode 100644 index 8a728e7ded..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/management_canister/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "management_canister_end_to_end_test_functional_syntax": "file:../../functional_syntax/management_canister", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/management_canister/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/management_canister/test/pretest.ts deleted file mode 100644 index 3cd7bd163b..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/management_canister/test/pretest.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'management_canister' - ) - ); - - execSync(`dfx canister uninstall-code management_canister || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy`, { - stdio: 'inherit' - }); - - execSync( - `dfx ledger fabricate-cycles --canister management_canister --cycles 100000000000000`, - { - stdio: 'inherit' - } - ); - - execSync(`dfx generate`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/management_canister/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/management_canister/test/test.ts deleted file mode 100644 index 0db22d9b55..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/management_canister/test/test.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'management_canister_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from '../test/dfx_generated/management_canister'; - -const canisterName = 'management_canister'; - -const managementCanister = createActor(getCanisterId(canisterName), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(managementCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/manual_reply/package.json b/tests/end_to_end/candid_rpc/class_syntax/manual_reply/package.json deleted file mode 100644 index 4c877817f3..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/manual_reply/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "manual_reply_end_to_end_test_functional_syntax": "file:../../functional_syntax/manual_reply", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/manual_reply/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/manual_reply/test/pretest.ts deleted file mode 100644 index c92669a271..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/manual_reply/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'manual_reply' - ) - ); - - execSync(`dfx canister uninstall-code manual_reply || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy manual_reply`, { - stdio: 'inherit' - }); - - execSync(`dfx generate manual_reply`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/manual_reply/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/manual_reply/test/test.ts deleted file mode 100644 index 6664eb4b18..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/manual_reply/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'manual_reply_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/manual_reply'; - -const manualReplyCanister = createActor(getCanisterId('manual_reply'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(manualReplyCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/package.json b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/package.json deleted file mode 100644 index f882b64dbe..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "calc_end_to_end_test_functional_syntax": "file:../../../functional_syntax/motoko_examples/calc", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/test/pretest.ts deleted file mode 100644 index d2c9f68534..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/test/pretest.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'motoko_examples', - 'calc' - ) - ); - - execSync(`dfx canister uninstall-code calc || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy calc`, { - stdio: 'inherit' - }); - - execSync(`dfx generate calc`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/test/test.ts deleted file mode 100644 index 5a9514548a..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/calc/test/test.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'calc_end_to_end_test_functional_syntax/test/tests'; - -// @ts-ignore -import { createActor } from './dfx_generated/calc'; - -const calcCanister = createActor(getCanisterId('calc'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(calcCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/package.json b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/package.json deleted file mode 100644 index 1fe8371e1b..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "counter_end_to_end_test_functional_syntax": "file:../../../functional_syntax/motoko_examples/counter", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/test/pretest.ts deleted file mode 100644 index 7fcaf336cf..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/test/pretest.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'motoko_examples', - 'counter' - ) - ); - - execSync(`dfx canister uninstall-code counter || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy counter`, { - stdio: 'inherit' - }); - - execSync(`dfx generate counter`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/test/test.ts deleted file mode 100644 index 22201eea63..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/counter/test/test.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'counter_end_to_end_test_functional_syntax/test/tests'; - -// @ts-ignore -import { createActor } from './dfx_generated/counter'; - -const counterCanister = createActor(getCanisterId('counter'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(counterCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/package.json b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/package.json deleted file mode 100644 index 3fd9996bba..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "echo_end_to_end_test_functional_syntax": "file:../../../functional_syntax/motoko_examples/echo", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/test/pretest.ts deleted file mode 100644 index 2b2b3a7f18..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/test/pretest.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'motoko_examples', - 'echo' - ) - ); - - execSync(`dfx canister uninstall-code echo || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy echo`, { - stdio: 'inherit' - }); - - execSync(`dfx generate echo`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/test/test.ts deleted file mode 100644 index 5a23046d68..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/echo/test/test.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'echo_end_to_end_test_functional_syntax/test/tests'; - -// @ts-ignore -import { createActor } from './dfx_generated/echo'; - -const echoCanister = createActor(getCanisterId('echo'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(echoCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/package.json b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/package.json deleted file mode 100644 index 17539ff53f..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "factorial_end_to_end_test_functional_syntax": "file:../../../functional_syntax/motoko_examples/factorial", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/test/pretest.ts deleted file mode 100644 index cfd7616f28..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/test/pretest.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'motoko_examples', - 'factorial' - ) - ); - - execSync(`dfx canister uninstall-code factorial || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy factorial`, { - stdio: 'inherit' - }); - - execSync(`dfx generate factorial`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/test/test.ts deleted file mode 100644 index 13b2144c60..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/factorial/test/test.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'factorial_end_to_end_test_functional_syntax/test/tests'; - -// @ts-ignore -import { createActor } from './dfx_generated/factorial'; - -const factorialCanister = createActor(getCanisterId('factorial'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(factorialCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/package.json b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/package.json deleted file mode 100644 index 2e7c1edb07..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "hello-world_end_to_end_test_functional_syntax": "file:../../../functional_syntax/motoko_examples/hello-world", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/test/pretest.ts deleted file mode 100644 index 75656f3dde..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/test/pretest.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'motoko_examples', - 'hello-world' - ) - ); - - execSync(`dfx canister uninstall-code hello_world || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy hello_world`, { - stdio: 'inherit' - }); - - execSync(`dfx generate hello_world`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/test/test.ts deleted file mode 100644 index 9bd2b45606..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello-world/test/test.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'hello-world_end_to_end_test_functional_syntax/test/tests'; - -// @ts-ignore -import { createActor } from './dfx_generated/hello_world'; - -const helloWorldCanister = createActor(getCanisterId('hello_world'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(helloWorldCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/package.json b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/package.json deleted file mode 100644 index 2161574997..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "version": "0.1.0", - "description": "Internet Computer starter application", - "keywords": [ - "Internet Computer", - "Motoko", - "JavaScript", - "Canister" - ], - "scripts": { - "build": "webpack", - "prebuild": "npm run generate", - "start": "webpack serve --mode development --env development", - "prestart": "npm run generate", - "generate": "dfx generate hello", - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.0", - "@dfinity/candid": "^0.19.0", - "@dfinity/principal": "^0.19.0", - "assert": "^2.0.0", - "buffer": "^6.0.3", - "copy-webpack-plugin": "^11.0.0", - "events": "^3.3.0", - "hello_end_to_end_test_functional_syntax": "file:../../../functional_syntax/motoko_examples/hello", - "html-webpack-plugin": "^5.5.0", - "jest": "^29.7.0", - "process": "^0.11.10", - "stream-browserify": "^3.0.0", - "terser-webpack-plugin": "^5.3.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2", - "util": "^0.12.0", - "webpack": "^5.88.0", - "webpack-cli": "^5.1.0", - "webpack-dev-server": "^4.15.0" - }, - "browserslist": [ - "last 2 chrome version", - "last 2 firefox version", - "last 2 safari version", - "last 2 edge version" - ] -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/test/pretest.ts deleted file mode 100644 index 4366fce8a1..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/test/pretest.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'motoko_examples', - 'hello' - ) - ); - - execSync(`dfx canister uninstall-code hello || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy hello`, { - stdio: 'inherit' - }); - - execSync(`dfx generate hello`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/test/test.ts deleted file mode 100644 index 282acb79d6..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/hello/test/test.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'hello_end_to_end_test_functional_syntax/test/tests'; - -// @ts-ignore -import { createActor } from '../dfx_generated/hello'; - -const helloCanister = createActor(getCanisterId('hello'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(helloCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/package.json b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/package.json deleted file mode 100644 index 9620cd4c86..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "version": "0.1.0", - "description": "Reimplementation of the [Motoko Http Counter example](https://github.com/dfinity/examples/tree/master/motoko/http_counter)", - "keywords": [ - "Internet Computer", - "TypeScript", - "Canister", - "JavaScript" - ], - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.0", - "http_counter_end_to_end_test_functional_syntax": "file:../../../functional_syntax/motoko_examples/http_counter", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/test/pretest.ts deleted file mode 100644 index c380ee591e..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/test/pretest.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'motoko_examples', - 'http_counter' - ) - ); - - execSync(`dfx canister uninstall-code http_counter || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy http_counter`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/test/test.ts deleted file mode 100644 index 3e90b5936f..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/http_counter/test/test.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { runTests } from 'azle/test'; -import { getTests } from 'http_counter_end_to_end_test_functional_syntax/test/tests'; - -runTests(getTests()); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/package.json b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/package.json deleted file mode 100644 index ed819a39e6..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "version": "0.1.0", - "description": "Reimplementation of the [Motoko Minimalistic Dapp example](https://github.com/dfinity/examples/tree/master/motoko/minimal-counter-dapp)", - "keywords": [ - "Internet Computer", - "TypeScript", - "Canister", - "JavaScript" - ], - "scripts": { - "build": "webpack", - "prebuild": "npm run generate", - "start": "webpack serve --mode development --env development", - "prestart": "npm run generate", - "generate": "dfx generate minimal_dapp", - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.0", - "@dfinity/candid": "^0.19.0", - "@dfinity/principal": "^0.19.0", - "assert": "^2.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "html-webpack-plugin": "^5.5.0", - "jest": "^29.7.0", - "minimal-counter-dapp_end_to_end_test_functional_syntax": "file:../../../functional_syntax/motoko_examples/minimal-counter-dapp", - "process": "^0.11.10", - "stream-browserify": "^3.0.0", - "terser-webpack-plugin": "^5.3.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "util": "^0.12.0", - "webpack": "^5.88.0", - "webpack-cli": "^5.1.0", - "webpack-dev-server": "^4.15.0" - }, - "browserslist": [ - "last 2 chrome version", - "last 2 firefox version", - "last 2 safari version", - "last 2 edge version" - ] -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/test/pretest.ts deleted file mode 100644 index 406fe18a7f..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/test/pretest.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'motoko_examples', - 'minimal-counter-dapp' - ) - ); - - execSync(`dfx canister uninstall-code minimal_dapp || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy minimal_dapp`, { - stdio: 'inherit' - }); - - execSync(`dfx generate minimal_dapp`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/test/test.ts deleted file mode 100644 index ab57459241..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/minimal-counter-dapp/test/test.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'minimal-counter-dapp_end_to_end_test_functional_syntax/test/tests'; - -// @ts-ignore -import { createActor } from '../src/declarations/minimal_dapp'; - -const counterCanister = createActor(getCanisterId('minimal_dapp'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(counterCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/package.json b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/package.json deleted file mode 100644 index d9cbe2d192..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "persistent-storage_end_to_end_test_functional_syntax": "file:../../../functional_syntax/motoko_examples/persistent-storage", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/test/pretest.ts deleted file mode 100644 index 83e09861fb..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/test/pretest.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'motoko_examples', - 'persistent-storage' - ) - ); - - execSync(`dfx canister uninstall-code persistent_storage || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy persistent_storage`, { - stdio: 'inherit' - }); - - execSync(`dfx generate persistent_storage`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/test/test.ts deleted file mode 100644 index e704300eec..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/persistent-storage/test/test.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'persistent-storage_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/persistent_storage'; - -const persistentStorageCanister = createActor( - getCanisterId('persistent_storage'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } - } -); - -runTests(getTests(persistentStorageCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/package.json b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/package.json deleted file mode 100644 index be8d42634e..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "scripts": { - "build": "webpack", - "prebuild": "npm run generate", - "start": "webpack serve --mode development --env development", - "prestart": "npm run generate", - "generate": "dfx generate phone_book", - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.0", - "@dfinity/candid": "^0.19.0", - "@dfinity/principal": "^0.19.0", - "assert": "^2.0.0", - "buffer": "^6.0.3", - "copy-webpack-plugin": "^11.0.0", - "css-loader": "^6.0.0", - "events": "^3.3.0", - "html-webpack-plugin": "^5.5.0", - "jest": "^29.7.0", - "phone-book_end_to_end_test_functional_syntax": "file:../../../functional_syntax/motoko_examples/phone-book", - "process": "^0.11.10", - "stream-browserify": "^3.0.0", - "style-loader": "^3.3.0", - "terser-webpack-plugin": "^5.3.0", - "ts-jest": "^29.1.4", - "ts-loader": "^9.4.0", - "tsx": "^4.15.7", - "typescript": "^5.2.2", - "util": "^0.12.0", - "webpack": "^5.88.0", - "webpack-cli": "^5.1.0", - "webpack-dev-server": "^4.15.0" - }, - "browserslist": [ - "last 2 chrome version", - "last 2 firefox version", - "last 2 safari version", - "last 2 edge version" - ], - "dependencies": { - "azle": "0.23.0", - "react": "^17.0.2", - "react-dom": "^17.0.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/test/pretest.ts deleted file mode 100644 index 01a84bce45..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/test/pretest.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'motoko_examples', - 'phone-book' - ) - ); - - execSync(`dfx canister uninstall-code phone_book || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy phone_book`, { - stdio: 'inherit' - }); - - execSync(`dfx generate phone_book`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/test/test.ts deleted file mode 100644 index ebbfbf78fb..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/phone-book/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'phone-book_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from '../src/declarations/phone_book'; - -const phoneBookCanister = createActor(getCanisterId('phone_book'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(phoneBookCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/package.json b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/package.json deleted file mode 100644 index 447a919cb4..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "quicksort_end_to_end_test_functional_syntax": "file:../../../functional_syntax/motoko_examples/quicksort", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/test/pretest.ts deleted file mode 100644 index 1f2614f33b..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/test/pretest.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'motoko_examples', - 'quicksort' - ) - ); - - execSync(`dfx canister uninstall-code quicksort || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy quicksort`, { - stdio: 'inherit' - }); - - execSync(`dfx generate quicksort`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/test/test.ts deleted file mode 100644 index 7251839aa4..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/quicksort/test/test.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'quicksort_end_to_end_test_functional_syntax/test/tests'; - -// @ts-ignore -import { createActor } from './dfx_generated/quicksort'; - -const quicksortCanister = createActor(getCanisterId('quicksort'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(quicksortCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/package.json b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/package.json deleted file mode 100644 index ba95ec993a..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "simple-to-do_end_to_end_test_functional_syntax": "file:../../../functional_syntax/motoko_examples/simple-to-do", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/test/pretest.ts deleted file mode 100644 index 9acb3630e3..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/test/pretest.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'motoko_examples', - 'simple-to-do' - ) - ); - - execSync(`dfx canister uninstall-code simple_to_do || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy simple_to_do`, { - stdio: 'inherit' - }); - - execSync(`dfx generate simple_to_do`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/test/test.ts deleted file mode 100644 index 8604ae8f62..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/simple-to-do/test/test.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'simple-to-do_end_to_end_test_functional_syntax/test/tests'; - -// @ts-ignore -import { createActor } from './dfx_generated/simple_to_do'; - -const todoCanister = createActor(getCanisterId('simple_to_do'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(todoCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/package.json b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/package.json deleted file mode 100644 index e346c03a78..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "scripts": { - "build": "webpack", - "prebuild": "npm run generate", - "start": "webpack serve --mode development --env development", - "prestart": "npm run generate", - "generate": "dfx generate superheroes", - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.0", - "@dfinity/candid": "^0.19.0", - "@dfinity/principal": "^0.19.0", - "assert": "^2.0.0", - "buffer": "^6.0.3", - "copy-webpack-plugin": "^11.0.0", - "css-loader": "^6.0.0", - "events": "^3.3.0", - "html-webpack-plugin": "^5.5.0", - "jest": "^29.7.0", - "process": "^0.11.10", - "stream-browserify": "^3.0.0", - "style-loader": "^3.3.0", - "superheroes_end_to_end_test_functional_syntax": "file:../../../functional_syntax/motoko_examples/superheroes", - "terser-webpack-plugin": "^5.3.0", - "ts-jest": "^29.1.4", - "ts-loader": "^9.4.0", - "tsx": "^4.15.7", - "typescript": "^5.2.2", - "util": "^0.12.0", - "webpack": "^5.88.0", - "webpack-cli": "^5.1.0", - "webpack-dev-server": "^4.15.0" - }, - "browserslist": [ - "last 2 chrome version", - "last 2 firefox version", - "last 2 safari version", - "last 2 edge version" - ], - "dependencies": { - "azle": "0.23.0", - "react": "^17.0.2", - "react-dom": "^17.0.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/test/pretest.ts deleted file mode 100644 index f8124d9afe..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/test/pretest.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'motoko_examples', - 'superheroes' - ) - ); - - execSync(`dfx canister uninstall-code superheroes || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy superheroes`, { - stdio: 'inherit' - }); - - execSync(`dfx generate superheroes`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/test/test.ts deleted file mode 100644 index 7d30819963..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/superheroes/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'superheroes_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from '../src/declarations'; - -const superheroesCanister = createActor(getCanisterId('superheroes'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(superheroesCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/package.json b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/package.json deleted file mode 100644 index 557d243375..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0", - "encode-utf8": "2.0.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "threshold_ecdsa_end_to_end_test_functional_syntax": "file:../../../functional_syntax/motoko_examples/threshold_ecdsa", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/test/pretest.ts deleted file mode 100644 index 373d1fa9b0..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/test/pretest.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'motoko_examples', - 'threshold_ecdsa' - ) - ); - - execSync(`dfx canister uninstall-code threshold_ecdsa || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy threshold_ecdsa`, { - stdio: 'inherit' - }); - - execSync(`dfx generate threshold_ecdsa`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/test/test.ts deleted file mode 100644 index 5feb248604..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/threshold_ecdsa/test/test.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'threshold_ecdsa_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/threshold_ecdsa'; - -const tEcdsaCanister = createActor(getCanisterId('threshold_ecdsa'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -// TODO currently the replica take 5-10 minutes before it is ready to process -// any tecdsa requests, so we are skipping these tests until we can think of -// an elegant way to run these tests only after the replica is ready to process -// them, when we are no longer skipping the tests we can remove the dummy test -runTests(getTests(tEcdsaCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/package.json b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/package.json deleted file mode 100644 index 7abaea0f4e..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "@dfinity/identity": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2", - "whoami_end_to_end_test_functional_syntax": "file:../../../functional_syntax/motoko_examples/whoami" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/test/pretest.ts deleted file mode 100644 index 2bbf29126f..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/test/pretest.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { SignIdentity } from '@dfinity/agent'; -import { Ed25519KeyIdentity } from '@dfinity/identity'; -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -const someoneIdentity = createIdentity(2); -export const someonePrincipal = someoneIdentity.getPrincipal().toString(); - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'motoko_examples', - 'whoami' - ) - ); - - execSync(`dfx canister uninstall-code whoami || true`, { - stdio: 'inherit' - }); - - execSync( - `dfx deploy whoami --argument '(principal "${someonePrincipal}")'`, - { - stdio: 'inherit' - } - ); - - execSync(`dfx generate whoami`, { - stdio: 'inherit' - }); -} - -pretest(); - -function createIdentity(seed: number): SignIdentity { - const seed1 = [seed, ...new Array(31).fill(0)]; - return Ed25519KeyIdentity.generate(Uint8Array.from(seed1)); -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/test/test.ts deleted file mode 100644 index 3a58c58d2e..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/motoko_examples/whoami/test/test.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { runTests } from 'azle/test'; -import { - callingIdentity, - canisterId, - getTests -} from 'whoami_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/whoami'; - -const whoamiCanister = createActor(canisterId, { - agentOptions: { - host: 'http://127.0.0.1:8000', - identity: callingIdentity - } -}); - -runTests(getTests(whoamiCanister, 'whoami')); diff --git a/tests/end_to_end/candid_rpc/class_syntax/new/package.json b/tests/end_to_end/candid_rpc/class_syntax/new/package.json deleted file mode 100644 index 6141803118..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/new/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "new_end_to_end_test_functional_syntax", - "scripts": { - "test": "if [ \"$AZLE_TEST_RUN_ON_RELEASE\" == \"true\" ]; then tsx test/test.ts; else echo 'Skipping pretests'; fi" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/new_candid_rpc/package.json b/tests/end_to_end/candid_rpc/class_syntax/new_candid_rpc/package.json deleted file mode 100644 index 6141803118..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/new_candid_rpc/package.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "new_end_to_end_test_functional_syntax", - "scripts": { - "test": "if [ \"$AZLE_TEST_RUN_ON_RELEASE\" == \"true\" ]; then tsx test/test.ts; else echo 'Skipping pretests'; fi" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/package.json b/tests/end_to_end/candid_rpc/class_syntax/notify_raw/package.json deleted file mode 100644 index 30970fd747..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "notify_raw_end_to_end_test_functional_syntax": "file:../../functional_syntax/notify_raw", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/notify_raw/test/pretest.ts deleted file mode 100644 index 8f59bdd6e0..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/test/pretest.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'notify_raw' - ) - ); - - execSync(`dfx canister uninstall-code canister1 || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister uninstall-code canister2 || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister create canister2`, { - stdio: 'inherit' - }); - - execSync(`CANISTER2_PRINCIPAL=${getCanisterId('canister2')} dfx deploy`, { - stdio: 'inherit' - }); - - execSync(`dfx generate`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/notify_raw/test/test.ts deleted file mode 100644 index 7b94bd256c..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/notify_raw/test/test.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'notify_raw_end_to_end_test_functional_syntax/test/tests'; - -import { createActor as createActorCanister1 } from './dfx_generated/canister1'; -import { createActor as createActorCanister2 } from './dfx_generated/canister2'; - -const canister1 = createActorCanister1(getCanisterId('canister1'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -const canister2 = createActorCanister2(getCanisterId('canister2'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(canister1, canister2)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/null_example/package.json b/tests/end_to_end/candid_rpc/class_syntax/null_example/package.json deleted file mode 100644 index e4f1f18fbf..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/null_example/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "null_example_end_to_end_test_functional_syntax": "file:../../functional_syntax/null_example", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/null_example/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/null_example/test/pretest.ts deleted file mode 100644 index efc6908da2..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/null_example/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'null_example' - ) - ); - - execSync(`dfx canister uninstall-code null_example || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy`, { - stdio: 'inherit' - }); - - execSync(`dfx generate`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/null_example/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/null_example/test/test.ts deleted file mode 100644 index 9b1806e1b8..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/null_example/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'null_example_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/null_example'; - -const nullExampleCanister = createActor(getCanisterId('null_example'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(nullExampleCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/optional_types/package.json b/tests/end_to_end/candid_rpc/class_syntax/optional_types/package.json deleted file mode 100644 index a9d6d3b530..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/optional_types/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "@types/node-fetch": "2.6.1", - "jest": "^29.7.0", - "node-fetch": "2.6.7", - "optional_types_end_to_end_test_functional_syntax": "file:../../functional_syntax/optional_types", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/optional_types/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/optional_types/test/pretest.ts deleted file mode 100644 index 4045a3e065..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/optional_types/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'optional_types' - ) - ); - - execSync(`dfx canister uninstall-code optional_types || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy optional_types`, { - stdio: 'inherit' - }); - - execSync(`dfx generate optional_types`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/optional_types/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/optional_types/test/test.ts deleted file mode 100644 index 2ec6370b7a..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/optional_types/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'optional_types_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from '../test/dfx_generated/optional_types'; - -const optionalTypesCanister = createActor(getCanisterId('optional_types'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(optionalTypesCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/package.json b/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/package.json deleted file mode 100644 index 2982fe9b14..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "decode-utf8": "1.0.1", - "jest": "^29.7.0", - "outgoing_http_requests_end_to_end_test_functional_syntax": "file:../../functional_syntax/outgoing_http_requests", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2", - "utf8-encoder": "1.0.1" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/test/pretest.ts deleted file mode 100644 index ef62921e39..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'outgoing_http_requests' - ) - ); - - execSync(`dfx canister uninstall-code outgoing_http_requests || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy`, { - stdio: 'inherit' - }); - - execSync(`dfx generate`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/test/test.ts deleted file mode 100644 index 09b5b4a328..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/outgoing_http_requests/test/test.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'outgoing_http_requests_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/outgoing_http_requests'; - -const outgoingHttpRequestsCanister = createActor( - getCanisterId('outgoing_http_requests'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } - } -); - -runTests(getTests(outgoingHttpRequestsCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/package.json b/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/package.json deleted file mode 100644 index 850a111bd0..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "pre_and_post_upgrade_end_to_end_test_functional_syntax": "file:../../functional_syntax/pre_and_post_upgrade", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/test/pretest.ts deleted file mode 100644 index a2323ff5fe..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'pre_and_post_upgrade' - ) - ); - - execSync(`dfx canister uninstall-code pre_and_post_upgrade || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy pre_and_post_upgrade`, { - stdio: 'inherit' - }); - - execSync(`dfx generate pre_and_post_upgrade`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/test/test.ts deleted file mode 100644 index db56311ca0..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/pre_and_post_upgrade/test/test.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'pre_and_post_upgrade_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/pre_and_post_upgrade'; - -const preAndPostUpgradeCanister = createActor( - getCanisterId('pre_and_post_upgrade'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } - } -); - -runTests(getTests(preAndPostUpgradeCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/primitive_types/package.json b/tests/end_to_end/candid_rpc/class_syntax/primitive_types/package.json deleted file mode 100644 index 216c5e3f4b..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/primitive_types/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "primitive_types_end_to_end_test_functional_syntax": "file:../../functional_syntax/primitive_types", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/primitive_types/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/primitive_types/test/pretest.ts deleted file mode 100644 index d14cc9e0be..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/primitive_types/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'primitive_types' - ) - ); - - execSync(`dfx canister uninstall-code primitive_types || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy primitive_types`, { - stdio: 'inherit' - }); - - execSync(`dfx generate primitive_types`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/primitive_types/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/primitive_types/test/test.ts deleted file mode 100644 index 5bda6eeb3c..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/primitive_types/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'primitive_types_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from '../test/dfx_generated/primitive_types'; - -const primitiveTypesCanister = createActor(getCanisterId('primitive_types'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(primitiveTypesCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/principal/package.json b/tests/end_to_end/candid_rpc/class_syntax/principal/package.json deleted file mode 100644 index 5e568e3de0..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/principal/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "principal_end_to_end_test_functional_syntax": "file:../../functional_syntax/principal", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/principal/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/principal/test/pretest.ts deleted file mode 100644 index a4bc1495d4..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/principal/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'principal' - ) - ); - - execSync(`dfx canister uninstall-code principal || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy principal`, { - stdio: 'inherit' - }); - - execSync(`dfx generate principal`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/principal/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/principal/test/test.ts deleted file mode 100644 index 20acf1d867..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/principal/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'principal_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from '../test/dfx_generated/principal'; - -const principalCanister = createActor(getCanisterId('principal'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(principalCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/query/package-lock.json b/tests/end_to_end/candid_rpc/class_syntax/query/package-lock.json deleted file mode 100644 index f82a49ad54..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/query/package-lock.json +++ /dev/null @@ -1,11073 +0,0 @@ -{ - "name": "query", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.19.2", - "jest": "^29.7.0", - "query_end_to_end_test_functional_syntax": "file:../../functional_syntax/query", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } - }, - "../../../../../examples/query": { - "name": "query_end_to_end_test_functional_syntax", - "extraneous": true, - "dependencies": { - "azle": "0.22.0" - }, - "devDependencies": { - "@dfinity/agent": "0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } - }, - "../../../examples/query": { - "name": "query_end_to_end_test_canister_syntax", - "extraneous": true, - "dependencies": { - "azle": "0.22.0" - }, - "devDependencies": { - "@dfinity/agent": "0.19.2", - "ts-node": "10.9.0", - "typescript": "5.2.2" - } - }, - "../../functional_syntax/query": { - "name": "query_end_to_end_test_functional_syntax", - "dev": true, - "dependencies": { - "azle": "0.22.0" - }, - "devDependencies": { - "@dfinity/agent": "0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } - }, - "node_modules/@adraffy/ens-normalize": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", - "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@ampproject/remapping/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", - "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", - "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helpers": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.24.7", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", - "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", - "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", - "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", - "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", - "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", - "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", - "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", - "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@dfinity/agent": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-0.19.2.tgz", - "integrity": "sha512-KLRWEjeU9SyyaS7IBVJ9ZUcufxufr55e/kRIyClK157+0pkTG9a8xKjUIMx3QzKvLsqqzXL238nWwdoP6jAD8g==", - "dev": true, - "dependencies": { - "@noble/hashes": "^1.3.1", - "base64-arraybuffer": "^0.2.0", - "borc": "^2.1.1", - "simple-cbor": "^0.4.1" - }, - "peerDependencies": { - "@dfinity/candid": "^0.19.2", - "@dfinity/principal": "^0.19.2" - } - }, - "node_modules/@dfinity/candid": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-0.19.3.tgz", - "integrity": "sha512-yXfbLSWTeRd4G0bLLxYoDqpXH3Jim0P+1PPZOoktXNC1X1hB+ea3yrZebX75t4GVoQK7123F7mxWHiPjuV2tQQ==", - "dev": true, - "peer": true, - "peerDependencies": { - "@dfinity/principal": "^0.19.3" - } - }, - "node_modules/@dfinity/identity-secp256k1": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/identity-secp256k1/-/identity-secp256k1-1.2.0.tgz", - "integrity": "sha512-QAsVycTLY0HH5OS/Ub8G0A70WZb9nkJR9fzZywUIAKpFRY8ZXHiXrT/ifM6AqY9L/83l/ywrwuSKbHVngshpkw==", - "dependencies": { - "@dfinity/agent": "^1.2.0", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.3.1", - "asn1js": "^3.0.5", - "bip39": "^3.1.0", - "bs58check": "^3.0.1", - "hdkey": "^2.1.0" - } - }, - "node_modules/@dfinity/identity-secp256k1/node_modules/@dfinity/agent": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.2.0.tgz", - "integrity": "sha512-i9mH0PO73nrhLc9lZv14SWr4muyMcs6uqqlG2SHQtRUFRXbqj4DOhKsU0Sm+kC8eWYCSu65WPKPYwwAR7YM6ug==", - "dependencies": { - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.3.1", - "base64-arraybuffer": "^0.2.0", - "borc": "^2.1.1", - "buffer": "^6.0.3", - "simple-cbor": "^0.4.1" - }, - "peerDependencies": { - "@dfinity/candid": "^1.2.0", - "@dfinity/principal": "^1.2.0" - } - }, - "node_modules/@dfinity/identity-secp256k1/node_modules/@dfinity/candid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.2.0.tgz", - "integrity": "sha512-L6gV3ODIFC9qNenq3zuRvHrTwH36IM5utVH2wMS5f5eIUeG9fNe+avYLRPBUJwdeX7cM7xhvDgE/m/aN2cZvKQ==", - "peer": true, - "peerDependencies": { - "@dfinity/principal": "^1.2.0" - } - }, - "node_modules/@dfinity/identity-secp256k1/node_modules/@dfinity/principal": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.2.0.tgz", - "integrity": "sha512-7eurqPDL5ptlTTLMJPeiO75FAumXHsWEWDVQaN6XpA3aZtmofNK4Sb5g5Ne9syeuoCJcW3mFBbbFtFNxggxu+g==", - "peer": true, - "dependencies": { - "@noble/hashes": "^1.3.1" - } - }, - "node_modules/@dfinity/identity-secp256k1/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/@dfinity/principal": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-0.19.3.tgz", - "integrity": "sha512-+nixVvdGt7ECxRvLXDXsvU9q9sSPssBtDQ4bXa149SK6gcYcmZ6lfWIi3DJNqj3tGROxILVBsguel9tECappsA==", - "dev": true, - "peer": true, - "dependencies": { - "@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" - ], - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", - "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", - "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", - "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", - "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", - "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", - "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", - "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", - "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", - "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", - "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", - "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", - "cpu": [ - "loong64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", - "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", - "cpu": [ - "mips64el" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", - "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", - "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", - "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", - "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", - "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", - "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", - "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", - "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", - "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", - "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", - "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dev": true, - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "dev": true, - "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dev": true, - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, - "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "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" - } - }, - "node_modules/@noble/curves": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.0.tgz", - "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", - "dependencies": { - "@noble/hashes": "1.4.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/curves/node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/hashes": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@swc/core": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.91.tgz", - "integrity": "sha512-r950d0fdlZ8qbSDyvApn3HyCojiZE8xpgJzQvypeMi32dalYwugdJKWyLB55JIGMRGJ8+lmVvY4MPGkSR3kXgA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "peer": true, - "dependencies": { - "@swc/counter": "^0.1.1", - "@swc/types": "^0.1.5" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.3.91", - "@swc/core-darwin-x64": "1.3.91", - "@swc/core-linux-arm-gnueabihf": "1.3.91", - "@swc/core-linux-arm64-gnu": "1.3.91", - "@swc/core-linux-arm64-musl": "1.3.91", - "@swc/core-linux-x64-gnu": "1.3.91", - "@swc/core-linux-x64-musl": "1.3.91", - "@swc/core-win32-arm64-msvc": "1.3.91", - "@swc/core-win32-ia32-msvc": "1.3.91", - "@swc/core-win32-x64-msvc": "1.3.91" - }, - "peerDependencies": { - "@swc/helpers": "^0.5.0" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.91.tgz", - "integrity": "sha512-7kHGiQ1he5khcEeJuHDmLZPM3rRL/ith5OTmV6bOPsoHi46kLeixORW+ts1opC3tC9vu6xbk16xgX0QAJchc1w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.91.tgz", - "integrity": "sha512-8SpU18FbFpZDVzsHsAwdI1thF/picQGxq9UFxa8W+T9SDnbsqwFJv/6RqKJeJoDV6qFdl2OLjuO0OL7xrp0qnQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.91.tgz", - "integrity": "sha512-fOq4Cy8UbwX1yf0WB0d8hWZaIKCnPtPGguRqdXGLfwvhjZ9SIErT6PnmGTGRbQCNCIkOZWHKyTU0r8t2dN3haQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.91.tgz", - "integrity": "sha512-fki4ioRP/Esy4vdp8T34RCV+V9dqkRmOt763pf74pdiyFV2dPLXa5lnw/XvR1RTfPGknrYgjEQLCfZlReTryRw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.91.tgz", - "integrity": "sha512-XrG+DUUqNtfVLcJ20imby7fpBwQNG5VsEQBzQndSonPyUOa2YkTbBb60YDondfQGDABopuHH8gHN8o2H2/VCnQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.91.tgz", - "integrity": "sha512-d11bYhX+YPBr/Frcjc6eVn3C0LuS/9U1Li9EmQ+6s9EpYtYRl2ygSlC8eueLbaiazBnCVYFnc8bU4o0kc5B9sw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.91.tgz", - "integrity": "sha512-2SRp5Dke2P4jCQePkDx9trkkTstnRpZJVw5r3jvYdk0zeO6iC4+ZPvvoWXJLigqQv/fZnIiSUfJ6ssOoaEqTzQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.91.tgz", - "integrity": "sha512-l9qKXikOxj42UIjbeZpz9xtBmr736jOMqInNP8mVF2/U+ws5sI8zJjcOFFtfis4ru7vWCXhB1wtltdlJYO2vGA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.91.tgz", - "integrity": "sha512-+s+52O0QVPmzOgjEe/rcb0AK6q/J7EHKwAyJCu/FaYO9df5ovE0HJjSKP6HAF0dGPO5hkENrXuNGujofUH9vtQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.91.tgz", - "integrity": "sha512-7u9HDQhjUC3Gv43EFW84dZtduWCSa4MgltK+Sp9zEGti6WXqDPu/ESjvDsQEVYTBEMEvZs/xVAXPgLVHorV5nQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.2.tgz", - "integrity": "sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@swc/types": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", - "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/node": { - "version": "18.15.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", - "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true - }, - "node_modules/@types/uuid": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.4.tgz", - "integrity": "sha512-zAuJWQflfx6dYJM62vna+Sn5aeSWhh3OB+wfUEACNcqUSc0AGc5JKl+ycL1vrH7frGTXhJchYjE1Hak8L819dA==" - }, - "node_modules/@types/validator": { - "version": "13.11.10", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.10.tgz", - "integrity": "sha512-e2PNXoXLr6Z+dbfx5zSh9TRlXJrELycxiaXznp4S5+D2M3b9bqJEitNHA5923jhnB2zzFiZHa2f0SI1HoIahpg==" - }, - "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/aes-js": { - "version": "4.0.0-beta.5", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", - "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/asn1js": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", - "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", - "dependencies": { - "pvtsutils": "^1.3.2", - "pvutils": "^1.1.3", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/azle": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/azle/-/azle-0.23.0.tgz", - "integrity": "sha512-BRp0YAe/mtLCWVZDDl5IUbCLFb2fWi2NnKLHTUC0+EmZu59kVAR7AT7DY/oMvYVYVqxGlw9eqOIzhqB1msChWQ==", - "hasInstallScript": true, - "dependencies": { - "@dfinity/agent": "^1.1.0", - "@dfinity/identity-secp256k1": "^1.1.0", - "@types/uuid": "^9.0.4", - "binaryen": "^116.0.0", - "buffer": "^6.0.3", - "chokidar": "^3.6.0", - "class-transformer": "^0.5.1", - "class-validator": "^0.14.1", - "crypto-browserify": "^3.12.0", - "deep-is": "^0.1.4", - "esbuild": "^0.23.0", - "esbuild-plugin-tsc": "^0.4.0", - "ethers": "6.11.1", - "fs-extra": "^11.2.0", - "glob": "^10.3.15", - "hash-of-directory": "^1.0.1", - "http-message-parser": "^0.0.34", - "intl": "^1.2.5", - "js-sha256": "0.9.0", - "net": "^1.0.2", - "pako": "^2.1.0", - "reflect-metadata": "^0.2.2", - "repl": "^0.1.3", - "text-encoding": "0.7.0", - "tsx": "^4.15.7", - "typescript": "^5.2.2", - "uuid": "^9.0.1" - }, - "bin": { - "azle": "src/compiler/index.ts" - } - }, - "node_modules/azle/node_modules/@dfinity/agent": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.2.0.tgz", - "integrity": "sha512-i9mH0PO73nrhLc9lZv14SWr4muyMcs6uqqlG2SHQtRUFRXbqj4DOhKsU0Sm+kC8eWYCSu65WPKPYwwAR7YM6ug==", - "dependencies": { - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.3.1", - "base64-arraybuffer": "^0.2.0", - "borc": "^2.1.1", - "buffer": "^6.0.3", - "simple-cbor": "^0.4.1" - }, - "peerDependencies": { - "@dfinity/candid": "^1.2.0", - "@dfinity/principal": "^1.2.0" - } - }, - "node_modules/azle/node_modules/@dfinity/candid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.2.0.tgz", - "integrity": "sha512-L6gV3ODIFC9qNenq3zuRvHrTwH36IM5utVH2wMS5f5eIUeG9fNe+avYLRPBUJwdeX7cM7xhvDgE/m/aN2cZvKQ==", - "peer": true, - "peerDependencies": { - "@dfinity/principal": "^1.2.0" - } - }, - "node_modules/azle/node_modules/@dfinity/principal": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.2.0.tgz", - "integrity": "sha512-7eurqPDL5ptlTTLMJPeiO75FAumXHsWEWDVQaN6XpA3aZtmofNK4Sb5g5Ne9syeuoCJcW3mFBbbFtFNxggxu+g==", - "peer": true, - "dependencies": { - "@noble/hashes": "^1.3.1" - } - }, - "node_modules/azle/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/azle/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/azle/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/azle/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dev": true, - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" - }, - "node_modules/base64-arraybuffer": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", - "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/binaryen": { - "version": "116.0.0", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0.tgz", - "integrity": "sha512-Hp0dXC6Cb/rTwWEoUS2BRghObE7g/S9umKtxuTDt3f61G6fNTE/YVew/ezyy3IdHcLx3f17qfh6LwETgCfvWkQ==", - "bin": { - "wasm-opt": "bin/wasm-opt", - "wasm2js": "bin/wasm2js" - } - }, - "node_modules/bip39": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", - "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", - "dependencies": { - "@noble/hashes": "^1.2.0" - } - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/borc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", - "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", - "dependencies": { - "bignumber.js": "^9.0.0", - "buffer": "^5.5.0", - "commander": "^2.15.0", - "ieee754": "^1.1.13", - "iso-url": "~0.4.7", - "json-text-sequence": "~0.1.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", - "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", - "dependencies": { - "bn.js": "^5.2.1", - "browserify-rsa": "^4.1.0", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.4", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.6", - "readable-stream": "^3.6.2", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/browserslist": { - "version": "4.23.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", - "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001629", - "electron-to-chromium": "^1.4.796", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.16" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", - "dependencies": { - "base-x": "^4.0.0" - } - }, - "node_modules/bs58check": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz", - "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==", - "dependencies": { - "@noble/hashes": "^1.2.0", - "bs58": "^5.0.0" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001636", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz", - "integrity": "sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", - "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", - "dev": true - }, - "node_modules/class-transformer": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", - "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==" - }, - "node_modules/class-validator": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.1.tgz", - "integrity": "sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==", - "dependencies": { - "@types/validator": "^13.11.8", - "libphonenumber-js": "^1.10.53", - "validator": "^13.9.0" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/dedent": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", - "dev": true, - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delimit-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", - "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=" - }, - "node_modules/des.js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.807", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.807.tgz", - "integrity": "sha512-kSmJl2ZwhNf/bcIuCH/imtNOKlpkLDn2jqT5FJ+/0CXjhnFaOa9cOe9gHKKy71eM49izwuQjZhKk+lWQ1JxB7A==", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/esbuild": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", - "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.23.0", - "@esbuild/android-arm": "0.23.0", - "@esbuild/android-arm64": "0.23.0", - "@esbuild/android-x64": "0.23.0", - "@esbuild/darwin-arm64": "0.23.0", - "@esbuild/darwin-x64": "0.23.0", - "@esbuild/freebsd-arm64": "0.23.0", - "@esbuild/freebsd-x64": "0.23.0", - "@esbuild/linux-arm": "0.23.0", - "@esbuild/linux-arm64": "0.23.0", - "@esbuild/linux-ia32": "0.23.0", - "@esbuild/linux-loong64": "0.23.0", - "@esbuild/linux-mips64el": "0.23.0", - "@esbuild/linux-ppc64": "0.23.0", - "@esbuild/linux-riscv64": "0.23.0", - "@esbuild/linux-s390x": "0.23.0", - "@esbuild/linux-x64": "0.23.0", - "@esbuild/netbsd-x64": "0.23.0", - "@esbuild/openbsd-arm64": "0.23.0", - "@esbuild/openbsd-x64": "0.23.0", - "@esbuild/sunos-x64": "0.23.0", - "@esbuild/win32-arm64": "0.23.0", - "@esbuild/win32-ia32": "0.23.0", - "@esbuild/win32-x64": "0.23.0" - } - }, - "node_modules/esbuild-plugin-tsc": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/esbuild-plugin-tsc/-/esbuild-plugin-tsc-0.4.0.tgz", - "integrity": "sha512-q9gWIovt1nkwchMLc2zhyksaiHOv3kDK4b0AUol8lkMCRhJ1zavgfb2fad6BKp7FT9rh/OHmEBXVjczLoi/0yw==", - "dependencies": { - "strip-comments": "^2.0.1" - }, - "peerDependencies": { - "typescript": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/esbuild/node_modules/@esbuild/aix-ppc64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", - "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ethers": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.11.1.tgz", - "integrity": "sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/ethers-io/" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@adraffy/ens-normalize": "1.10.1", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@types/node": "18.15.13", - "aes-js": "4.0.0-beta.5", - "tslib": "2.4.0", - "ws": "8.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/ethers/node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", - "dependencies": { - "@noble/hashes": "1.3.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ethers/node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ethers/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dev": true, - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/foreground-child": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-prop": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/get-prop/-/get-prop-0.0.10.tgz", - "integrity": "sha512-XRSGBgcIisSMLJ/dwe1y/eMm9yzLicEJKmEXA3ArBkDkCW2nyRroLOoKIz+SdxuG5SI7ym2QHaTU5ifCl7MTDg==" - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "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==", - "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", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-of-directory": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hash-of-directory/-/hash-of-directory-1.0.1.tgz", - "integrity": "sha512-PX6VaxD6JK8R4113ChdTtEnWIo2XA9mz4yrtGBuUGUKtWCj6iWWYj/qwjdfs3Zgm+FdiNj0Vmt4VwPlwxx8WHw==" - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hdkey": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz", - "integrity": "sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA==", - "dependencies": { - "bs58check": "^2.1.2", - "ripemd160": "^2.0.2", - "safe-buffer": "^5.1.1", - "secp256k1": "^4.0.0" - } - }, - "node_modules/hdkey/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/hdkey/node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/hdkey/node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-message-parser": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/http-message-parser/-/http-message-parser-0.0.34.tgz", - "integrity": "sha512-KABKXT347AYvQoaMZg9/K+/GqW6gfB4pKCiTyMUYnosfkdkaBkrXE/cWGSLk5jvD5tiDeLFlYSHLhhPhQKbRrA==", - "dependencies": { - "buffer": "^4.9.1", - "concat-stream": "^1.5.1", - "get-prop": "0.0.10", - "minimist": "^1.2.0", - "stream-buffers": "^3.0.0" - }, - "bin": { - "http-message-parser": "bin/http-message-parser.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-message-parser/node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/intl": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", - "integrity": "sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==" - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/iso-url": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", - "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==", - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", - "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dev": true, - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dev": true, - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dev": true, - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "dev": true, - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "dev": true, - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-text-sequence": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", - "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", - "dependencies": { - "delimit-stream": "0.1.0" - } - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/libphonenumber-js": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.11.3.tgz", - "integrity": "sha512-RU0CTsLCu2v6VEzdP+W6UU2n5+jEpMDRkGxUeBgsAJgre3vKgm17eApISH9OQY4G0jZYJVIc8qXmz6CJFueAFg==" - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", - "dev": true, - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/net": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/net/-/net-1.0.2.tgz", - "integrity": "sha512-kbhcj2SVVR4caaVnGLJKmlk2+f+oLkjqdKeQlmUtz6nGzOpbcobwVIeSURNgraV/v3tlmGIX82OcPCl0K6RbHQ==" - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node_modules/node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" - }, - "node_modules/pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/pure-rand": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] - }, - "node_modules/pvtsutils": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", - "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", - "dependencies": { - "tslib": "^2.6.1" - } - }, - "node_modules/pvutils": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", - "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/query_end_to_end_test_functional_syntax": { - "resolved": "../../functional_syntax/query", - "link": true - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reflect-metadata": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", - "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" - }, - "node_modules/repl": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/repl/-/repl-0.1.3.tgz", - "integrity": "sha512-C3ZEHaX28+EvM9lPiXl9ruN2g5M5sUvyCIDvZ0M4VCusfA1Cn0+z3tJcQl/lvxPsBm82q4hKHKebPlE3SEhFKg==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "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==", - "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", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/simple-cbor": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/simple-cbor/-/simple-cbor-0.4.1.tgz", - "integrity": "sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w==" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stream-buffers": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz", - "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==", - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-encoding": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz", - "integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==", - "deprecated": "no longer maintained" - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-jest": { - "version": "29.1.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.5.tgz", - "integrity": "sha512-UuClSYxM7byvvYfyWdFI+/2UxMmwNyJb0NPkZPQE2hew3RurV7l7zURgOHAd/1I1ZdPpe3GUsXNXAcN8TFKSIg==", - "dev": true, - "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "^7.5.3", - "yargs-parser": "^21.0.1" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/transform": "^29.0.0", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", - "typescript": ">=4.3 <6" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@jest/transform": { - "optional": true - }, - "@jest/types": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-node": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.0.tgz", - "integrity": "sha512-bunW18GUyaCSYRev4DPf4SQpom3pWH29wKl0sDk5zE7ze19RImEVhCW7K4v3hHKkUyfWotU08ToE2RS+Y49aug==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "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" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "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==", - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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==", - "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", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, - "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/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", - "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "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, - "optional": true, - "peer": true - }, - "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/validator": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", - "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@adraffy/ens-normalize": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", - "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" - }, - "@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - } - } - }, - "@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" - } - }, - "@babel/compat-data": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", - "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", - "dev": true - }, - "@babel/core": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", - "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helpers": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - } - }, - "@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", - "dev": true, - "requires": { - "@babel/types": "^7.24.7", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", - "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", - "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", - "dev": true, - "requires": { - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-function-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", - "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", - "dev": true, - "requires": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", - "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", - "dev": true, - "requires": { - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", - "dev": true, - "requires": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", - "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", - "dev": true - }, - "@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", - "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", - "dev": true, - "requires": { - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", - "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", - "dev": true, - "requires": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.7" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", - "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.7" - } - }, - "@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", - "debug": "^4.3.1", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@dfinity/agent": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-0.19.2.tgz", - "integrity": "sha512-KLRWEjeU9SyyaS7IBVJ9ZUcufxufr55e/kRIyClK157+0pkTG9a8xKjUIMx3QzKvLsqqzXL238nWwdoP6jAD8g==", - "dev": true, - "requires": { - "@noble/hashes": "^1.3.1", - "base64-arraybuffer": "^0.2.0", - "borc": "^2.1.1", - "simple-cbor": "^0.4.1" - } - }, - "@dfinity/candid": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-0.19.3.tgz", - "integrity": "sha512-yXfbLSWTeRd4G0bLLxYoDqpXH3Jim0P+1PPZOoktXNC1X1hB+ea3yrZebX75t4GVoQK7123F7mxWHiPjuV2tQQ==", - "dev": true, - "peer": true, - "requires": {} - }, - "@dfinity/identity-secp256k1": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/identity-secp256k1/-/identity-secp256k1-1.2.0.tgz", - "integrity": "sha512-QAsVycTLY0HH5OS/Ub8G0A70WZb9nkJR9fzZywUIAKpFRY8ZXHiXrT/ifM6AqY9L/83l/ywrwuSKbHVngshpkw==", - "requires": { - "@dfinity/agent": "^1.2.0", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.3.1", - "asn1js": "^3.0.5", - "bip39": "^3.1.0", - "bs58check": "^3.0.1", - "hdkey": "^2.1.0" - }, - "dependencies": { - "@dfinity/agent": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.2.0.tgz", - "integrity": "sha512-i9mH0PO73nrhLc9lZv14SWr4muyMcs6uqqlG2SHQtRUFRXbqj4DOhKsU0Sm+kC8eWYCSu65WPKPYwwAR7YM6ug==", - "requires": { - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.3.1", - "base64-arraybuffer": "^0.2.0", - "borc": "^2.1.1", - "buffer": "^6.0.3", - "simple-cbor": "^0.4.1" - } - }, - "@dfinity/candid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.2.0.tgz", - "integrity": "sha512-L6gV3ODIFC9qNenq3zuRvHrTwH36IM5utVH2wMS5f5eIUeG9fNe+avYLRPBUJwdeX7cM7xhvDgE/m/aN2cZvKQ==", - "peer": true, - "requires": {} - }, - "@dfinity/principal": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.2.0.tgz", - "integrity": "sha512-7eurqPDL5ptlTTLMJPeiO75FAumXHsWEWDVQaN6XpA3aZtmofNK4Sb5g5Ne9syeuoCJcW3mFBbbFtFNxggxu+g==", - "peer": true, - "requires": { - "@noble/hashes": "^1.3.1" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "@dfinity/principal": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-0.19.3.tgz", - "integrity": "sha512-+nixVvdGt7ECxRvLXDXsvU9q9sSPssBtDQ4bXa149SK6gcYcmZ6lfWIi3DJNqj3tGROxILVBsguel9tECappsA==", - "dev": true, - "peer": true, - "requires": { - "@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==", - "optional": true - }, - "@esbuild/android-arm": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", - "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", - "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", - "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", - "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", - "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", - "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", - "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", - "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", - "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", - "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", - "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", - "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", - "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", - "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", - "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", - "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", - "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", - "optional": true - }, - "@esbuild/openbsd-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", - "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", - "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", - "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", - "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", - "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", - "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", - "optional": true - }, - "@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "requires": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - } - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dev": true, - "requires": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "dev": true, - "requires": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - } - }, - "@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "dev": true, - "requires": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - } - }, - "@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dev": true, - "requires": { - "jest-get-type": "^29.6.3" - } - }, - "@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - } - }, - "@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, - "requires": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - } - }, - "@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - } - } - }, - "@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.27.8" - } - }, - "@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - } - } - }, - "@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dev": true, - "requires": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, - "requires": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - } - }, - "@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - } - } - }, - "@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "requires": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - } - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "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" - } - }, - "@noble/curves": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.0.tgz", - "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", - "requires": { - "@noble/hashes": "1.4.0" - }, - "dependencies": { - "@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" - } - } - }, - "@noble/hashes": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==" - }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true - }, - "@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "requires": { - "@sinonjs/commons": "^3.0.0" - } - }, - "@swc/core": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.91.tgz", - "integrity": "sha512-r950d0fdlZ8qbSDyvApn3HyCojiZE8xpgJzQvypeMi32dalYwugdJKWyLB55JIGMRGJ8+lmVvY4MPGkSR3kXgA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@swc/core-darwin-arm64": "1.3.91", - "@swc/core-darwin-x64": "1.3.91", - "@swc/core-linux-arm-gnueabihf": "1.3.91", - "@swc/core-linux-arm64-gnu": "1.3.91", - "@swc/core-linux-arm64-musl": "1.3.91", - "@swc/core-linux-x64-gnu": "1.3.91", - "@swc/core-linux-x64-musl": "1.3.91", - "@swc/core-win32-arm64-msvc": "1.3.91", - "@swc/core-win32-ia32-msvc": "1.3.91", - "@swc/core-win32-x64-msvc": "1.3.91", - "@swc/counter": "^0.1.1", - "@swc/types": "^0.1.5" - } - }, - "@swc/core-darwin-arm64": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.91.tgz", - "integrity": "sha512-7kHGiQ1he5khcEeJuHDmLZPM3rRL/ith5OTmV6bOPsoHi46kLeixORW+ts1opC3tC9vu6xbk16xgX0QAJchc1w==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/core-darwin-x64": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.91.tgz", - "integrity": "sha512-8SpU18FbFpZDVzsHsAwdI1thF/picQGxq9UFxa8W+T9SDnbsqwFJv/6RqKJeJoDV6qFdl2OLjuO0OL7xrp0qnQ==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/core-linux-arm-gnueabihf": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.91.tgz", - "integrity": "sha512-fOq4Cy8UbwX1yf0WB0d8hWZaIKCnPtPGguRqdXGLfwvhjZ9SIErT6PnmGTGRbQCNCIkOZWHKyTU0r8t2dN3haQ==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/core-linux-arm64-gnu": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.91.tgz", - "integrity": "sha512-fki4ioRP/Esy4vdp8T34RCV+V9dqkRmOt763pf74pdiyFV2dPLXa5lnw/XvR1RTfPGknrYgjEQLCfZlReTryRw==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/core-linux-arm64-musl": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.91.tgz", - "integrity": "sha512-XrG+DUUqNtfVLcJ20imby7fpBwQNG5VsEQBzQndSonPyUOa2YkTbBb60YDondfQGDABopuHH8gHN8o2H2/VCnQ==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/core-linux-x64-gnu": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.91.tgz", - "integrity": "sha512-d11bYhX+YPBr/Frcjc6eVn3C0LuS/9U1Li9EmQ+6s9EpYtYRl2ygSlC8eueLbaiazBnCVYFnc8bU4o0kc5B9sw==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/core-linux-x64-musl": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.91.tgz", - "integrity": "sha512-2SRp5Dke2P4jCQePkDx9trkkTstnRpZJVw5r3jvYdk0zeO6iC4+ZPvvoWXJLigqQv/fZnIiSUfJ6ssOoaEqTzQ==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/core-win32-arm64-msvc": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.91.tgz", - "integrity": "sha512-l9qKXikOxj42UIjbeZpz9xtBmr736jOMqInNP8mVF2/U+ws5sI8zJjcOFFtfis4ru7vWCXhB1wtltdlJYO2vGA==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/core-win32-ia32-msvc": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.91.tgz", - "integrity": "sha512-+s+52O0QVPmzOgjEe/rcb0AK6q/J7EHKwAyJCu/FaYO9df5ovE0HJjSKP6HAF0dGPO5hkENrXuNGujofUH9vtQ==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/core-win32-x64-msvc": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.91.tgz", - "integrity": "sha512-7u9HDQhjUC3Gv43EFW84dZtduWCSa4MgltK+Sp9zEGti6WXqDPu/ESjvDsQEVYTBEMEvZs/xVAXPgLVHorV5nQ==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/counter": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.2.tgz", - "integrity": "sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/types": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", - "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", - "dev": true, - "optional": true, - "peer": true - }, - "@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true, - "optional": true, - "peer": true - }, - "@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true, - "optional": true, - "peer": true - }, - "@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true, - "optional": true, - "peer": true - }, - "@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true, - "optional": true, - "peer": true - }, - "@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "dev": true, - "requires": { - "@babel/types": "^7.20.7" - } - }, - "@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/node": { - "version": "18.15.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", - "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" - }, - "@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true - }, - "@types/uuid": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.4.tgz", - "integrity": "sha512-zAuJWQflfx6dYJM62vna+Sn5aeSWhh3OB+wfUEACNcqUSc0AGc5JKl+ycL1vrH7frGTXhJchYjE1Hak8L819dA==" - }, - "@types/validator": { - "version": "13.11.10", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.10.tgz", - "integrity": "sha512-e2PNXoXLr6Z+dbfx5zSh9TRlXJrELycxiaXznp4S5+D2M3b9bqJEitNHA5923jhnB2zzFiZHa2f0SI1HoIahpg==" - }, - "@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true - }, - "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true, - "optional": true, - "peer": true - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "optional": true, - "peer": true - }, - "aes-js": { - "version": "4.0.0-beta.5", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", - "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "optional": true, - "peer": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "asn1js": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", - "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", - "requires": { - "pvtsutils": "^1.3.2", - "pvutils": "^1.1.3", - "tslib": "^2.4.0" - } - }, - "azle": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/azle/-/azle-0.23.0.tgz", - "integrity": "sha512-BRp0YAe/mtLCWVZDDl5IUbCLFb2fWi2NnKLHTUC0+EmZu59kVAR7AT7DY/oMvYVYVqxGlw9eqOIzhqB1msChWQ==", - "requires": { - "@dfinity/agent": "^1.1.0", - "@dfinity/identity-secp256k1": "^1.1.0", - "@types/uuid": "^9.0.4", - "binaryen": "^116.0.0", - "buffer": "^6.0.3", - "chokidar": "^3.6.0", - "class-transformer": "^0.5.1", - "class-validator": "^0.14.1", - "crypto-browserify": "^3.12.0", - "deep-is": "^0.1.4", - "esbuild": "^0.23.0", - "esbuild-plugin-tsc": "^0.4.0", - "ethers": "6.11.1", - "fs-extra": "^11.2.0", - "glob": "^10.3.15", - "hash-of-directory": "^1.0.1", - "http-message-parser": "^0.0.34", - "intl": "^1.2.5", - "js-sha256": "0.9.0", - "net": "^1.0.2", - "pako": "^2.1.0", - "reflect-metadata": "^0.2.2", - "repl": "^0.1.3", - "text-encoding": "0.7.0", - "tsx": "^4.15.7", - "typescript": "^5.2.2", - "uuid": "^9.0.1" - }, - "dependencies": { - "@dfinity/agent": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.2.0.tgz", - "integrity": "sha512-i9mH0PO73nrhLc9lZv14SWr4muyMcs6uqqlG2SHQtRUFRXbqj4DOhKsU0Sm+kC8eWYCSu65WPKPYwwAR7YM6ug==", - "requires": { - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.3.1", - "base64-arraybuffer": "^0.2.0", - "borc": "^2.1.1", - "buffer": "^6.0.3", - "simple-cbor": "^0.4.1" - } - }, - "@dfinity/candid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.2.0.tgz", - "integrity": "sha512-L6gV3ODIFC9qNenq3zuRvHrTwH36IM5utVH2wMS5f5eIUeG9fNe+avYLRPBUJwdeX7cM7xhvDgE/m/aN2cZvKQ==", - "peer": true, - "requires": {} - }, - "@dfinity/principal": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.2.0.tgz", - "integrity": "sha512-7eurqPDL5ptlTTLMJPeiO75FAumXHsWEWDVQaN6XpA3aZtmofNK4Sb5g5Ne9syeuoCJcW3mFBbbFtFNxggxu+g==", - "peer": true, - "requires": { - "@noble/hashes": "^1.3.1" - } - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - } - }, - "minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dev": true, - "requires": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "dependencies": { - "istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - } - } - }, - "babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" - }, - "base64-arraybuffer": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", - "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - }, - "binaryen": { - "version": "116.0.0", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0.tgz", - "integrity": "sha512-Hp0dXC6Cb/rTwWEoUS2BRghObE7g/S9umKtxuTDt3f61G6fNTE/YVew/ezyy3IdHcLx3f17qfh6LwETgCfvWkQ==" - }, - "bip39": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", - "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", - "requires": { - "@noble/hashes": "^1.2.0" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "borc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", - "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", - "requires": { - "bignumber.js": "^9.0.0", - "buffer": "^5.5.0", - "commander": "^2.15.0", - "ieee754": "^1.1.13", - "iso-url": "~0.4.7", - "json-text-sequence": "~0.1.0", - "readable-stream": "^3.6.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "requires": { - "fill-range": "^7.1.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", - "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", - "requires": { - "bn.js": "^5.2.1", - "browserify-rsa": "^4.1.0", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.4", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.6", - "readable-stream": "^3.6.2", - "safe-buffer": "^5.2.1" - } - }, - "browserslist": { - "version": "4.23.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", - "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001629", - "electron-to-chromium": "^1.4.796", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.16" - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", - "requires": { - "base-x": "^4.0.0" - } - }, - "bs58check": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz", - "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==", - "requires": { - "@noble/hashes": "^1.2.0", - "bs58": "^5.0.0" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001636", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz", - "integrity": "sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "cjs-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", - "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", - "dev": true - }, - "class-transformer": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", - "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==" - }, - "class-validator": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.1.tgz", - "integrity": "sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==", - "requires": { - "@types/validator": "^13.11.8", - "libphonenumber-js": "^1.10.53", - "validator": "^13.9.0" - } - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - } - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "optional": true, - "peer": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "dedent": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", - "dev": true, - "requires": {} - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true - }, - "delimit-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", - "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=" - }, - "des.js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "optional": true, - "peer": true - }, - "diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "electron-to-chromium": { - "version": "1.4.807", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.807.tgz", - "integrity": "sha512-kSmJl2ZwhNf/bcIuCH/imtNOKlpkLDn2jqT5FJ+/0CXjhnFaOa9cOe9gHKKy71eM49izwuQjZhKk+lWQ1JxB7A==", - "dev": true - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "esbuild": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", - "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", - "requires": { - "@esbuild/aix-ppc64": "0.23.0", - "@esbuild/android-arm": "0.23.0", - "@esbuild/android-arm64": "0.23.0", - "@esbuild/android-x64": "0.23.0", - "@esbuild/darwin-arm64": "0.23.0", - "@esbuild/darwin-x64": "0.23.0", - "@esbuild/freebsd-arm64": "0.23.0", - "@esbuild/freebsd-x64": "0.23.0", - "@esbuild/linux-arm": "0.23.0", - "@esbuild/linux-arm64": "0.23.0", - "@esbuild/linux-ia32": "0.23.0", - "@esbuild/linux-loong64": "0.23.0", - "@esbuild/linux-mips64el": "0.23.0", - "@esbuild/linux-ppc64": "0.23.0", - "@esbuild/linux-riscv64": "0.23.0", - "@esbuild/linux-s390x": "0.23.0", - "@esbuild/linux-x64": "0.23.0", - "@esbuild/netbsd-x64": "0.23.0", - "@esbuild/openbsd-arm64": "0.23.0", - "@esbuild/openbsd-x64": "0.23.0", - "@esbuild/sunos-x64": "0.23.0", - "@esbuild/win32-arm64": "0.23.0", - "@esbuild/win32-ia32": "0.23.0", - "@esbuild/win32-x64": "0.23.0" - }, - "dependencies": { - "@esbuild/aix-ppc64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", - "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", - "optional": true - } - } - }, - "esbuild-plugin-tsc": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/esbuild-plugin-tsc/-/esbuild-plugin-tsc-0.4.0.tgz", - "integrity": "sha512-q9gWIovt1nkwchMLc2zhyksaiHOv3kDK4b0AUol8lkMCRhJ1zavgfb2fad6BKp7FT9rh/OHmEBXVjczLoi/0yw==", - "requires": { - "strip-comments": "^2.0.1" - } - }, - "escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "ethers": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.11.1.tgz", - "integrity": "sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg==", - "requires": { - "@adraffy/ens-normalize": "1.10.1", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@types/node": "18.15.13", - "aes-js": "4.0.0-beta.5", - "tslib": "2.4.0", - "ws": "8.5.0" - }, - "dependencies": { - "@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", - "requires": { - "@noble/hashes": "1.3.2" - } - }, - "@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" - }, - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - } - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true - }, - "expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dev": true, - "requires": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "foreground-child": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "dependencies": { - "signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" - } - } - }, - "fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "optional": true - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-prop": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/get-prop/-/get-prop-0.0.10.tgz", - "integrity": "sha512-XRSGBgcIisSMLJ/dwe1y/eMm9yzLicEJKmEXA3ArBkDkCW2nyRroLOoKIz+SdxuG5SI7ym2QHaTU5ifCl7MTDg==" - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "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==", - "requires": { - "resolve-pkg-maps": "^1.0.0" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash-of-directory": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hash-of-directory/-/hash-of-directory-1.0.1.tgz", - "integrity": "sha512-PX6VaxD6JK8R4113ChdTtEnWIo2XA9mz4yrtGBuUGUKtWCj6iWWYj/qwjdfs3Zgm+FdiNj0Vmt4VwPlwxx8WHw==" - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "requires": { - "function-bind": "^1.1.2" - } - }, - "hdkey": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz", - "integrity": "sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA==", - "requires": { - "bs58check": "^2.1.2", - "ripemd160": "^2.0.2", - "safe-buffer": "^5.1.1", - "secp256k1": "^4.0.0" - }, - "dependencies": { - "base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - } - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-message-parser": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/http-message-parser/-/http-message-parser-0.0.34.tgz", - "integrity": "sha512-KABKXT347AYvQoaMZg9/K+/GqW6gfB4pKCiTyMUYnosfkdkaBkrXE/cWGSLk5jvD5tiDeLFlYSHLhhPhQKbRrA==", - "requires": { - "buffer": "^4.9.1", - "concat-stream": "^1.5.1", - "get-prop": "0.0.10", - "minimist": "^1.2.0", - "stream-buffers": "^3.0.0" - }, - "dependencies": { - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - } - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "intl": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", - "integrity": "sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "requires": { - "hasown": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "iso-url": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", - "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==" - }, - "istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", - "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", - "dev": true, - "requires": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "dependencies": { - "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, - "jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dev": true, - "requires": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - } - }, - "jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dev": true, - "requires": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - } - }, - "jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dev": true, - "requires": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dev": true, - "requires": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - } - }, - "jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - } - }, - "jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - } - }, - "jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - } - }, - "jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, - "requires": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - } - }, - "jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true - }, - "jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - } - }, - "jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, - "requires": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - } - }, - "jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - } - }, - "jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - } - }, - "jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "dev": true - }, - "jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dev": true, - "requires": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - } - }, - "jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "dev": true, - "requires": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - } - }, - "jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dev": true, - "requires": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - } - }, - "jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "dependencies": { - "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true - } - } - }, - "jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "dev": true, - "requires": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, - "requires": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-text-sequence": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", - "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", - "requires": { - "delimit-stream": "0.1.0" - } - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "libphonenumber-js": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.11.3.tgz", - "integrity": "sha512-RU0CTsLCu2v6VEzdP+W6UU2n5+jEpMDRkGxUeBgsAJgre3vKgm17eApISH9OQY4G0jZYJVIc8qXmz6CJFueAFg==" - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "requires": { - "semver": "^7.5.3" - }, - "dependencies": { - "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", - "dev": true, - "requires": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" - }, - "minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "net": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/net/-/net-1.0.2.tgz", - "integrity": "sha512-kbhcj2SVVR4caaVnGLJKmlk2+f+oLkjqdKeQlmUtz6nGzOpbcobwVIeSURNgraV/v3tlmGIX82OcPCl0K6RbHQ==" - }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" - }, - "pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "requires": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" - } - } - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "requires": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "pure-rand": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", - "dev": true - }, - "pvtsutils": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", - "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", - "requires": { - "tslib": "^2.6.1" - } - }, - "pvutils": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", - "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==" - }, - "query_end_to_end_test_functional_syntax": { - "version": "file:../../functional_syntax/query", - "requires": { - "@dfinity/agent": "0.19.2", - "azle": "0.22.0", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "requires": { - "picomatch": "^2.2.1" - } - }, - "reflect-metadata": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", - "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" - }, - "repl": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/repl/-/repl-0.1.3.tgz", - "integrity": "sha512-C3ZEHaX28+EvM9lPiXl9ruN2g5M5sUvyCIDvZ0M4VCusfA1Cn0+z3tJcQl/lvxPsBm82q4hKHKebPlE3SEhFKg==" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "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==" - }, - "resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "simple-cbor": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/simple-cbor/-/simple-cbor-0.4.1.tgz", - "integrity": "sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w==" - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - } - }, - "stream-buffers": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz", - "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==" - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-encoding": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz", - "integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==" - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "ts-jest": { - "version": "29.1.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.5.tgz", - "integrity": "sha512-UuClSYxM7byvvYfyWdFI+/2UxMmwNyJb0NPkZPQE2hew3RurV7l7zURgOHAd/1I1ZdPpe3GUsXNXAcN8TFKSIg==", - "dev": true, - "requires": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "^7.5.3", - "yargs-parser": "^21.0.1" - }, - "dependencies": { - "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true - } - } - }, - "ts-node": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.0.tgz", - "integrity": "sha512-bunW18GUyaCSYRev4DPf4SQpom3pWH29wKl0sDk5zE7ze19RImEVhCW7K4v3hHKkUyfWotU08ToE2RS+Y49aug==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "dependencies": { - "@cspotcode/source-map-support": { - "version": "0.8.1", - "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" - } - } - } - }, - "tslib": { - "version": "2.6.2", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, - "typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==" - }, - "universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" - }, - "update-browserslist-db": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", - "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", - "dev": true, - "requires": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" - }, - "v8-compile-cache-lib": { - "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, - "optional": true, - "peer": true - }, - "v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - } - } - }, - "validator": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", - "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==" - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - }, - "ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "requires": {} - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "optional": true, - "peer": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/query/package.json b/tests/end_to_end/candid_rpc/class_syntax/query/package.json deleted file mode 100644 index 3a6f5b3743..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/query/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.19.2", - "jest": "^29.7.0", - "query_end_to_end_test_functional_syntax": "file:../../functional_syntax/query", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/query/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/query/test/pretest.ts deleted file mode 100644 index 51347b9001..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/query/test/pretest.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join('tests', 'end_to_end', 'candid_rpc', 'functional_syntax', 'query') - ); - - execSync(`dfx canister uninstall-code query || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy query`, { - stdio: 'inherit' - }); - - execSync(`dfx generate query`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/query/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/query/test/test.ts deleted file mode 100644 index bb5b49d66b..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/query/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'query_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/query'; - -const queryCanister = createActor(getCanisterId('query'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(queryCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/randomness/package.json b/tests/end_to_end/candid_rpc/class_syntax/randomness/package.json deleted file mode 100644 index 8a12687777..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/randomness/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "randomness_end_to_end_test_functional_syntax": "file:../../functional_syntax/randomness", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/randomness/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/randomness/test/pretest.ts deleted file mode 100644 index d25bec3e71..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/randomness/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'randomness' - ) - ); - - execSync(`dfx canister uninstall-code randomness || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy randomness`, { - stdio: 'inherit' - }); - - execSync(`dfx generate randomness`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/randomness/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/randomness/test/test.ts deleted file mode 100644 index c06f5c80fb..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/randomness/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'randomness_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/randomness'; - -const randomnessCanister = createActor(getCanisterId('randomness'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(randomnessCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/recursion/package.json b/tests/end_to_end/candid_rpc/class_syntax/recursion/package.json deleted file mode 100644 index c59ef3fa12..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/recursion/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "recursion_end_to_end_test_functional_syntax": "file:../../functional_syntax/recursion", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/recursion/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/recursion/test/pretest.ts deleted file mode 100644 index 78c3814b29..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/recursion/test/pretest.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'recursion' - ) - ); - - execSync(`dfx canister uninstall-code recursive_canister || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy recursive_canister --argument '("hello")'`, { - stdio: 'inherit' - }); - - execSync(`dfx generate recursive_canister`, { - stdio: 'inherit' - }); - - execSync(`dfx canister uninstall-code recursion || true`, { - stdio: 'inherit' - }); - - execSync( - `MY_CANISTER_PRINCIPAL=${getCanisterId( - 'recursive_canister' - )} dfx deploy recursion`, - { - stdio: 'inherit' - } - ); - - execSync(`dfx generate recursion`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/recursion/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/recursion/test/test.ts deleted file mode 100644 index 5daa289376..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/recursion/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { describe } from '@jest/globals'; -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { - getRecursiveCanisterTests, - getTests -} from 'recursion_end_to_end_test_functional_syntax/test/tests'; - -// @ts-ignore -import { createActor } from './dfx_generated/recursion'; -// @ts-ignore -import { createActor as createRecursiveActor } from './dfx_generated/recursive_canister'; - -const recursionCanister = createActor(getCanisterId('recursion'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -const recursiveCanister = createRecursiveActor( - getCanisterId('recursive_canister'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } - } -); - -runTests(() => { - describe('getTests', getTests(recursionCanister)); - describe( - 'getRecursiveCanisterTests', - getRecursiveCanisterTests(recursiveCanister) - ); -}); diff --git a/tests/end_to_end/candid_rpc/class_syntax/rejections/package.json b/tests/end_to_end/candid_rpc/class_syntax/rejections/package.json deleted file mode 100644 index c5b5bc88d6..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/rejections/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "rejections_end_to_end_test_functional_syntax": "file:../../functional_syntax/rejections", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/rejections/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/rejections/test/pretest.ts deleted file mode 100644 index a998f195cc..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/rejections/test/pretest.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'rejections' - ) - ); - - execSync(`dfx canister uninstall-code rejections || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister uninstall-code some_canister || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy some_canister`, { - stdio: 'inherit' - }); - - execSync( - `SOME_CANISTER_PRINCIPAL=${getCanisterId( - 'some_canister' - )} dfx deploy rejections`, - { - stdio: 'inherit' - } - ); - - execSync(`dfx generate`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/rejections/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/rejections/test/test.ts deleted file mode 100644 index 3092846bc8..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/rejections/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'rejections_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/rejections'; - -const rejectionsCanister = createActor(getCanisterId('rejections'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(rejectionsCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/package.json b/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/package.json deleted file mode 100644 index 3b3854b900..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "simple_erc20_end_to_end_test_functional_syntax": "file:../../functional_syntax/simple_erc20", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/test/pretest.ts deleted file mode 100644 index 6167aa98a1..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'simple_erc20' - ) - ); - - execSync(`dfx canister uninstall-code simple_erc20 || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy simple_erc20`, { - stdio: 'inherit' - }); - - execSync(`dfx generate simple_erc20`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/test/test.ts deleted file mode 100644 index 2a702b3192..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/simple_erc20/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'simple_erc20_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/simple_erc20'; - -const simpleErc20Canister = createActor(getCanisterId('simple_erc20'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(simpleErc20Canister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/package.json b/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/package.json deleted file mode 100644 index 16b4a2072b..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0", - "text-encoding": "^0.7.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "simple_user_accounts_end_to_end_test_functional_syntax": "file:../../functional_syntax/simple_user_accounts", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/test/pretest.ts deleted file mode 100644 index 1e8367304a..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'simple_user_accounts' - ) - ); - - execSync(`dfx canister uninstall-code simple_user_accounts || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy simple_user_accounts`, { - stdio: 'inherit' - }); - - execSync(`dfx generate simple_user_accounts`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/test/test.ts deleted file mode 100644 index 205ef36c8b..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/simple_user_accounts/test/test.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'simple_user_accounts_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/simple_user_accounts'; - -const simpleUserAccountsCanister = createActor( - getCanisterId('simple_user_accounts'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } - } -); - -runTests(getTests(simpleUserAccountsCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/package.json b/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/package.json deleted file mode 100644 index 428ea68d36..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0", - "uuid": "^9.0.1" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "stable_b_tree_map_instruction_threshold_end_to_end_test_functional_syntax": "file:../../functional_syntax/stable_b_tree_map_instruction_threshold", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/test/pretest.ts deleted file mode 100644 index e8d5508a77..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/test/pretest.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'stable_b_tree_map_instruction_threshold' - ) - ); - - execSync( - `dfx canister uninstall-code stable_b_tree_map_instruction_threshold || true`, - { - stdio: 'inherit' - } - ); - - execSync(`dfx deploy stable_b_tree_map_instruction_threshold`, { - stdio: 'inherit' - }); - - execSync(`dfx generate stable_b_tree_map_instruction_threshold`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/test/test.ts deleted file mode 100644 index d14a1b4e05..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/stable_b_tree_map_instruction_threshold/test/test.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'stable_b_tree_map_instruction_threshold_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/stable_b_tree_map_instruction_threshold'; - -const stableBTreeMapInstructionThresholdCanister = createActor( - getCanisterId('stable_b_tree_map_instruction_threshold'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } - } -); - -runTests(getTests(stableBTreeMapInstructionThresholdCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_structures/package.json b/tests/end_to_end/candid_rpc/class_syntax/stable_structures/package.json deleted file mode 100644 index 915fdc0ecd..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/stable_structures/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "stable_structures_end_to_end_test_functional_syntax": "file:../../functional_syntax/stable_structures", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_structures/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/stable_structures/test/pretest.ts deleted file mode 100644 index 4a7af42dc4..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/stable_structures/test/pretest.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'stable_structures' - ) - ); - - execSync(`dfx canister uninstall-code canister1 || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister uninstall-code canister2 || true`, { - stdio: 'inherit' - }); - - execSync(`dfx canister uninstall-code canister3 || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy`, { - stdio: 'inherit' - }); - - execSync(`dfx generate`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/stable_structures/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/stable_structures/test/test.ts deleted file mode 100644 index 3e85a7a911..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/stable_structures/test/test.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'stable_structures_end_to_end_test_functional_syntax/test/tests'; - -import { createActor as createActorCanister1 } from './dfx_generated/canister1'; -import { createActor as createActorCanister2 } from './dfx_generated/canister2'; -import { createActor as createActorCanister3 } from './dfx_generated/canister3'; -import { _SERVICE } from './dfx_generated/canister3/canister3.did'; - -const stableStructuresCanister_1 = createActorCanister1( - getCanisterId('canister1'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } - } -); - -const stableStructuresCanister_2 = createActorCanister2( - getCanisterId('canister2'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } - } -); -const stableStructuresCanister_3 = createActorCanister3( - getCanisterId('canister3'), - { - agentOptions: { - host: 'http://127.0.0.1:8000' - } - } -); - -runTests( - getTests( - stableStructuresCanister_1, - stableStructuresCanister_2, - stableStructuresCanister_3 - ) -); diff --git a/tests/end_to_end/candid_rpc/class_syntax/timers/package.json b/tests/end_to_end/candid_rpc/class_syntax/timers/package.json deleted file mode 100644 index 6fc239c4e0..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/timers/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "timers_end_to_end_test_functional_syntax": "file:../../functional_syntax/timers", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/timers/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/timers/test/pretest.ts deleted file mode 100644 index 1b4163dbf0..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/timers/test/pretest.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join('tests', 'end_to_end', 'candid_rpc', 'functional_syntax', 'timers') - ); - - execSync(`dfx canister uninstall-code timers || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy`, { - stdio: 'inherit' - }); - - execSync(`dfx generate`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/timers/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/timers/test/test.ts deleted file mode 100644 index 0bb0daa2a3..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/timers/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'timers_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/timers'; - -const timersCanister = createActor(getCanisterId('timers'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(timersCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/tuple_types/package.json b/tests/end_to_end/candid_rpc/class_syntax/tuple_types/package.json deleted file mode 100644 index 463cb15f30..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/tuple_types/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "tuple_types_end_to_end_test_functional_syntax": "file:../../functional_syntax/tuple_types", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/tuple_types/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/tuple_types/test/pretest.ts deleted file mode 100644 index 00477bbcb0..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/tuple_types/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'tuple_types' - ) - ); - - execSync(`dfx canister uninstall-code tuple_types || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy tuple_types`, { - stdio: 'inherit' - }); - - execSync(`dfx generate tuple_types`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/tuple_types/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/tuple_types/test/test.ts deleted file mode 100644 index ec752d3d32..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/tuple_types/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'tuple_types_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/tuple_types'; - -const tupleTypesCanister = createActor(getCanisterId('tuple_types'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(tupleTypesCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/update/package.json b/tests/end_to_end/candid_rpc/class_syntax/update/package.json deleted file mode 100644 index f8bfd29845..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/update/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2", - "update_end_to_end_test_functional_syntax": "file:../../functional_syntax/update" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/update/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/update/test/pretest.ts deleted file mode 100644 index 2fd5721507..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/update/test/pretest.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join('tests', 'end_to_end', 'candid_rpc', 'functional_syntax', 'update') - ); - - execSync(`dfx canister uninstall-code update || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy update`, { - stdio: 'inherit' - }); - - execSync(`dfx generate update`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/update/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/update/test/test.ts deleted file mode 100644 index 57d8851c76..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/update/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'update_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/update'; - -const updateCanister = createActor(getCanisterId('update'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(updateCanister)); diff --git a/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/package.json b/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/package.json deleted file mode 100644 index 1f47d99de8..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0", - "js-sha256": "0.9.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2", - "vanilla_js_end_to_end_test_functional_syntax": "file:../../functional_syntax/vanilla_js" - } -} diff --git a/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/test/pretest.ts b/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/test/pretest.ts deleted file mode 100644 index 8b1739bc2f..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/test/pretest.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { linkAndInstallPatch } from 'azle/test/jest_link'; -import { execSync } from 'child_process'; -import { join } from 'path'; - -function pretest(): void { - linkAndInstallPatch( - join( - 'tests', - 'end_to_end', - 'candid_rpc', - 'functional_syntax', - 'vanilla_js' - ) - ); - - execSync(`dfx canister uninstall-code vanilla_js || true`, { - stdio: 'inherit' - }); - - execSync(`dfx deploy vanilla_js`, { - stdio: 'inherit' - }); - - execSync(`dfx generate vanilla_js`, { - stdio: 'inherit' - }); -} - -pretest(); diff --git a/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/test/test.ts b/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/test/test.ts deleted file mode 100644 index 99b087f65d..0000000000 --- a/tests/end_to_end/candid_rpc/class_syntax/vanilla_js/test/test.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { getCanisterId } from 'azle/dfx'; -import { runTests } from 'azle/test'; -import { getTests } from 'vanilla_js_end_to_end_test_functional_syntax/test/tests'; - -import { createActor } from './dfx_generated/vanilla_js'; - -const vanillaJsCanister = createActor(getCanisterId('vanilla_js'), { - agentOptions: { - host: 'http://127.0.0.1:8000' - } -}); - -runTests(getTests(vanillaJsCanister)); diff --git a/tests/end_to_end/candid_rpc/functional_syntax/async_await/.gitignore b/tests/end_to_end/candid_rpc/functional_api/async_await/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/async_await/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/async_await/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/async_await/dfx.json b/tests/end_to_end/candid_rpc/functional_api/async_await/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/async_await/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/async_await/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/async_await/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/async_await/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/async_await/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/async_await/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/async_await/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/async_await/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/async_await/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/async_await/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/async_await/package.json b/tests/end_to_end/candid_rpc/functional_api/async_await/package.json new file mode 100644 index 0000000000..5c36f1bcd2 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/async_await/package.json @@ -0,0 +1,18 @@ +{ + "name": "async_await_end_to_end_test_functional_api", + "scripts": { + "pre_tests": "tsx test/pretest.ts", + "tests": "npm run pre_tests && jest", + "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/async_await/src/async_await.ts b/tests/end_to_end/candid_rpc/functional_api/async_await/src/async_await.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/async_await/src/async_await.ts rename to tests/end_to_end/candid_rpc/functional_api/async_await/src/async_await.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/async_await/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/async_await/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/async_await/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/async_await/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/async_await/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/async_await/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/async_await/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/async_await/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/async_await/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/async_await/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/async_await/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/async_await/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/async_await/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/async_await/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/async_await/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/async_await/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/.gitignore b/tests/end_to_end/candid_rpc/functional_api/audio_recorder/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/audio_recorder/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/dfx.json b/tests/end_to_end/candid_rpc/functional_api/audio_recorder/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/audio_recorder/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/audio_recorder/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/audio_recorder/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/audio_recorder/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/audio_recorder/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/audio_recorder/package.json b/tests/end_to_end/candid_rpc/functional_api/audio_recorder/package.json new file mode 100644 index 0000000000..d0c69bf69f --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/audio_recorder/package.json @@ -0,0 +1,17 @@ +{ + "name": "audio_recorder_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.3", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/src/index.did b/tests/end_to_end/candid_rpc/functional_api/audio_recorder/src/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/src/index.did rename to tests/end_to_end/candid_rpc/functional_api/audio_recorder/src/index.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/audio_recorder/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/audio_recorder/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/audio_recorder/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/audio_recorder/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/audio_recorder/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/audio_recorder/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/audio_recorder/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/audio_recorder/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/audio_recorder/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/audio_recorder/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/.bitcoin.conf b/tests/end_to_end/candid_rpc/functional_api/bitcoin/.bitcoin.conf similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bitcoin/.bitcoin.conf rename to tests/end_to_end/candid_rpc/functional_api/bitcoin/.bitcoin.conf diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/.gitignore b/tests/end_to_end/candid_rpc/functional_api/bitcoin/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bitcoin/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/bitcoin/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/README.md b/tests/end_to_end/candid_rpc/functional_api/bitcoin/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bitcoin/README.md rename to tests/end_to_end/candid_rpc/functional_api/bitcoin/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/dfx.json b/tests/end_to_end/candid_rpc/functional_api/bitcoin/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bitcoin/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/bitcoin/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/bitcoin/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bitcoin/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/bitcoin/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/bitcoin/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bitcoin/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/bitcoin/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/bitcoin/package.json b/tests/end_to_end/candid_rpc/functional_api/bitcoin/package.json new file mode 100644 index 0000000000..ae84dd06ab --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/bitcoin/package.json @@ -0,0 +1,21 @@ +{ + "name": "bitcoin_end_to_end_test_functional_api", + "scripts": { + "bitcoind": ".bitcoin/bin/bitcoind -conf=$(pwd)/.bitcoin.conf -datadir=$(pwd)/.bitcoin/data --port=18444", + "bitcoin-cli": "bitcoin-cli -conf=$(pwd)/.bitcoin.conf -datadir=$(pwd)/.bitcoin/data -rpcport=18443", + "deploy": "./scripts/deploy.sh bitcoin", + "install": "./scripts/install.sh", + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/scripts/deploy.sh b/tests/end_to_end/candid_rpc/functional_api/bitcoin/scripts/deploy.sh similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bitcoin/scripts/deploy.sh rename to tests/end_to_end/candid_rpc/functional_api/bitcoin/scripts/deploy.sh diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/scripts/install.sh b/tests/end_to_end/candid_rpc/functional_api/bitcoin/scripts/install.sh similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bitcoin/scripts/install.sh rename to tests/end_to_end/candid_rpc/functional_api/bitcoin/scripts/install.sh diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/bitcoin/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bitcoin/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/bitcoin/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/test/bitcoin_cli.ts b/tests/end_to_end/candid_rpc/functional_api/bitcoin/test/bitcoin_cli.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bitcoin/test/bitcoin_cli.ts rename to tests/end_to_end/candid_rpc/functional_api/bitcoin/test/bitcoin_cli.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/bitcoin/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bitcoin/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/bitcoin/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/test/setup.ts b/tests/end_to_end/candid_rpc/functional_api/bitcoin/test/setup.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bitcoin/test/setup.ts rename to tests/end_to_end/candid_rpc/functional_api/bitcoin/test/setup.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/bitcoin/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bitcoin/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/bitcoin/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/bitcoin/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bitcoin/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/bitcoin/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/test/wallets.ts b/tests/end_to_end/candid_rpc/functional_api/bitcoin/test/wallets.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bitcoin/test/wallets.ts rename to tests/end_to_end/candid_rpc/functional_api/bitcoin/test/wallets.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/bitcoin/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bitcoin/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/bitcoin/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/blob_array/.gitignore b/tests/end_to_end/candid_rpc/functional_api/blob_array/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/blob_array/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/blob_array/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/blob_array/README.md b/tests/end_to_end/candid_rpc/functional_api/blob_array/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/blob_array/README.md rename to tests/end_to_end/candid_rpc/functional_api/blob_array/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/blob_array/dfx.json b/tests/end_to_end/candid_rpc/functional_api/blob_array/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/blob_array/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/blob_array/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/blob_array/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/blob_array/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/blob_array/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/blob_array/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/blob_array/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/blob_array/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/blob_array/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/blob_array/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/blob_array/package.json b/tests/end_to_end/candid_rpc/functional_api/blob_array/package.json new file mode 100644 index 0000000000..3d0ccc043e --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/blob_array/package.json @@ -0,0 +1,17 @@ +{ + "name": "blob_array_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/blob_array/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/blob_array/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/blob_array/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/blob_array/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/blob_array/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/blob_array/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/blob_array/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/blob_array/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/blob_array/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/blob_array/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/blob_array/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/blob_array/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/blob_array/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/blob_array/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/blob_array/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/blob_array/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/blob_array/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/blob_array/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/blob_array/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/blob_array/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bytes/.gitignore b/tests/end_to_end/candid_rpc/functional_api/bytes/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bytes/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/bytes/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bytes/dfx.json b/tests/end_to_end/candid_rpc/functional_api/bytes/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bytes/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/bytes/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bytes/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/bytes/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bytes/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/bytes/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bytes/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/bytes/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bytes/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/bytes/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/bytes/package.json b/tests/end_to_end/candid_rpc/functional_api/bytes/package.json new file mode 100644 index 0000000000..7712850acb --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/bytes/package.json @@ -0,0 +1,17 @@ +{ + "name": "bytes_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bytes/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/bytes/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bytes/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/bytes/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bytes/test/example_files/example_1000_kb.txt b/tests/end_to_end/candid_rpc/functional_api/bytes/test/example_files/example_1000_kb.txt similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bytes/test/example_files/example_1000_kb.txt rename to tests/end_to_end/candid_rpc/functional_api/bytes/test/example_files/example_1000_kb.txt diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bytes/test/example_files/example_100_kb.txt b/tests/end_to_end/candid_rpc/functional_api/bytes/test/example_files/example_100_kb.txt similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bytes/test/example_files/example_100_kb.txt rename to tests/end_to_end/candid_rpc/functional_api/bytes/test/example_files/example_100_kb.txt diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bytes/test/example_files/example_10_kb.txt b/tests/end_to_end/candid_rpc/functional_api/bytes/test/example_files/example_10_kb.txt similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bytes/test/example_files/example_10_kb.txt rename to tests/end_to_end/candid_rpc/functional_api/bytes/test/example_files/example_10_kb.txt diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bytes/test/example_files/example_1_kb.txt b/tests/end_to_end/candid_rpc/functional_api/bytes/test/example_files/example_1_kb.txt similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bytes/test/example_files/example_1_kb.txt rename to tests/end_to_end/candid_rpc/functional_api/bytes/test/example_files/example_1_kb.txt diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bytes/test/example_files/example_2000_kb.txt b/tests/end_to_end/candid_rpc/functional_api/bytes/test/example_files/example_2000_kb.txt similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bytes/test/example_files/example_2000_kb.txt rename to tests/end_to_end/candid_rpc/functional_api/bytes/test/example_files/example_2000_kb.txt diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bytes/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/bytes/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bytes/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/bytes/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bytes/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/bytes/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bytes/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/bytes/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bytes/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/bytes/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bytes/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/bytes/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bytes/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/bytes/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/bytes/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/bytes/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/call_raw/.gitignore b/tests/end_to_end/candid_rpc/functional_api/call_raw/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/call_raw/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/call_raw/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/call_raw/dfx.json b/tests/end_to_end/candid_rpc/functional_api/call_raw/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/call_raw/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/call_raw/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/call_raw/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/call_raw/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/call_raw/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/call_raw/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/call_raw/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/call_raw/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/call_raw/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/call_raw/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/call_raw/package.json b/tests/end_to_end/candid_rpc/functional_api/call_raw/package.json new file mode 100644 index 0000000000..6c1ebff9bc --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/call_raw/package.json @@ -0,0 +1,17 @@ +{ + "name": "call_raw_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/call_raw/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/call_raw/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/call_raw/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/call_raw/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/call_raw/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/call_raw/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/call_raw/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/call_raw/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/call_raw/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/call_raw/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/call_raw/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/call_raw/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/call_raw/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/call_raw/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/call_raw/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/call_raw/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/call_raw/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/call_raw/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/call_raw/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/call_raw/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/.gitignore b/tests/end_to_end/candid_rpc/functional_api/candid_encoding/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/candid_encoding/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/dfx.json b/tests/end_to_end/candid_rpc/functional_api/candid_encoding/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/candid_encoding/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/candid_encoding/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/candid_encoding/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/candid_encoding/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/candid_encoding/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/candid_encoding/package.json b/tests/end_to_end/candid_rpc/functional_api/candid_encoding/package.json new file mode 100644 index 0000000000..ba351f6786 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/candid_encoding/package.json @@ -0,0 +1,17 @@ +{ + "name": "candid_encoding_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/candid_encoding/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/candid_encoding/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/candid_encoding/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/candid_encoding/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/candid_encoding/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/candid_encoding/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/candid_encoding/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/candid_encoding/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/candid_encoding/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/candid_encoding/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/.gitignore b/tests/end_to_end/candid_rpc/functional_api/candid_keywords/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/candid_keywords/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/dfx.json b/tests/end_to_end/candid_rpc/functional_api/candid_keywords/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/candid_keywords/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/candid_keywords/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/candid_keywords/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/candid_keywords/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/candid_keywords/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/candid_keywords/package.json b/tests/end_to_end/candid_rpc/functional_api/candid_keywords/package.json new file mode 100644 index 0000000000..ffb6aed166 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/candid_keywords/package.json @@ -0,0 +1,17 @@ +{ + "name": "candid_keywords_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/candid_keywords/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/candid_keywords/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/candid_keywords/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/candid_keywords/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/candid_keywords/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/candid_keywords/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/candid_keywords/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/candid_keywords/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/candid_keywords/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/candid_keywords/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/canister/.gitignore b/tests/end_to_end/candid_rpc/functional_api/canister/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/canister/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/canister/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/canister/dfx.json b/tests/end_to_end/candid_rpc/functional_api/canister/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/canister/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/canister/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/canister/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/canister/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/canister/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/canister/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/canister/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/canister/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/canister/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/canister/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/canister/package.json b/tests/end_to_end/candid_rpc/functional_api/canister/package.json new file mode 100644 index 0000000000..f7a9c8e2ef --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/canister/package.json @@ -0,0 +1,18 @@ +{ + "name": "canister_end_to_end_test_functional_api", + "scripts": { + "pre_tests": "tsx test/pretest.ts", + "tests": "npm run pre_tests && jest", + "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.21.4", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/canister/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/canister/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/canister/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/canister/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/canister/src/some_canister.did b/tests/end_to_end/candid_rpc/functional_api/canister/src/some_canister.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/canister/src/some_canister.did rename to tests/end_to_end/candid_rpc/functional_api/canister/src/some_canister.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/canister/src/some_canister.ts b/tests/end_to_end/candid_rpc/functional_api/canister/src/some_canister.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/canister/src/some_canister.ts rename to tests/end_to_end/candid_rpc/functional_api/canister/src/some_canister.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/canister/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/canister/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/canister/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/canister/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/canister/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/canister/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/canister/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/canister/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/canister/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/canister/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/canister/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/canister/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/canister/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/canister/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/canister/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/canister/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/.bitcoin.conf b/tests/end_to_end/candid_rpc/functional_api/ckbtc/.bitcoin.conf similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/.bitcoin.conf rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/.bitcoin.conf diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/.gitignore b/tests/end_to_end/candid_rpc/functional_api/ckbtc/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/README.md b/tests/end_to_end/candid_rpc/functional_api/ckbtc/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/README.md rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/ckbtc/LICENSE b/tests/end_to_end/candid_rpc/functional_api/ckbtc/ckbtc/LICENSE similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/ckbtc/LICENSE rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/ckbtc/LICENSE diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/ckbtc/ledger.did b/tests/end_to_end/candid_rpc/functional_api/ckbtc/ckbtc/ledger.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/ckbtc/ledger.did rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/ckbtc/ledger.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/dfx.json b/tests/end_to_end/candid_rpc/functional_api/ckbtc/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/internet_identity/LICENSE b/tests/end_to_end/candid_rpc/functional_api/ckbtc/internet_identity/LICENSE similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/internet_identity/LICENSE rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/internet_identity/LICENSE diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/internet_identity/internet_identity.did b/tests/end_to_end/candid_rpc/functional_api/ckbtc/internet_identity/internet_identity.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/internet_identity/internet_identity.did rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/internet_identity/internet_identity.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/ckbtc/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/kyt/LICENSE b/tests/end_to_end/candid_rpc/functional_api/ckbtc/kyt/LICENSE similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/kyt/LICENSE rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/kyt/LICENSE diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/kyt/kyt.did b/tests/end_to_end/candid_rpc/functional_api/ckbtc/kyt/kyt.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/kyt/kyt.did rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/kyt/kyt.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/minter/LICENSE b/tests/end_to_end/candid_rpc/functional_api/ckbtc/minter/LICENSE similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/minter/LICENSE rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/minter/LICENSE diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/minter/minter.did b/tests/end_to_end/candid_rpc/functional_api/ckbtc/minter/minter.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/minter/minter.did rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/minter/minter.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/ckbtc/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/ckbtc/package.json b/tests/end_to_end/candid_rpc/functional_api/ckbtc/package.json new file mode 100644 index 0000000000..23a5da9533 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/ckbtc/package.json @@ -0,0 +1,38 @@ +{ + "name": "ckbtc_end_to_end_test_functional_api", + "scripts": { + "bitcoin": ".bitcoin/bin/bitcoind -conf=$(pwd)/.bitcoin.conf -datadir=$(pwd)/.bitcoin/data --port=18444", + "ic": "dfx start --clean --host 127.0.0.1:8000 --enable-bitcoin", + "install": "./scripts/install/all.sh", + "install:bitcoin": "./scripts/install/bitcoin.sh", + "install:ckbtc": "curl -o ./ckbtc/ledger.wasm.gz https://download.dfinity.systems/ic/d6d395a480cd6986b4788f4aafffc5c03a07e46e/canisters/ic-icrc1-ledger.wasm.gz", + "install:internet_identity": "curl -L -o ./internet_identity/internet_identity_test.wasm.gz https://github.com/dfinity/internet-identity/releases/download/release-2023-05-15/internet_identity_test.wasm.gz", + "install:kyt": "curl -o ./kyt/kyt.wasm.gz https://download.dfinity.systems/ic/d6d395a480cd6986b4788f4aafffc5c03a07e46e/canisters/ic-ckbtc-kyt.wasm.gz", + "install:minter": "curl -o ./minter/minter.wasm.gz https://download.dfinity.systems/ic/d6d395a480cd6986b4788f4aafffc5c03a07e46e/canisters/ic-ckbtc-minter.wasm.gz", + "install:wallet_frontend": "cd wallet/frontend && npm install && cd ../..", + "deploy": "./scripts/deploy/all.sh", + "deploy:ckbtc": "./scripts/deploy/ckbtc.sh", + "deploy:internet_identity": "./scripts/deploy/internet_identity.sh", + "deploy:kyt": "./scripts/deploy/kyt.sh", + "deploy:minter": "./scripts/deploy/minter.sh", + "deploy:wallet_backend": "./scripts/deploy/wallet_backend.sh", + "deploy:wallet_frontend": "dfx deploy wallet_frontend --specified-id ryjl3-tyaaa-aaaaa-aaaba-cai", + "frontend": "npx open-cli http://ryjl3-tyaaa-aaaaa-aaaba-cai.localhost:8000/", + "mint": ".bitcoin/bin/bitcoin-cli -conf=$(pwd)/.bitcoin.conf generatetoaddress 1 $npm_config_address", + "build": "cd wallet/frontend && npm run build", + "pre_tests": "tsx test/pretest.ts", + "tests": "npm run pre_tests && jest", + "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "@dfinity/identity": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/scripts/deploy/all.sh b/tests/end_to_end/candid_rpc/functional_api/ckbtc/scripts/deploy/all.sh similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/scripts/deploy/all.sh rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/scripts/deploy/all.sh diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/scripts/deploy/ckbtc.sh b/tests/end_to_end/candid_rpc/functional_api/ckbtc/scripts/deploy/ckbtc.sh similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/scripts/deploy/ckbtc.sh rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/scripts/deploy/ckbtc.sh diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/scripts/deploy/internet_identity.sh b/tests/end_to_end/candid_rpc/functional_api/ckbtc/scripts/deploy/internet_identity.sh similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/scripts/deploy/internet_identity.sh rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/scripts/deploy/internet_identity.sh diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/scripts/deploy/kyt.sh b/tests/end_to_end/candid_rpc/functional_api/ckbtc/scripts/deploy/kyt.sh similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/scripts/deploy/kyt.sh rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/scripts/deploy/kyt.sh diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/scripts/deploy/minter.sh b/tests/end_to_end/candid_rpc/functional_api/ckbtc/scripts/deploy/minter.sh similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/scripts/deploy/minter.sh rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/scripts/deploy/minter.sh diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/scripts/deploy/wallet_backend.sh b/tests/end_to_end/candid_rpc/functional_api/ckbtc/scripts/deploy/wallet_backend.sh similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/scripts/deploy/wallet_backend.sh rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/scripts/deploy/wallet_backend.sh diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/scripts/install/all.sh b/tests/end_to_end/candid_rpc/functional_api/ckbtc/scripts/install/all.sh similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/scripts/install/all.sh rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/scripts/install/all.sh diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/scripts/install/bitcoin.sh b/tests/end_to_end/candid_rpc/functional_api/ckbtc/scripts/install/bitcoin.sh similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/scripts/install/bitcoin.sh rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/scripts/install/bitcoin.sh diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/ckbtc/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/ckbtc/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/ckbtc/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/ckbtc/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/backend/LICENSE b/tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/backend/LICENSE similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/backend/LICENSE rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/backend/LICENSE diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/backend/NOTICE b/tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/backend/NOTICE similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/backend/NOTICE rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/backend/NOTICE diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/backend/icrc.did b/tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/backend/icrc.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/backend/icrc.did rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/backend/icrc.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/backend/index.ts b/tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/backend/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/backend/index.ts rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/backend/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/backend/minter.ts b/tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/backend/minter.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/backend/minter.ts rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/backend/minter.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/frontend/elements/ck-app.ts b/tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/frontend/elements/ck-app.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/frontend/elements/ck-app.ts rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/frontend/elements/ck-app.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/frontend/index.html b/tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/frontend/index.html similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/frontend/index.html rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/frontend/index.html diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/frontend/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/frontend/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/frontend/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/frontend/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/frontend/package.json b/tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/frontend/package.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/frontend/package.json rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/frontend/package.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/index.d.ts b/tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/index.d.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/index.d.ts rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/index.d.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/index.js b/tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/index.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/index.js rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/index.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/wallet_backend.did b/tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/wallet_backend.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/wallet_backend.did rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/wallet_backend.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/wallet_backend.did.d.ts b/tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/wallet_backend.did.d.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/wallet_backend.did.d.ts rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/wallet_backend.did.d.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/wallet_backend.did.js b/tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/wallet_backend.did.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/wallet_backend.did.js rename to tests/end_to_end/candid_rpc/functional_api/ckbtc/wallet/frontend/wallet/frontend/dfx_generate/wallet_backend/wallet_backend.did.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_init/.gitignore b/tests/end_to_end/candid_rpc/functional_api/complex_init/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_init/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/complex_init/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_init/dfx.json b/tests/end_to_end/candid_rpc/functional_api/complex_init/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_init/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/complex_init/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_init/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/complex_init/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_init/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/complex_init/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_init/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/complex_init/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_init/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/complex_init/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/complex_init/package.json b/tests/end_to_end/candid_rpc/functional_api/complex_init/package.json new file mode 100644 index 0000000000..49f3de0e1b --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/complex_init/package.json @@ -0,0 +1,17 @@ +{ + "name": "complex_init_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_init/src/complex_init/index.ts b/tests/end_to_end/candid_rpc/functional_api/complex_init/src/complex_init/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_init/src/complex_init/index.ts rename to tests/end_to_end/candid_rpc/functional_api/complex_init/src/complex_init/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_init/src/rec_init/index.ts b/tests/end_to_end/candid_rpc/functional_api/complex_init/src/rec_init/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_init/src/rec_init/index.ts rename to tests/end_to_end/candid_rpc/functional_api/complex_init/src/rec_init/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_init/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/complex_init/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_init/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/complex_init/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_init/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/complex_init/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_init/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/complex_init/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_init/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/complex_init/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_init/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/complex_init/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_init/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/complex_init/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_init/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/complex_init/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/.gitignore b/tests/end_to_end/candid_rpc/functional_api/complex_types/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_types/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/complex_types/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/dfx.json b/tests/end_to_end/candid_rpc/functional_api/complex_types/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_types/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/complex_types/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/complex_types/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_types/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/complex_types/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/complex_types/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_types/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/complex_types/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/complex_types/package.json b/tests/end_to_end/candid_rpc/functional_api/complex_types/package.json new file mode 100644 index 0000000000..894b80f947 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/complex_types/package.json @@ -0,0 +1,17 @@ +{ + "name": "complex_types_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/src/candid_types.ts b/tests/end_to_end/candid_rpc/functional_api/complex_types/src/candid_types.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_types/src/candid_types.ts rename to tests/end_to_end/candid_rpc/functional_api/complex_types/src/candid_types.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/src/index.did b/tests/end_to_end/candid_rpc/functional_api/complex_types/src/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_types/src/index.did rename to tests/end_to_end/candid_rpc/functional_api/complex_types/src/index.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/complex_types/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_types/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/complex_types/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/src/posts.ts b/tests/end_to_end/candid_rpc/functional_api/complex_types/src/posts.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_types/src/posts.ts rename to tests/end_to_end/candid_rpc/functional_api/complex_types/src/posts.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/src/reactions.ts b/tests/end_to_end/candid_rpc/functional_api/complex_types/src/reactions.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_types/src/reactions.ts rename to tests/end_to_end/candid_rpc/functional_api/complex_types/src/reactions.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/src/state.ts b/tests/end_to_end/candid_rpc/functional_api/complex_types/src/state.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_types/src/state.ts rename to tests/end_to_end/candid_rpc/functional_api/complex_types/src/state.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/src/threads.ts b/tests/end_to_end/candid_rpc/functional_api/complex_types/src/threads.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_types/src/threads.ts rename to tests/end_to_end/candid_rpc/functional_api/complex_types/src/threads.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/src/users.ts b/tests/end_to_end/candid_rpc/functional_api/complex_types/src/users.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_types/src/users.ts rename to tests/end_to_end/candid_rpc/functional_api/complex_types/src/users.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/complex_types/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_types/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/complex_types/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/complex_types/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_types/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/complex_types/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/complex_types/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_types/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/complex_types/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/complex_types/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/complex_types/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/complex_types/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/.gitignore b/tests/end_to_end/candid_rpc/functional_api/composite_queries/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/composite_queries/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/composite_queries/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/dfx.json b/tests/end_to_end/candid_rpc/functional_api/composite_queries/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/composite_queries/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/composite_queries/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/composite_queries/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/composite_queries/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/composite_queries/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/composite_queries/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/composite_queries/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/composite_queries/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/composite_queries/package.json b/tests/end_to_end/candid_rpc/functional_api/composite_queries/package.json new file mode 100644 index 0000000000..c837a594ef --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/composite_queries/package.json @@ -0,0 +1,18 @@ +{ + "name": "composite_queries_end_to_end_test_functional_api", + "scripts": { + "pre_tests": "tsx test/pretest.ts", + "tests": "npm run pre_tests && jest", + "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/src/canister1/index.did b/tests/end_to_end/candid_rpc/functional_api/composite_queries/src/canister1/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/composite_queries/src/canister1/index.did rename to tests/end_to_end/candid_rpc/functional_api/composite_queries/src/canister1/index.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/src/canister1/index.ts b/tests/end_to_end/candid_rpc/functional_api/composite_queries/src/canister1/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/composite_queries/src/canister1/index.ts rename to tests/end_to_end/candid_rpc/functional_api/composite_queries/src/canister1/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/src/canister2/index.did b/tests/end_to_end/candid_rpc/functional_api/composite_queries/src/canister2/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/composite_queries/src/canister2/index.did rename to tests/end_to_end/candid_rpc/functional_api/composite_queries/src/canister2/index.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/src/canister2/index.ts b/tests/end_to_end/candid_rpc/functional_api/composite_queries/src/canister2/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/composite_queries/src/canister2/index.ts rename to tests/end_to_end/candid_rpc/functional_api/composite_queries/src/canister2/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/src/canister3/index.did b/tests/end_to_end/candid_rpc/functional_api/composite_queries/src/canister3/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/composite_queries/src/canister3/index.did rename to tests/end_to_end/candid_rpc/functional_api/composite_queries/src/canister3/index.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/src/canister3/index.ts b/tests/end_to_end/candid_rpc/functional_api/composite_queries/src/canister3/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/composite_queries/src/canister3/index.ts rename to tests/end_to_end/candid_rpc/functional_api/composite_queries/src/canister3/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/composite_queries/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/composite_queries/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/composite_queries/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/composite_queries/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/composite_queries/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/composite_queries/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/composite_queries/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/composite_queries/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/composite_queries/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/composite_queries/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/composite_queries/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/composite_queries/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/counter/.gitignore b/tests/end_to_end/candid_rpc/functional_api/counter/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/counter/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/counter/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/counter/dfx.json b/tests/end_to_end/candid_rpc/functional_api/counter/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/counter/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/counter/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/counter/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/counter/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/counter/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/counter/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/counter/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/counter/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/counter/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/counter/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/counter/package.json b/tests/end_to_end/candid_rpc/functional_api/counter/package.json new file mode 100644 index 0000000000..274d287039 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/counter/package.json @@ -0,0 +1,17 @@ +{ + "name": "counter_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/counter/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/counter/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/counter/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/counter/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/counter/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/counter/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/counter/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/counter/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/counter/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/counter/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/counter/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/counter/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/counter/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/counter/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/counter/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/counter/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/counter/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/counter/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/counter/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/counter/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/.gitignore b/tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/README.md b/tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/README.md rename to tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/dfx.json b/tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/package.json b/tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/package.json new file mode 100644 index 0000000000..db84ca16c4 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/package.json @@ -0,0 +1,18 @@ +{ + "name": "cross_canister_calls_end_to_end_test_functional_api", + "scripts": { + "pre_tests": "tsx test/pretest.ts", + "tests": "npm run pre_tests && jest", + "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/src/canister1/index.ts b/tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/src/canister1/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/src/canister1/index.ts rename to tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/src/canister1/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/src/canister2/index.did b/tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/src/canister2/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/src/canister2/index.did rename to tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/src/canister2/index.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/src/canister2/index.ts b/tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/src/canister2/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/src/canister2/index.ts rename to tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/src/canister2/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/src/canister2/types.ts b/tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/src/canister2/types.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/src/canister2/types.ts rename to tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/src/canister2/types.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/cross_canister_calls/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cycles/.gitignore b/tests/end_to_end/candid_rpc/functional_api/cycles/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cycles/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/cycles/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cycles/dfx.json b/tests/end_to_end/candid_rpc/functional_api/cycles/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cycles/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/cycles/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cycles/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/cycles/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cycles/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/cycles/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cycles/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/cycles/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cycles/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/cycles/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/cycles/package.json b/tests/end_to_end/candid_rpc/functional_api/cycles/package.json new file mode 100644 index 0000000000..7813c959b9 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/cycles/package.json @@ -0,0 +1,18 @@ +{ + "name": "cycles_end_to_end_test_functional_api", + "scripts": { + "pre_tests": "tsx test/pretest.ts", + "tests": "npm run pre_tests && jest", + "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cycles/src/cycles/index.did b/tests/end_to_end/candid_rpc/functional_api/cycles/src/cycles/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cycles/src/cycles/index.did rename to tests/end_to_end/candid_rpc/functional_api/cycles/src/cycles/index.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cycles/src/cycles/index.ts b/tests/end_to_end/candid_rpc/functional_api/cycles/src/cycles/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cycles/src/cycles/index.ts rename to tests/end_to_end/candid_rpc/functional_api/cycles/src/cycles/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cycles/src/intermediary/index.ts b/tests/end_to_end/candid_rpc/functional_api/cycles/src/intermediary/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cycles/src/intermediary/index.ts rename to tests/end_to_end/candid_rpc/functional_api/cycles/src/intermediary/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cycles/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/cycles/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cycles/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/cycles/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cycles/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/cycles/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cycles/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/cycles/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cycles/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/cycles/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cycles/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/cycles/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cycles/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/cycles/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/cycles/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/cycles/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/date/.gitignore b/tests/end_to_end/candid_rpc/functional_api/date/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/date/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/date/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/date/dfx.json b/tests/end_to_end/candid_rpc/functional_api/date/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/date/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/date/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/date/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/date/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/date/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/date/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/date/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/date/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/date/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/date/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/date/package.json b/tests/end_to_end/candid_rpc/functional_api/date/package.json new file mode 100644 index 0000000000..3fdaa1db1b --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/date/package.json @@ -0,0 +1,17 @@ +{ + "name": "date_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/date/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/date/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/date/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/date/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/date/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/date/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/date/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/date/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/date/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/date/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/date/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/date/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/date/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/date/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/date/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/date/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/date/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/date/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/date/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/date/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/.gitignore b/tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/dfx.json b/tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/package.json b/tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/package.json new file mode 100644 index 0000000000..43039f769a --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/package.json @@ -0,0 +1,18 @@ +{ + "name": "ethereum_json_rpc_end_to_end_test_functional_api", + "scripts": { + "pre_tests": "ETHEREUM_URL=https://rpc.ankr.com/eth tsx test/pretest.ts", + "tests": "ETHEREUM_URL=https://rpc.ankr.com/eth npm run pre_tests && jest", + "test": "ETHEREUM_URL=https://rpc.ankr.com/eth AZLE_TEST_FETCH=false npm run tests && ETHEREUM_URL=https://rpc.ankr.com/eth AZLE_TEST_FETCH=true npm run tests" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/ethereum_json_rpc/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/func_types/.gitignore b/tests/end_to_end/candid_rpc/functional_api/func_types/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/func_types/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/func_types/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/func_types/canisters/func_types/index.ts b/tests/end_to_end/candid_rpc/functional_api/func_types/canisters/func_types/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/func_types/canisters/func_types/index.ts rename to tests/end_to_end/candid_rpc/functional_api/func_types/canisters/func_types/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/func_types/canisters/notifiers/index.did b/tests/end_to_end/candid_rpc/functional_api/func_types/canisters/notifiers/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/func_types/canisters/notifiers/index.did rename to tests/end_to_end/candid_rpc/functional_api/func_types/canisters/notifiers/index.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/func_types/canisters/notifiers/index.ts b/tests/end_to_end/candid_rpc/functional_api/func_types/canisters/notifiers/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/func_types/canisters/notifiers/index.ts rename to tests/end_to_end/candid_rpc/functional_api/func_types/canisters/notifiers/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/func_types/dfx.json b/tests/end_to_end/candid_rpc/functional_api/func_types/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/func_types/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/func_types/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/func_types/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/func_types/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/func_types/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/func_types/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/func_types/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/func_types/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/func_types/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/func_types/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/func_types/package.json b/tests/end_to_end/candid_rpc/functional_api/func_types/package.json new file mode 100644 index 0000000000..aad268a75f --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/func_types/package.json @@ -0,0 +1,18 @@ +{ + "name": "func_types_end_to_end_test_functional_api", + "scripts": { + "pre_tests": "tsx test/pretest.ts", + "tests": "npm run pre_tests && jest", + "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/func_types/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/func_types/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/func_types/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/func_types/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/func_types/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/func_types/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/func_types/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/func_types/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/func_types/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/func_types/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/func_types/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/func_types/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/func_types/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/func_types/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/func_types/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/func_types/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/heartbeat/.gitignore b/tests/end_to_end/candid_rpc/functional_api/heartbeat/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/heartbeat/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/heartbeat/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/heartbeat/dfx.json b/tests/end_to_end/candid_rpc/functional_api/heartbeat/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/heartbeat/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/heartbeat/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/heartbeat/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/heartbeat/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/heartbeat/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/heartbeat/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/heartbeat/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/heartbeat/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/heartbeat/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/heartbeat/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/heartbeat/package.json b/tests/end_to_end/candid_rpc/functional_api/heartbeat/package.json new file mode 100644 index 0000000000..f83262e63b --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/heartbeat/package.json @@ -0,0 +1,18 @@ +{ + "name": "heartbeat_end_to_end_test_functional_api", + "scripts": { + "pre_tests": "tsx test/pretest.ts", + "tests": "npm run pre_tests && jest", + "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/heartbeat/src/heartbeat_async/index.ts b/tests/end_to_end/candid_rpc/functional_api/heartbeat/src/heartbeat_async/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/heartbeat/src/heartbeat_async/index.ts rename to tests/end_to_end/candid_rpc/functional_api/heartbeat/src/heartbeat_async/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/heartbeat/src/heartbeat_sync/index.ts b/tests/end_to_end/candid_rpc/functional_api/heartbeat/src/heartbeat_sync/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/heartbeat/src/heartbeat_sync/index.ts rename to tests/end_to_end/candid_rpc/functional_api/heartbeat/src/heartbeat_sync/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/heartbeat/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/heartbeat/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/heartbeat/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/heartbeat/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/heartbeat/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/heartbeat/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/heartbeat/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/heartbeat/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/heartbeat/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/heartbeat/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/heartbeat/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/heartbeat/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/heartbeat/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/heartbeat/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/heartbeat/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/heartbeat/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ic_api/.gitignore b/tests/end_to_end/candid_rpc/functional_api/ic_api/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ic_api/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/ic_api/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ic_api/dfx.json b/tests/end_to_end/candid_rpc/functional_api/ic_api/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ic_api/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/ic_api/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ic_api/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/ic_api/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ic_api/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/ic_api/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ic_api/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/ic_api/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ic_api/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/ic_api/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/ic_api/package.json b/tests/end_to_end/candid_rpc/functional_api/ic_api/package.json new file mode 100644 index 0000000000..10d0e6198b --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/ic_api/package.json @@ -0,0 +1,17 @@ +{ + "name": "ic_api_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ic_api/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/ic_api/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ic_api/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/ic_api/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ic_api/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/ic_api/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ic_api/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/ic_api/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ic_api/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/ic_api/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ic_api/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/ic_api/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ic_api/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/ic_api/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ic_api/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/ic_api/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ic_api/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/ic_api/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ic_api/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/ic_api/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/icrc/.gitignore b/tests/end_to_end/candid_rpc/functional_api/icrc/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/icrc/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/icrc/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/icrc/README.md b/tests/end_to_end/candid_rpc/functional_api/icrc/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/icrc/README.md rename to tests/end_to_end/candid_rpc/functional_api/icrc/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/icrc/canisters/proxy/LICENSE b/tests/end_to_end/candid_rpc/functional_api/icrc/canisters/proxy/LICENSE similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/icrc/canisters/proxy/LICENSE rename to tests/end_to_end/candid_rpc/functional_api/icrc/canisters/proxy/LICENSE diff --git a/tests/end_to_end/candid_rpc/functional_syntax/icrc/canisters/proxy/NOTICE b/tests/end_to_end/candid_rpc/functional_api/icrc/canisters/proxy/NOTICE similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/icrc/canisters/proxy/NOTICE rename to tests/end_to_end/candid_rpc/functional_api/icrc/canisters/proxy/NOTICE diff --git a/tests/end_to_end/candid_rpc/functional_syntax/icrc/canisters/proxy/icrc.did b/tests/end_to_end/candid_rpc/functional_api/icrc/canisters/proxy/icrc.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/icrc/canisters/proxy/icrc.did rename to tests/end_to_end/candid_rpc/functional_api/icrc/canisters/proxy/icrc.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/icrc/canisters/proxy/index.ts b/tests/end_to_end/candid_rpc/functional_api/icrc/canisters/proxy/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/icrc/canisters/proxy/index.ts rename to tests/end_to_end/candid_rpc/functional_api/icrc/canisters/proxy/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/icrc/dfx.json b/tests/end_to_end/candid_rpc/functional_api/icrc/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/icrc/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/icrc/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/icrc/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/icrc/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/icrc/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/icrc/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/icrc/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/icrc/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/icrc/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/icrc/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/icrc/package.json b/tests/end_to_end/candid_rpc/functional_api/icrc/package.json new file mode 100644 index 0000000000..7562c14876 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/icrc/package.json @@ -0,0 +1,18 @@ +{ + "name": "icrc_end_to_end_test_functional_api", + "scripts": { + "pre_tests": "tsx test/pretest.ts", + "tests": "npm run pre_tests && jest", + "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.14.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/icrc/params.did b/tests/end_to_end/candid_rpc/functional_api/icrc/params.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/icrc/params.did rename to tests/end_to_end/candid_rpc/functional_api/icrc/params.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/icrc/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/icrc/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/icrc/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/icrc/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/icrc/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/icrc/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/icrc/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/icrc/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/icrc/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/icrc/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/icrc/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/icrc/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/icrc/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/icrc/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/icrc/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/icrc/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/imports/.gitignore b/tests/end_to_end/candid_rpc/functional_api/imports/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/imports/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/imports/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/imports/dfx.json b/tests/end_to_end/candid_rpc/functional_api/imports/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/imports/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/imports/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/imports/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/imports/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/imports/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/imports/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/imports/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/imports/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/imports/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/imports/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/imports/package.json b/tests/end_to_end/candid_rpc/functional_api/imports/package.json new file mode 100644 index 0000000000..a2f00d9723 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/imports/package.json @@ -0,0 +1,18 @@ +{ + "name": "imports_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0", + "js-sha256": "0.9.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/imports/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/imports/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/imports/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/imports/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/imports/src/library.ts b/tests/end_to_end/candid_rpc/functional_api/imports/src/library.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/imports/src/library.ts rename to tests/end_to_end/candid_rpc/functional_api/imports/src/library.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/imports/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/imports/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/imports/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/imports/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/imports/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/imports/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/imports/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/imports/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/imports/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/imports/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/imports/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/imports/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/imports/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/imports/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/imports/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/imports/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/init/.gitignore b/tests/end_to_end/candid_rpc/functional_api/init/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/init/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/init/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/init/dfx.json b/tests/end_to_end/candid_rpc/functional_api/init/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/init/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/init/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/init/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/init/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/init/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/init/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/init/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/init/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/init/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/init/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/init/package.json b/tests/end_to_end/candid_rpc/functional_api/init/package.json new file mode 100644 index 0000000000..8542e5c025 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/init/package.json @@ -0,0 +1,17 @@ +{ + "name": "init_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^1.4.0", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/init/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/init/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/init/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/init/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/init/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/init/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/init/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/init/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/init/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/init/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/init/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/init/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/init/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/init/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/init/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/init/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/init/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/init/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/init/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/init/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/inspect_message/.gitignore b/tests/end_to_end/candid_rpc/functional_api/inspect_message/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/inspect_message/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/inspect_message/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/inspect_message/dfx.json b/tests/end_to_end/candid_rpc/functional_api/inspect_message/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/inspect_message/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/inspect_message/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/inspect_message/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/inspect_message/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/inspect_message/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/inspect_message/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/inspect_message/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/inspect_message/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/inspect_message/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/inspect_message/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/inspect_message/package.json b/tests/end_to_end/candid_rpc/functional_api/inspect_message/package.json new file mode 100644 index 0000000000..54dfe2c5c0 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/inspect_message/package.json @@ -0,0 +1,17 @@ +{ + "name": "inspect_message_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/inspect_message/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/inspect_message/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/inspect_message/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/inspect_message/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/inspect_message/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/inspect_message/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/inspect_message/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/inspect_message/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/inspect_message/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/inspect_message/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/inspect_message/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/inspect_message/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/inspect_message/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/inspect_message/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/inspect_message/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/inspect_message/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/inspect_message/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/inspect_message/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/inspect_message/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/inspect_message/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/key_value_store/.gitignore b/tests/end_to_end/candid_rpc/functional_api/key_value_store/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/key_value_store/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/key_value_store/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/key_value_store/dfx.json b/tests/end_to_end/candid_rpc/functional_api/key_value_store/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/key_value_store/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/key_value_store/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/key_value_store/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/key_value_store/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/key_value_store/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/key_value_store/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/key_value_store/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/key_value_store/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/key_value_store/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/key_value_store/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/key_value_store/package.json b/tests/end_to_end/candid_rpc/functional_api/key_value_store/package.json new file mode 100644 index 0000000000..05bcf56c3f --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/key_value_store/package.json @@ -0,0 +1,17 @@ +{ + "name": "key_value_store_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/key_value_store/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/key_value_store/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/key_value_store/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/key_value_store/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/key_value_store/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/key_value_store/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/key_value_store/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/key_value_store/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/key_value_store/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/key_value_store/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/key_value_store/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/key_value_store/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/key_value_store/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/key_value_store/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/key_value_store/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/key_value_store/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/key_value_store/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/key_value_store/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/key_value_store/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/key_value_store/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/.gitignore b/tests/end_to_end/candid_rpc/functional_api/ledger_canister/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/ledger_canister/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/dfx.json b/tests/end_to_end/candid_rpc/functional_api/ledger_canister/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/ledger_canister/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/ledger_canister/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/ledger_canister/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/ledger_canister/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/ledger_canister/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/ledger_canister/package.json b/tests/end_to_end/candid_rpc/functional_api/ledger_canister/package.json new file mode 100644 index 0000000000..e99e03f696 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/ledger_canister/package.json @@ -0,0 +1,18 @@ +{ + "name": "ledger_canister_end_to_end_test_functional_api", + "scripts": { + "pre_tests": "tsx test/pretest.ts", + "tests": "npm run pre_tests && jest", + "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/src/icp_ledger/ledger.private.did b/tests/end_to_end/candid_rpc/functional_api/ledger_canister/src/icp_ledger/ledger.private.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/src/icp_ledger/ledger.private.did rename to tests/end_to_end/candid_rpc/functional_api/ledger_canister/src/icp_ledger/ledger.private.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/src/icp_ledger/ledger.public.did b/tests/end_to_end/candid_rpc/functional_api/ledger_canister/src/icp_ledger/ledger.public.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/src/icp_ledger/ledger.public.did rename to tests/end_to_end/candid_rpc/functional_api/ledger_canister/src/icp_ledger/ledger.public.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/src/ledger_canister/index.ts b/tests/end_to_end/candid_rpc/functional_api/ledger_canister/src/ledger_canister/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/src/ledger_canister/index.ts rename to tests/end_to_end/candid_rpc/functional_api/ledger_canister/src/ledger_canister/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/ledger_canister/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/ledger_canister/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/ledger_canister/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/ledger_canister/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/ledger_canister/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/ledger_canister/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/ledger_canister/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/ledger_canister/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/.gitignore b/tests/end_to_end/candid_rpc/functional_api/list_of_lists/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/list_of_lists/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/dfx.json b/tests/end_to_end/candid_rpc/functional_api/list_of_lists/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/list_of_lists/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/list_of_lists/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/list_of_lists/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/list_of_lists/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/list_of_lists/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/list_of_lists/package.json b/tests/end_to_end/candid_rpc/functional_api/list_of_lists/package.json new file mode 100644 index 0000000000..3a8bffa738 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/list_of_lists/package.json @@ -0,0 +1,18 @@ +{ + "name": "list_of_lists_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "fast-equals": "^5.0.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/list_of_lists/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/list_of_lists/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/list_of_lists/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/list_of_lists/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/list_of_lists/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/list_of_lists/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/list_of_lists/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/list_of_lists/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/list_of_lists/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/list_of_lists/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/management_canister/.gitignore b/tests/end_to_end/candid_rpc/functional_api/management_canister/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/management_canister/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/management_canister/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/management_canister/dfx.json b/tests/end_to_end/candid_rpc/functional_api/management_canister/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/management_canister/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/management_canister/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/management_canister/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/management_canister/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/management_canister/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/management_canister/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/management_canister/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/management_canister/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/management_canister/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/management_canister/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/management_canister/package.json b/tests/end_to_end/candid_rpc/functional_api/management_canister/package.json new file mode 100644 index 0000000000..5d1fbfd5ad --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/management_canister/package.json @@ -0,0 +1,18 @@ +{ + "name": "management_canister_end_to_end_test_functional_api", + "scripts": { + "pre_tests": "tsx test/pretest.ts", + "tests": "npm run pre_tests && jest", + "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/management_canister/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/management_canister/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/management_canister/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/management_canister/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/management_canister/src/test.wasm b/tests/end_to_end/candid_rpc/functional_api/management_canister/src/test.wasm similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/management_canister/src/test.wasm rename to tests/end_to_end/candid_rpc/functional_api/management_canister/src/test.wasm diff --git a/tests/end_to_end/candid_rpc/functional_syntax/management_canister/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/management_canister/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/management_canister/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/management_canister/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/management_canister/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/management_canister/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/management_canister/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/management_canister/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/management_canister/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/management_canister/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/management_canister/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/management_canister/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/management_canister/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/management_canister/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/management_canister/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/management_canister/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/manual_reply/.gitignore b/tests/end_to_end/candid_rpc/functional_api/manual_reply/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/manual_reply/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/manual_reply/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/manual_reply/dfx.json b/tests/end_to_end/candid_rpc/functional_api/manual_reply/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/manual_reply/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/manual_reply/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/manual_reply/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/manual_reply/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/manual_reply/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/manual_reply/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/manual_reply/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/manual_reply/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/manual_reply/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/manual_reply/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/manual_reply/package.json b/tests/end_to_end/candid_rpc/functional_api/manual_reply/package.json new file mode 100644 index 0000000000..b8fd805fe3 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/manual_reply/package.json @@ -0,0 +1,17 @@ +{ + "name": "manual_reply_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/manual_reply/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/manual_reply/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/manual_reply/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/manual_reply/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/manual_reply/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/manual_reply/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/manual_reply/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/manual_reply/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/manual_reply/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/manual_reply/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/manual_reply/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/manual_reply/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/manual_reply/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/manual_reply/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/manual_reply/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/manual_reply/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/manual_reply/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/manual_reply/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/manual_reply/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/manual_reply/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/README.md b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/README.md rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/.gitignore b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/README.md b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/README.md rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/dfx.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/package.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/package.json new file mode 100644 index 0000000000..3b83c6e186 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/package.json @@ -0,0 +1,17 @@ +{ + "name": "calc_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/calc/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/.gitignore b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/README.md b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/README.md rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/dfx.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/package.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/package.json new file mode 100644 index 0000000000..274d287039 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/package.json @@ -0,0 +1,17 @@ +{ + "name": "counter_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/counter/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/.gitignore b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/README.md b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/README.md rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/dfx.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/package.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/package.json new file mode 100644 index 0000000000..3758fc1c5f --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/package.json @@ -0,0 +1,17 @@ +{ + "name": "echo_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/echo/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/.gitignore b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/README.md b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/README.md rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/dfx.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/package.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/package.json new file mode 100644 index 0000000000..519432cc94 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/package.json @@ -0,0 +1,17 @@ +{ + "name": "factorial_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/factorial/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/.gitignore b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/README.md b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/README.md rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/dfx.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/package.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/package.json new file mode 100644 index 0000000000..644e529d53 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/package.json @@ -0,0 +1,17 @@ +{ + "name": "hello-world_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello-world/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/.gitignore b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/NOTICE b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/NOTICE similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/NOTICE rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/NOTICE diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/README.md b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/README.md rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/dfx.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/package.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/package.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/package.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/package.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/src/hello/index.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/src/hello/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/src/hello/index.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/src/hello/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/src/hello_assets/assets/favicon.ico b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/src/hello_assets/assets/favicon.ico similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/src/hello_assets/assets/favicon.ico rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/src/hello_assets/assets/favicon.ico diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/src/hello_assets/assets/logo.png b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/src/hello_assets/assets/logo.png similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/src/hello_assets/assets/logo.png rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/src/hello_assets/assets/logo.png diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/src/hello_assets/assets/main.css b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/src/hello_assets/assets/main.css similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/src/hello_assets/assets/main.css rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/src/hello_assets/assets/main.css diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/src/hello_assets/assets/sample-asset.txt b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/src/hello_assets/assets/sample-asset.txt similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/src/hello_assets/assets/sample-asset.txt rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/src/hello_assets/assets/sample-asset.txt diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/src/hello_assets/src/index.html b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/src/hello_assets/src/index.html similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/src/hello_assets/src/index.html rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/src/hello_assets/src/index.html diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/src/hello_assets/src/index.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/src/hello_assets/src/index.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/src/hello_assets/src/index.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/src/hello_assets/src/index.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/webpack.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/webpack.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello/webpack.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/hello/webpack.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/.gitignore b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/NOTICE b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/NOTICE similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/NOTICE rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/NOTICE diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/README.md b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/README.md rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/dfx.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/package.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/package.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/package.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/package.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/src/index.did b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/src/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/src/index.did rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/src/index.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/http_counter/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/http_counter/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/.gitignore b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/NOTICE b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/NOTICE similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/NOTICE rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/NOTICE diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/README.md b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/README.md rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/dfx.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/package.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/package.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/package.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/package.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp/index.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp/index.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/logo.png b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/logo.png similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/logo.png rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/logo.png diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/main.css b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/main.css similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/main.css rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/main.css diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/sample-asset.txt b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/sample-asset.txt similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/sample-asset.txt rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/assets/sample-asset.txt diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/src/index.html b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/src/index.html similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/src/index.html rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/src/index.html diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/src/index.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/src/index.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/src/index.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/src/minimal_dapp_assets/src/index.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/webpack.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/webpack.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/minimal-counter-dapp/webpack.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/minimal-counter-dapp/webpack.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/.gitignore b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/NOTICE b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/NOTICE similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/NOTICE rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/NOTICE diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/README.md b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/README.md rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/dfx.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/package.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/package.json new file mode 100644 index 0000000000..d8a595ee69 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/package.json @@ -0,0 +1,17 @@ +{ + "name": "persistent-storage_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/persistent-storage/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/.gitignore b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/NOTICE b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/NOTICE similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/NOTICE rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/NOTICE diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/README.md b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/README.md rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/dfx.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/package.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/package.json new file mode 100644 index 0000000000..7622cbe8da --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/package.json @@ -0,0 +1,47 @@ +{ + "name": "phone-book_end_to_end_test_functional_api", + "scripts": { + "build": "webpack", + "prebuild": "npm run generate", + "start": "webpack serve --mode development --env development", + "prestart": "npm run generate", + "generate": "dfx generate phone_book", + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.0", + "@dfinity/candid": "^0.19.0", + "@dfinity/principal": "^0.19.0", + "assert": "^2.0.0", + "buffer": "^6.0.3", + "copy-webpack-plugin": "^11.0.0", + "css-loader": "^6.0.0", + "events": "^3.3.0", + "html-webpack-plugin": "^5.5.0", + "jest": "^29.7.0", + "process": "^0.11.10", + "stream-browserify": "^3.0.0", + "style-loader": "^3.3.0", + "terser-webpack-plugin": "^5.3.0", + "ts-jest": "^29.1.4", + "ts-loader": "^9.4.0", + "tsx": "^4.15.7", + "typescript": "^5.2.2", + "util": "^0.12.0", + "webpack": "^5.88.0", + "webpack-cli": "^5.1.0", + "webpack-dev-server": "^4.15.0" + }, + "browserslist": [ + "last 2 chrome version", + "last 2 firefox version", + "last 2 safari version", + "last 2 edge version" + ], + "dependencies": { + "azle": "0.23.0", + "react": "^17.0.2", + "react-dom": "^17.0.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/src/declarations/phone_book/index.d.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/src/declarations/phone_book/index.d.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/src/declarations/phone_book/index.d.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/src/declarations/phone_book/index.d.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/src/declarations/phone_book/index.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/src/declarations/phone_book/index.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/src/declarations/phone_book/index.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/src/declarations/phone_book/index.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did.d.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did.d.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did.d.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did.d.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/src/declarations/phone_book/phone_book.did.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/src/phone_book/index.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/src/phone_book/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/src/phone_book/index.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/src/phone_book/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/src/www/assets/sample-asset.txt b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/src/www/assets/sample-asset.txt similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/src/www/assets/sample-asset.txt rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/src/www/assets/sample-asset.txt diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/src/www/src/index.html b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/src/www/src/index.html similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/src/www/src/index.html rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/src/www/src/index.html diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/src/www/src/index.jsx b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/src/www/src/index.jsx similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/src/www/src/index.jsx rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/src/www/src/index.jsx diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/tsconfig.webpack.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/tsconfig.webpack.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/tsconfig.webpack.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/tsconfig.webpack.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/webpack.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/webpack.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/webpack.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/phone-book/webpack.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/.gitignore b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/README.md b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/README.md rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/dfx.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/package.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/package.json new file mode 100644 index 0000000000..eb07d62e01 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/package.json @@ -0,0 +1,17 @@ +{ + "name": "quicksort_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/src/comparison.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/src/comparison.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/src/comparison.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/src/comparison.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/src/quicksort.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/src/quicksort.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/src/quicksort.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/src/quicksort.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/quicksort/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/.gitignore b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/README.md b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/README.md rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/dfx.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/package.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/package.json new file mode 100644 index 0000000000..d1d7148e48 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/package.json @@ -0,0 +1,17 @@ +{ + "name": "simple-to-do_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/simple-to-do/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/.gitignore b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/NOTICE b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/NOTICE similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/NOTICE rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/NOTICE diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/README.md b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/README.md rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/dfx.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/package.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/package.json new file mode 100644 index 0000000000..cf83e042bc --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/package.json @@ -0,0 +1,47 @@ +{ + "name": "superheroes_end_to_end_test_functional_api", + "scripts": { + "build": "webpack", + "prebuild": "npm run generate", + "start": "webpack serve --mode development --env development", + "prestart": "npm run generate", + "generate": "dfx generate superheroes", + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.0", + "@dfinity/candid": "^0.19.0", + "@dfinity/principal": "^0.19.0", + "assert": "^2.0.0", + "buffer": "^6.0.3", + "copy-webpack-plugin": "^11.0.0", + "css-loader": "^6.0.0", + "events": "^3.3.0", + "html-webpack-plugin": "^5.5.0", + "jest": "^29.7.0", + "process": "^0.11.10", + "stream-browserify": "^3.0.0", + "style-loader": "^3.3.0", + "terser-webpack-plugin": "^5.3.0", + "ts-jest": "^29.1.4", + "ts-loader": "^9.4.0", + "tsx": "^4.15.7", + "typescript": "^5.2.2", + "util": "^0.12.0", + "webpack": "^5.88.0", + "webpack-cli": "^5.1.0", + "webpack-dev-server": "^4.15.0" + }, + "browserslist": [ + "last 2 chrome version", + "last 2 firefox version", + "last 2 safari version", + "last 2 edge version" + ], + "dependencies": { + "azle": "0.23.0", + "react": "^17.0.2", + "react-dom": "^17.0.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/declarations/index.d.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/declarations/index.d.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/declarations/index.d.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/declarations/index.d.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/declarations/index.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/declarations/index.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/declarations/index.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/declarations/index.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/declarations/superheroes.did b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/declarations/superheroes.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/declarations/superheroes.did rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/declarations/superheroes.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/declarations/superheroes.did.d.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/declarations/superheroes.did.d.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/declarations/superheroes.did.d.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/declarations/superheroes.did.d.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/declarations/superheroes.did.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/declarations/superheroes.did.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/declarations/superheroes.did.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/declarations/superheroes.did.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/superheroes/index.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/superheroes/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/superheroes/index.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/superheroes/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/www/components/create.jsx b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/www/components/create.jsx similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/www/components/create.jsx rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/www/components/create.jsx diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/www/components/delete.jsx b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/www/components/delete.jsx similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/www/components/delete.jsx rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/www/components/delete.jsx diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/www/components/read.jsx b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/www/components/read.jsx similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/www/components/read.jsx rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/www/components/read.jsx diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/www/components/update.jsx b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/www/components/update.jsx similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/www/components/update.jsx rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/www/components/update.jsx diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/www/index.html b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/www/index.html similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/www/index.html rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/www/index.html diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/www/index.jsx b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/www/index.jsx similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/src/www/index.jsx rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/src/www/index.jsx diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/tsconfig.webpack.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/tsconfig.webpack.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/tsconfig.webpack.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/tsconfig.webpack.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/webpack.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/webpack.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/webpack.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/superheroes/webpack.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/.gitignore b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/README.md b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/README.md rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/dfx.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/package.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/package.json new file mode 100644 index 0000000000..65dfa03448 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/package.json @@ -0,0 +1,19 @@ +{ + "name": "threshold_ecdsa_end_to_end_test_functional_api", + "scripts": { + "pre_tests": "tsx test/pretest.ts", + "tests": "npm run pre_tests && jest", + "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" + }, + "dependencies": { + "azle": "0.23.0", + "encode-utf8": "2.0.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/threshold_ecdsa/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/.gitignore b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/README.md b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/README.md similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/README.md rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/README.md diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/dfx.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/package.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/package.json new file mode 100644 index 0000000000..c1346bc0e7 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/package.json @@ -0,0 +1,19 @@ +{ + "name": "whoami_end_to_end_test_functional_api", + "scripts": { + "pre_tests": "tsx test/pretest.ts", + "tests": "npm run pre_tests && jest", + "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "@dfinity/identity": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/src/index.did b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/src/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/src/index.did rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/src/index.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/motoko_examples/whoami/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/notify_raw/.gitignore b/tests/end_to_end/candid_rpc/functional_api/notify_raw/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/notify_raw/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/notify_raw/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/notify_raw/dfx.json b/tests/end_to_end/candid_rpc/functional_api/notify_raw/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/notify_raw/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/notify_raw/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/notify_raw/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/notify_raw/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/notify_raw/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/notify_raw/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/notify_raw/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/notify_raw/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/notify_raw/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/notify_raw/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/notify_raw/package.json b/tests/end_to_end/candid_rpc/functional_api/notify_raw/package.json new file mode 100644 index 0000000000..26814f288e --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/notify_raw/package.json @@ -0,0 +1,17 @@ +{ + "name": "notify_raw_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/notify_raw/src/canister1/index.ts b/tests/end_to_end/candid_rpc/functional_api/notify_raw/src/canister1/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/notify_raw/src/canister1/index.ts rename to tests/end_to_end/candid_rpc/functional_api/notify_raw/src/canister1/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/notify_raw/src/canister2/index.ts b/tests/end_to_end/candid_rpc/functional_api/notify_raw/src/canister2/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/notify_raw/src/canister2/index.ts rename to tests/end_to_end/candid_rpc/functional_api/notify_raw/src/canister2/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/notify_raw/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/notify_raw/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/notify_raw/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/notify_raw/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/notify_raw/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/notify_raw/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/notify_raw/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/notify_raw/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/notify_raw/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/notify_raw/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/notify_raw/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/notify_raw/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/notify_raw/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/notify_raw/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/notify_raw/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/notify_raw/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/null_example/.gitignore b/tests/end_to_end/candid_rpc/functional_api/null_example/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/null_example/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/null_example/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/null_example/dfx.json b/tests/end_to_end/candid_rpc/functional_api/null_example/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/null_example/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/null_example/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/null_example/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/null_example/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/null_example/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/null_example/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/null_example/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/null_example/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/null_example/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/null_example/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/null_example/package.json b/tests/end_to_end/candid_rpc/functional_api/null_example/package.json new file mode 100644 index 0000000000..5be8f487bf --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/null_example/package.json @@ -0,0 +1,17 @@ +{ + "name": "null_example_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/null_example/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/null_example/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/null_example/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/null_example/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/null_example/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/null_example/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/null_example/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/null_example/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/null_example/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/null_example/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/null_example/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/null_example/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/null_example/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/null_example/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/null_example/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/null_example/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/null_example/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/null_example/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/null_example/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/null_example/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/optional_types/.gitignore b/tests/end_to_end/candid_rpc/functional_api/optional_types/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/optional_types/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/optional_types/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/optional_types/dfx.json b/tests/end_to_end/candid_rpc/functional_api/optional_types/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/optional_types/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/optional_types/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/optional_types/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/optional_types/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/optional_types/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/optional_types/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/optional_types/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/optional_types/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/optional_types/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/optional_types/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/optional_types/package.json b/tests/end_to_end/candid_rpc/functional_api/optional_types/package.json new file mode 100644 index 0000000000..9ccefb5d05 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/optional_types/package.json @@ -0,0 +1,19 @@ +{ + "name": "optional_types_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "@types/node-fetch": "2.6.1", + "jest": "^29.7.0", + "node-fetch": "2.6.7", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/optional_types/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/optional_types/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/optional_types/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/optional_types/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/optional_types/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/optional_types/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/optional_types/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/optional_types/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/optional_types/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/optional_types/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/optional_types/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/optional_types/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/optional_types/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/optional_types/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/optional_types/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/optional_types/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/optional_types/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/optional_types/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/optional_types/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/optional_types/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/.gitignore b/tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/dfx.json b/tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/package.json b/tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/package.json new file mode 100644 index 0000000000..4d9d48bf00 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/package.json @@ -0,0 +1,20 @@ +{ + "name": "outgoing_http_requests_end_to_end_test_functional_api", + "scripts": { + "pre_tests": "tsx test/pretest.ts", + "tests": "npm run pre_tests && jest", + "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "decode-utf8": "1.0.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2", + "utf8-encoder": "1.0.1" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/outgoing_http_requests/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/.gitignore b/tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/dfx.json b/tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/package.json b/tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/package.json new file mode 100644 index 0000000000..a263a29dce --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/package.json @@ -0,0 +1,17 @@ +{ + "name": "pre_and_post_upgrade_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/pre_and_post_upgrade/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/primitive_types/.gitignore b/tests/end_to_end/candid_rpc/functional_api/primitive_types/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/primitive_types/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/primitive_types/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/primitive_types/dfx.json b/tests/end_to_end/candid_rpc/functional_api/primitive_types/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/primitive_types/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/primitive_types/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/primitive_types/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/primitive_types/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/primitive_types/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/primitive_types/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/primitive_types/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/primitive_types/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/primitive_types/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/primitive_types/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/primitive_types/package.json b/tests/end_to_end/candid_rpc/functional_api/primitive_types/package.json new file mode 100644 index 0000000000..08cc43b884 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/primitive_types/package.json @@ -0,0 +1,17 @@ +{ + "name": "primitive_types_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/primitive_types/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/primitive_types/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/primitive_types/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/primitive_types/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/primitive_types/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/primitive_types/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/primitive_types/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/primitive_types/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/primitive_types/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/primitive_types/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/primitive_types/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/primitive_types/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/primitive_types/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/primitive_types/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/primitive_types/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/primitive_types/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/primitive_types/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/primitive_types/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/primitive_types/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/primitive_types/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/principal/.gitignore b/tests/end_to_end/candid_rpc/functional_api/principal/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/principal/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/principal/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/principal/dfx.json b/tests/end_to_end/candid_rpc/functional_api/principal/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/principal/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/principal/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/principal/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/principal/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/principal/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/principal/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/principal/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/principal/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/principal/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/principal/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/principal/package.json b/tests/end_to_end/candid_rpc/functional_api/principal/package.json new file mode 100644 index 0000000000..a98bbf4d05 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/principal/package.json @@ -0,0 +1,17 @@ +{ + "name": "principal_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/principal/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/principal/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/principal/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/principal/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/principal/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/principal/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/principal/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/principal/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/principal/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/principal/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/principal/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/principal/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/principal/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/principal/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/principal/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/principal/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/principal/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/principal/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/principal/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/principal/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/query/.gitignore b/tests/end_to_end/candid_rpc/functional_api/query/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/query/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/query/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/query/dfx.json b/tests/end_to_end/candid_rpc/functional_api/query/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/query/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/query/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/query/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/query/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/query/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/query/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_api/query/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/query/package-lock.json new file mode 100644 index 0000000000..7fdf951c4f --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/query/package-lock.json @@ -0,0 +1,11018 @@ +{ + "name": "query_end_to_end_test_functional_api", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "query_end_to_end_test_functional_api", + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } + }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@ampproject/remapping/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@dfinity/agent": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-0.19.2.tgz", + "integrity": "sha512-KLRWEjeU9SyyaS7IBVJ9ZUcufxufr55e/kRIyClK157+0pkTG9a8xKjUIMx3QzKvLsqqzXL238nWwdoP6jAD8g==", + "dev": true, + "dependencies": { + "@noble/hashes": "^1.3.1", + "base64-arraybuffer": "^0.2.0", + "borc": "^2.1.1", + "simple-cbor": "^0.4.1" + }, + "peerDependencies": { + "@dfinity/candid": "^0.19.2", + "@dfinity/principal": "^0.19.2" + } + }, + "node_modules/@dfinity/candid": { + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-0.19.3.tgz", + "integrity": "sha512-yXfbLSWTeRd4G0bLLxYoDqpXH3Jim0P+1PPZOoktXNC1X1hB+ea3yrZebX75t4GVoQK7123F7mxWHiPjuV2tQQ==", + "dev": true, + "peer": true, + "peerDependencies": { + "@dfinity/principal": "^0.19.3" + } + }, + "node_modules/@dfinity/identity-secp256k1": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/identity-secp256k1/-/identity-secp256k1-1.2.0.tgz", + "integrity": "sha512-QAsVycTLY0HH5OS/Ub8G0A70WZb9nkJR9fzZywUIAKpFRY8ZXHiXrT/ifM6AqY9L/83l/ywrwuSKbHVngshpkw==", + "dependencies": { + "@dfinity/agent": "^1.2.0", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.1", + "asn1js": "^3.0.5", + "bip39": "^3.1.0", + "bs58check": "^3.0.1", + "hdkey": "^2.1.0" + } + }, + "node_modules/@dfinity/identity-secp256k1/node_modules/@dfinity/agent": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.2.0.tgz", + "integrity": "sha512-i9mH0PO73nrhLc9lZv14SWr4muyMcs6uqqlG2SHQtRUFRXbqj4DOhKsU0Sm+kC8eWYCSu65WPKPYwwAR7YM6ug==", + "dependencies": { + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.1", + "base64-arraybuffer": "^0.2.0", + "borc": "^2.1.1", + "buffer": "^6.0.3", + "simple-cbor": "^0.4.1" + }, + "peerDependencies": { + "@dfinity/candid": "^1.2.0", + "@dfinity/principal": "^1.2.0" + } + }, + "node_modules/@dfinity/identity-secp256k1/node_modules/@dfinity/candid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.2.0.tgz", + "integrity": "sha512-L6gV3ODIFC9qNenq3zuRvHrTwH36IM5utVH2wMS5f5eIUeG9fNe+avYLRPBUJwdeX7cM7xhvDgE/m/aN2cZvKQ==", + "peer": true, + "peerDependencies": { + "@dfinity/principal": "^1.2.0" + } + }, + "node_modules/@dfinity/identity-secp256k1/node_modules/@dfinity/principal": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.2.0.tgz", + "integrity": "sha512-7eurqPDL5ptlTTLMJPeiO75FAumXHsWEWDVQaN6XpA3aZtmofNK4Sb5g5Ne9syeuoCJcW3mFBbbFtFNxggxu+g==", + "peer": true, + "dependencies": { + "@noble/hashes": "^1.3.1" + } + }, + "node_modules/@dfinity/identity-secp256k1/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@dfinity/principal": { + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-0.19.3.tgz", + "integrity": "sha512-+nixVvdGt7ECxRvLXDXsvU9q9sSPssBtDQ4bXa149SK6gcYcmZ6lfWIi3DJNqj3tGROxILVBsguel9tECappsA==", + "dev": true, + "peer": true, + "dependencies": { + "@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" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", + "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", + "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", + "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", + "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", + "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", + "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", + "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", + "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", + "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", + "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", + "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", + "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", + "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", + "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", + "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", + "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", + "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", + "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", + "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", + "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", + "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", + "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", + "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "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" + } + }, + "node_modules/@noble/curves": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@swc/core": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.91.tgz", + "integrity": "sha512-r950d0fdlZ8qbSDyvApn3HyCojiZE8xpgJzQvypeMi32dalYwugdJKWyLB55JIGMRGJ8+lmVvY4MPGkSR3kXgA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "peer": true, + "dependencies": { + "@swc/counter": "^0.1.1", + "@swc/types": "^0.1.5" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.3.91", + "@swc/core-darwin-x64": "1.3.91", + "@swc/core-linux-arm-gnueabihf": "1.3.91", + "@swc/core-linux-arm64-gnu": "1.3.91", + "@swc/core-linux-arm64-musl": "1.3.91", + "@swc/core-linux-x64-gnu": "1.3.91", + "@swc/core-linux-x64-musl": "1.3.91", + "@swc/core-win32-arm64-msvc": "1.3.91", + "@swc/core-win32-ia32-msvc": "1.3.91", + "@swc/core-win32-x64-msvc": "1.3.91" + }, + "peerDependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.91.tgz", + "integrity": "sha512-7kHGiQ1he5khcEeJuHDmLZPM3rRL/ith5OTmV6bOPsoHi46kLeixORW+ts1opC3tC9vu6xbk16xgX0QAJchc1w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.91.tgz", + "integrity": "sha512-8SpU18FbFpZDVzsHsAwdI1thF/picQGxq9UFxa8W+T9SDnbsqwFJv/6RqKJeJoDV6qFdl2OLjuO0OL7xrp0qnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.91.tgz", + "integrity": "sha512-fOq4Cy8UbwX1yf0WB0d8hWZaIKCnPtPGguRqdXGLfwvhjZ9SIErT6PnmGTGRbQCNCIkOZWHKyTU0r8t2dN3haQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.91.tgz", + "integrity": "sha512-fki4ioRP/Esy4vdp8T34RCV+V9dqkRmOt763pf74pdiyFV2dPLXa5lnw/XvR1RTfPGknrYgjEQLCfZlReTryRw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.91.tgz", + "integrity": "sha512-XrG+DUUqNtfVLcJ20imby7fpBwQNG5VsEQBzQndSonPyUOa2YkTbBb60YDondfQGDABopuHH8gHN8o2H2/VCnQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.91.tgz", + "integrity": "sha512-d11bYhX+YPBr/Frcjc6eVn3C0LuS/9U1Li9EmQ+6s9EpYtYRl2ygSlC8eueLbaiazBnCVYFnc8bU4o0kc5B9sw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.91.tgz", + "integrity": "sha512-2SRp5Dke2P4jCQePkDx9trkkTstnRpZJVw5r3jvYdk0zeO6iC4+ZPvvoWXJLigqQv/fZnIiSUfJ6ssOoaEqTzQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.91.tgz", + "integrity": "sha512-l9qKXikOxj42UIjbeZpz9xtBmr736jOMqInNP8mVF2/U+ws5sI8zJjcOFFtfis4ru7vWCXhB1wtltdlJYO2vGA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.91.tgz", + "integrity": "sha512-+s+52O0QVPmzOgjEe/rcb0AK6q/J7EHKwAyJCu/FaYO9df5ovE0HJjSKP6HAF0dGPO5hkENrXuNGujofUH9vtQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.91.tgz", + "integrity": "sha512-7u9HDQhjUC3Gv43EFW84dZtduWCSa4MgltK+Sp9zEGti6WXqDPu/ESjvDsQEVYTBEMEvZs/xVAXPgLVHorV5nQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.2.tgz", + "integrity": "sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@swc/types": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", + "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/uuid": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.4.tgz", + "integrity": "sha512-zAuJWQflfx6dYJM62vna+Sn5aeSWhh3OB+wfUEACNcqUSc0AGc5JKl+ycL1vrH7frGTXhJchYjE1Hak8L819dA==" + }, + "node_modules/@types/validator": { + "version": "13.11.10", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.10.tgz", + "integrity": "sha512-e2PNXoXLr6Z+dbfx5zSh9TRlXJrELycxiaXznp4S5+D2M3b9bqJEitNHA5923jhnB2zzFiZHa2f0SI1HoIahpg==" + }, + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "dependencies": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/azle": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/azle/-/azle-0.23.0.tgz", + "integrity": "sha512-BRp0YAe/mtLCWVZDDl5IUbCLFb2fWi2NnKLHTUC0+EmZu59kVAR7AT7DY/oMvYVYVqxGlw9eqOIzhqB1msChWQ==", + "hasInstallScript": true, + "dependencies": { + "@dfinity/agent": "^1.1.0", + "@dfinity/identity-secp256k1": "^1.1.0", + "@types/uuid": "^9.0.4", + "binaryen": "^116.0.0", + "buffer": "^6.0.3", + "chokidar": "^3.6.0", + "class-transformer": "^0.5.1", + "class-validator": "^0.14.1", + "crypto-browserify": "^3.12.0", + "deep-is": "^0.1.4", + "esbuild": "^0.23.0", + "esbuild-plugin-tsc": "^0.4.0", + "ethers": "6.11.1", + "fs-extra": "^11.2.0", + "glob": "^10.3.15", + "hash-of-directory": "^1.0.1", + "http-message-parser": "^0.0.34", + "intl": "^1.2.5", + "js-sha256": "0.9.0", + "net": "^1.0.2", + "pako": "^2.1.0", + "reflect-metadata": "^0.2.2", + "repl": "^0.1.3", + "text-encoding": "0.7.0", + "tsx": "^4.15.7", + "typescript": "^5.2.2", + "uuid": "^9.0.1" + }, + "bin": { + "azle": "src/compiler/index.ts" + } + }, + "node_modules/azle/node_modules/@dfinity/agent": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.2.0.tgz", + "integrity": "sha512-i9mH0PO73nrhLc9lZv14SWr4muyMcs6uqqlG2SHQtRUFRXbqj4DOhKsU0Sm+kC8eWYCSu65WPKPYwwAR7YM6ug==", + "dependencies": { + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.1", + "base64-arraybuffer": "^0.2.0", + "borc": "^2.1.1", + "buffer": "^6.0.3", + "simple-cbor": "^0.4.1" + }, + "peerDependencies": { + "@dfinity/candid": "^1.2.0", + "@dfinity/principal": "^1.2.0" + } + }, + "node_modules/azle/node_modules/@dfinity/candid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.2.0.tgz", + "integrity": "sha512-L6gV3ODIFC9qNenq3zuRvHrTwH36IM5utVH2wMS5f5eIUeG9fNe+avYLRPBUJwdeX7cM7xhvDgE/m/aN2cZvKQ==", + "peer": true, + "peerDependencies": { + "@dfinity/principal": "^1.2.0" + } + }, + "node_modules/azle/node_modules/@dfinity/principal": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.2.0.tgz", + "integrity": "sha512-7eurqPDL5ptlTTLMJPeiO75FAumXHsWEWDVQaN6XpA3aZtmofNK4Sb5g5Ne9syeuoCJcW3mFBbbFtFNxggxu+g==", + "peer": true, + "dependencies": { + "@noble/hashes": "^1.3.1" + } + }, + "node_modules/azle/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/azle/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/azle/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/azle/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/base64-arraybuffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", + "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bignumber.js": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", + "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/binaryen": { + "version": "116.0.0", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0.tgz", + "integrity": "sha512-Hp0dXC6Cb/rTwWEoUS2BRghObE7g/S9umKtxuTDt3f61G6fNTE/YVew/ezyy3IdHcLx3f17qfh6LwETgCfvWkQ==", + "bin": { + "wasm-opt": "bin/wasm-opt", + "wasm2js": "bin/wasm2js" + } + }, + "node_modules/bip39": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", + "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", + "dependencies": { + "@noble/hashes": "^1.2.0" + } + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/borc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", + "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", + "dependencies": { + "bignumber.js": "^9.0.0", + "buffer": "^5.5.0", + "commander": "^2.15.0", + "ieee754": "^1.1.13", + "iso-url": "~0.4.7", + "json-text-sequence": "~0.1.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", + "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", + "dependencies": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.4", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.6", + "readable-stream": "^3.6.2", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/browserslist": { + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/bs58check": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz", + "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==", + "dependencies": { + "@noble/hashes": "^1.2.0", + "bs58": "^5.0.0" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001633", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001633.tgz", + "integrity": "sha512-6sT0yf/z5jqf8tISAgpJDrmwOpLsrpnyCdD/lOZKvKkkJK4Dn0X5i7KF7THEZhOq+30bmhwBlNEaqPUiHiKtZg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true + }, + "node_modules/class-transformer": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", + "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==" + }, + "node_modules/class-validator": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.1.tgz", + "integrity": "sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==", + "dependencies": { + "@types/validator": "^13.11.8", + "libphonenumber-js": "^1.10.53", + "validator": "^13.9.0" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delimit-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", + "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=" + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.802", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.802.tgz", + "integrity": "sha512-TnTMUATbgNdPXVSHsxvNVSG0uEd6cSZsANjm8c9HbvflZVVn1yTRcmVXYT1Ma95/ssB/Dcd30AHweH2TE+dNpA==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/esbuild": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", + "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.0", + "@esbuild/android-arm": "0.23.0", + "@esbuild/android-arm64": "0.23.0", + "@esbuild/android-x64": "0.23.0", + "@esbuild/darwin-arm64": "0.23.0", + "@esbuild/darwin-x64": "0.23.0", + "@esbuild/freebsd-arm64": "0.23.0", + "@esbuild/freebsd-x64": "0.23.0", + "@esbuild/linux-arm": "0.23.0", + "@esbuild/linux-arm64": "0.23.0", + "@esbuild/linux-ia32": "0.23.0", + "@esbuild/linux-loong64": "0.23.0", + "@esbuild/linux-mips64el": "0.23.0", + "@esbuild/linux-ppc64": "0.23.0", + "@esbuild/linux-riscv64": "0.23.0", + "@esbuild/linux-s390x": "0.23.0", + "@esbuild/linux-x64": "0.23.0", + "@esbuild/netbsd-x64": "0.23.0", + "@esbuild/openbsd-arm64": "0.23.0", + "@esbuild/openbsd-x64": "0.23.0", + "@esbuild/sunos-x64": "0.23.0", + "@esbuild/win32-arm64": "0.23.0", + "@esbuild/win32-ia32": "0.23.0", + "@esbuild/win32-x64": "0.23.0" + } + }, + "node_modules/esbuild-plugin-tsc": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/esbuild-plugin-tsc/-/esbuild-plugin-tsc-0.4.0.tgz", + "integrity": "sha512-q9gWIovt1nkwchMLc2zhyksaiHOv3kDK4b0AUol8lkMCRhJ1zavgfb2fad6BKp7FT9rh/OHmEBXVjczLoi/0yw==", + "dependencies": { + "strip-comments": "^2.0.1" + }, + "peerDependencies": { + "typescript": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/esbuild/node_modules/@esbuild/aix-ppc64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", + "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ethers": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.11.1.tgz", + "integrity": "sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ethers/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethers/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethers/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-prop": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/get-prop/-/get-prop-0.0.10.tgz", + "integrity": "sha512-XRSGBgcIisSMLJ/dwe1y/eMm9yzLicEJKmEXA3ArBkDkCW2nyRroLOoKIz+SdxuG5SI7ym2QHaTU5ifCl7MTDg==" + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "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==", + "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", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-of-directory": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hash-of-directory/-/hash-of-directory-1.0.1.tgz", + "integrity": "sha512-PX6VaxD6JK8R4113ChdTtEnWIo2XA9mz4yrtGBuUGUKtWCj6iWWYj/qwjdfs3Zgm+FdiNj0Vmt4VwPlwxx8WHw==" + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hdkey": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz", + "integrity": "sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA==", + "dependencies": { + "bs58check": "^2.1.2", + "ripemd160": "^2.0.2", + "safe-buffer": "^5.1.1", + "secp256k1": "^4.0.0" + } + }, + "node_modules/hdkey/node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/hdkey/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/hdkey/node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/http-message-parser": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/http-message-parser/-/http-message-parser-0.0.34.tgz", + "integrity": "sha512-KABKXT347AYvQoaMZg9/K+/GqW6gfB4pKCiTyMUYnosfkdkaBkrXE/cWGSLk5jvD5tiDeLFlYSHLhhPhQKbRrA==", + "dependencies": { + "buffer": "^4.9.1", + "concat-stream": "^1.5.1", + "get-prop": "0.0.10", + "minimist": "^1.2.0", + "stream-buffers": "^3.0.0" + }, + "bin": { + "http-message-parser": "bin/http-message-parser.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-message-parser/node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/intl": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", + "integrity": "sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==" + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/iso-url": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", + "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==", + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-text-sequence": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", + "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", + "dependencies": { + "delimit-stream": "0.1.0" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/libphonenumber-js": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.11.3.tgz", + "integrity": "sha512-RU0CTsLCu2v6VEzdP+W6UU2n5+jEpMDRkGxUeBgsAJgre3vKgm17eApISH9OQY4G0jZYJVIc8qXmz6CJFueAFg==" + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/net": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/net/-/net-1.0.2.tgz", + "integrity": "sha512-kbhcj2SVVR4caaVnGLJKmlk2+f+oLkjqdKeQlmUtz6nGzOpbcobwVIeSURNgraV/v3tlmGIX82OcPCl0K6RbHQ==" + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node_modules/node-gyp-build": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", + "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" + }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, + "node_modules/pvtsutils": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", + "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", + "dependencies": { + "tslib": "^2.6.1" + } + }, + "node_modules/pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" + }, + "node_modules/repl": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/repl/-/repl-0.1.3.tgz", + "integrity": "sha512-C3ZEHaX28+EvM9lPiXl9ruN2g5M5sUvyCIDvZ0M4VCusfA1Cn0+z3tJcQl/lvxPsBm82q4hKHKebPlE3SEhFKg==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "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==", + "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", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/simple-cbor": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/simple-cbor/-/simple-cbor-0.4.1.tgz", + "integrity": "sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stream-buffers": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz", + "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==", + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-encoding": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz", + "integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==", + "deprecated": "no longer maintained" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-jest": { + "version": "29.1.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.4.tgz", + "integrity": "sha512-YiHwDhSvCiItoAgsKtoLFCuakDzDsJ1DLDnSouTaTmdOcOwIkSzbLXduaQ6M5DRVhuZC/NYaaZ/mtHbWMv/S6Q==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "^7.5.3", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-node": { + "version": "10.9.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.0.tgz", + "integrity": "sha512-bunW18GUyaCSYRev4DPf4SQpom3pWH29wKl0sDk5zE7ze19RImEVhCW7K4v3hHKkUyfWotU08ToE2RS+Y49aug==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "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" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "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==", + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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" + ], + "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==", + "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", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "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/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "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, + "optional": true, + "peer": true + }, + "node_modules/v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/validator": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + }, + "dependencies": { + "@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" + }, + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } + } + }, + "@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + } + }, + "@babel/compat-data": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "dev": true + }, + "@babel/core": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + } + }, + "@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + } + }, + "@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "requires": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "dev": true + }, + "@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "dev": true, + "requires": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@dfinity/agent": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-0.19.2.tgz", + "integrity": "sha512-KLRWEjeU9SyyaS7IBVJ9ZUcufxufr55e/kRIyClK157+0pkTG9a8xKjUIMx3QzKvLsqqzXL238nWwdoP6jAD8g==", + "dev": true, + "requires": { + "@noble/hashes": "^1.3.1", + "base64-arraybuffer": "^0.2.0", + "borc": "^2.1.1", + "simple-cbor": "^0.4.1" + } + }, + "@dfinity/candid": { + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-0.19.3.tgz", + "integrity": "sha512-yXfbLSWTeRd4G0bLLxYoDqpXH3Jim0P+1PPZOoktXNC1X1hB+ea3yrZebX75t4GVoQK7123F7mxWHiPjuV2tQQ==", + "dev": true, + "peer": true, + "requires": {} + }, + "@dfinity/identity-secp256k1": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/identity-secp256k1/-/identity-secp256k1-1.2.0.tgz", + "integrity": "sha512-QAsVycTLY0HH5OS/Ub8G0A70WZb9nkJR9fzZywUIAKpFRY8ZXHiXrT/ifM6AqY9L/83l/ywrwuSKbHVngshpkw==", + "requires": { + "@dfinity/agent": "^1.2.0", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.1", + "asn1js": "^3.0.5", + "bip39": "^3.1.0", + "bs58check": "^3.0.1", + "hdkey": "^2.1.0" + }, + "dependencies": { + "@dfinity/agent": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.2.0.tgz", + "integrity": "sha512-i9mH0PO73nrhLc9lZv14SWr4muyMcs6uqqlG2SHQtRUFRXbqj4DOhKsU0Sm+kC8eWYCSu65WPKPYwwAR7YM6ug==", + "requires": { + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.1", + "base64-arraybuffer": "^0.2.0", + "borc": "^2.1.1", + "buffer": "^6.0.3", + "simple-cbor": "^0.4.1" + } + }, + "@dfinity/candid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.2.0.tgz", + "integrity": "sha512-L6gV3ODIFC9qNenq3zuRvHrTwH36IM5utVH2wMS5f5eIUeG9fNe+avYLRPBUJwdeX7cM7xhvDgE/m/aN2cZvKQ==", + "peer": true, + "requires": {} + }, + "@dfinity/principal": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.2.0.tgz", + "integrity": "sha512-7eurqPDL5ptlTTLMJPeiO75FAumXHsWEWDVQaN6XpA3aZtmofNK4Sb5g5Ne9syeuoCJcW3mFBbbFtFNxggxu+g==", + "peer": true, + "requires": { + "@noble/hashes": "^1.3.1" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + } + } + }, + "@dfinity/principal": { + "version": "0.19.3", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-0.19.3.tgz", + "integrity": "sha512-+nixVvdGt7ECxRvLXDXsvU9q9sSPssBtDQ4bXa149SK6gcYcmZ6lfWIi3DJNqj3tGROxILVBsguel9tECappsA==", + "dev": true, + "peer": true, + "requires": { + "@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==", + "optional": true + }, + "@esbuild/android-arm": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", + "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", + "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", + "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", + "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", + "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", + "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", + "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", + "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", + "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", + "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", + "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", + "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", + "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", + "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", + "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", + "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", + "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", + "optional": true + }, + "@esbuild/openbsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", + "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", + "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", + "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", + "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", + "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", + "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", + "optional": true + }, + "@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "requires": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + } + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "requires": { + "ansi-regex": "^6.0.1" + } + }, + "wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + } + } + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "requires": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + } + }, + "@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "requires": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + } + }, + "@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3" + } + }, + "@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + } + }, + "@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + } + }, + "@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } + } + }, + "@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.27.8" + } + }, + "@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } + } + }, + "@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "requires": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + } + }, + "@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } + } + }, + "@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "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" + } + }, + "@noble/curves": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.0.tgz", + "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", + "requires": { + "@noble/hashes": "1.4.0" + }, + "dependencies": { + "@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" + } + } + }, + "@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==" + }, + "@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true + }, + "@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^3.0.0" + } + }, + "@swc/core": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.91.tgz", + "integrity": "sha512-r950d0fdlZ8qbSDyvApn3HyCojiZE8xpgJzQvypeMi32dalYwugdJKWyLB55JIGMRGJ8+lmVvY4MPGkSR3kXgA==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "@swc/core-darwin-arm64": "1.3.91", + "@swc/core-darwin-x64": "1.3.91", + "@swc/core-linux-arm-gnueabihf": "1.3.91", + "@swc/core-linux-arm64-gnu": "1.3.91", + "@swc/core-linux-arm64-musl": "1.3.91", + "@swc/core-linux-x64-gnu": "1.3.91", + "@swc/core-linux-x64-musl": "1.3.91", + "@swc/core-win32-arm64-msvc": "1.3.91", + "@swc/core-win32-ia32-msvc": "1.3.91", + "@swc/core-win32-x64-msvc": "1.3.91", + "@swc/counter": "^0.1.1", + "@swc/types": "^0.1.5" + } + }, + "@swc/core-darwin-arm64": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.91.tgz", + "integrity": "sha512-7kHGiQ1he5khcEeJuHDmLZPM3rRL/ith5OTmV6bOPsoHi46kLeixORW+ts1opC3tC9vu6xbk16xgX0QAJchc1w==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-darwin-x64": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.91.tgz", + "integrity": "sha512-8SpU18FbFpZDVzsHsAwdI1thF/picQGxq9UFxa8W+T9SDnbsqwFJv/6RqKJeJoDV6qFdl2OLjuO0OL7xrp0qnQ==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-linux-arm-gnueabihf": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.91.tgz", + "integrity": "sha512-fOq4Cy8UbwX1yf0WB0d8hWZaIKCnPtPGguRqdXGLfwvhjZ9SIErT6PnmGTGRbQCNCIkOZWHKyTU0r8t2dN3haQ==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-linux-arm64-gnu": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.91.tgz", + "integrity": "sha512-fki4ioRP/Esy4vdp8T34RCV+V9dqkRmOt763pf74pdiyFV2dPLXa5lnw/XvR1RTfPGknrYgjEQLCfZlReTryRw==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-linux-arm64-musl": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.91.tgz", + "integrity": "sha512-XrG+DUUqNtfVLcJ20imby7fpBwQNG5VsEQBzQndSonPyUOa2YkTbBb60YDondfQGDABopuHH8gHN8o2H2/VCnQ==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-linux-x64-gnu": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.91.tgz", + "integrity": "sha512-d11bYhX+YPBr/Frcjc6eVn3C0LuS/9U1Li9EmQ+6s9EpYtYRl2ygSlC8eueLbaiazBnCVYFnc8bU4o0kc5B9sw==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-linux-x64-musl": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.91.tgz", + "integrity": "sha512-2SRp5Dke2P4jCQePkDx9trkkTstnRpZJVw5r3jvYdk0zeO6iC4+ZPvvoWXJLigqQv/fZnIiSUfJ6ssOoaEqTzQ==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-win32-arm64-msvc": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.91.tgz", + "integrity": "sha512-l9qKXikOxj42UIjbeZpz9xtBmr736jOMqInNP8mVF2/U+ws5sI8zJjcOFFtfis4ru7vWCXhB1wtltdlJYO2vGA==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-win32-ia32-msvc": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.91.tgz", + "integrity": "sha512-+s+52O0QVPmzOgjEe/rcb0AK6q/J7EHKwAyJCu/FaYO9df5ovE0HJjSKP6HAF0dGPO5hkENrXuNGujofUH9vtQ==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/core-win32-x64-msvc": { + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.91.tgz", + "integrity": "sha512-7u9HDQhjUC3Gv43EFW84dZtduWCSa4MgltK+Sp9zEGti6WXqDPu/ESjvDsQEVYTBEMEvZs/xVAXPgLVHorV5nQ==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/counter": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.2.tgz", + "integrity": "sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==", + "dev": true, + "optional": true, + "peer": true + }, + "@swc/types": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", + "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", + "dev": true, + "optional": true, + "peer": true + }, + "@tsconfig/node10": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", + "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", + "dev": true, + "optional": true, + "peer": true + }, + "@tsconfig/node12": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", + "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", + "dev": true, + "optional": true, + "peer": true + }, + "@tsconfig/node14": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", + "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", + "dev": true, + "optional": true, + "peer": true + }, + "@tsconfig/node16": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", + "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", + "dev": true, + "optional": true, + "peer": true + }, + "@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "requires": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "requires": { + "@babel/types": "^7.20.7" + } + }, + "@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" + }, + "@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "@types/uuid": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.4.tgz", + "integrity": "sha512-zAuJWQflfx6dYJM62vna+Sn5aeSWhh3OB+wfUEACNcqUSc0AGc5JKl+ycL1vrH7frGTXhJchYjE1Hak8L819dA==" + }, + "@types/validator": { + "version": "13.11.10", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.10.tgz", + "integrity": "sha512-e2PNXoXLr6Z+dbfx5zSh9TRlXJrELycxiaXznp4S5+D2M3b9bqJEitNHA5923jhnB2zzFiZHa2f0SI1HoIahpg==" + }, + "@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "acorn": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "dev": true, + "optional": true, + "peer": true + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "optional": true, + "peer": true + }, + "aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true, + "optional": true, + "peer": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "requires": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + } + }, + "azle": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/azle/-/azle-0.23.0.tgz", + "integrity": "sha512-BRp0YAe/mtLCWVZDDl5IUbCLFb2fWi2NnKLHTUC0+EmZu59kVAR7AT7DY/oMvYVYVqxGlw9eqOIzhqB1msChWQ==", + "requires": { + "@dfinity/agent": "^1.1.0", + "@dfinity/identity-secp256k1": "^1.1.0", + "@types/uuid": "^9.0.4", + "binaryen": "^116.0.0", + "buffer": "^6.0.3", + "chokidar": "^3.6.0", + "class-transformer": "^0.5.1", + "class-validator": "^0.14.1", + "crypto-browserify": "^3.12.0", + "deep-is": "^0.1.4", + "esbuild": "^0.23.0", + "esbuild-plugin-tsc": "^0.4.0", + "ethers": "6.11.1", + "fs-extra": "^11.2.0", + "glob": "^10.3.15", + "hash-of-directory": "^1.0.1", + "http-message-parser": "^0.0.34", + "intl": "^1.2.5", + "js-sha256": "0.9.0", + "net": "^1.0.2", + "pako": "^2.1.0", + "reflect-metadata": "^0.2.2", + "repl": "^0.1.3", + "text-encoding": "0.7.0", + "tsx": "^4.15.7", + "typescript": "^5.2.2", + "uuid": "^9.0.1" + }, + "dependencies": { + "@dfinity/agent": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.2.0.tgz", + "integrity": "sha512-i9mH0PO73nrhLc9lZv14SWr4muyMcs6uqqlG2SHQtRUFRXbqj4DOhKsU0Sm+kC8eWYCSu65WPKPYwwAR7YM6ug==", + "requires": { + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.3.1", + "base64-arraybuffer": "^0.2.0", + "borc": "^2.1.1", + "buffer": "^6.0.3", + "simple-cbor": "^0.4.1" + } + }, + "@dfinity/candid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.2.0.tgz", + "integrity": "sha512-L6gV3ODIFC9qNenq3zuRvHrTwH36IM5utVH2wMS5f5eIUeG9fNe+avYLRPBUJwdeX7cM7xhvDgE/m/aN2cZvKQ==", + "peer": true, + "requires": {} + }, + "@dfinity/principal": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.2.0.tgz", + "integrity": "sha512-7eurqPDL5ptlTTLMJPeiO75FAumXHsWEWDVQaN6XpA3aZtmofNK4Sb5g5Ne9syeuoCJcW3mFBbbFtFNxggxu+g==", + "peer": true, + "requires": { + "@noble/hashes": "^1.3.1" + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + } + }, + "minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "requires": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "dependencies": { + "istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "requires": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + } + } + } + }, + "babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "base64-arraybuffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", + "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bignumber.js": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", + "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "binaryen": { + "version": "116.0.0", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0.tgz", + "integrity": "sha512-Hp0dXC6Cb/rTwWEoUS2BRghObE7g/S9umKtxuTDt3f61G6fNTE/YVew/ezyy3IdHcLx3f17qfh6LwETgCfvWkQ==" + }, + "bip39": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", + "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", + "requires": { + "@noble/hashes": "^1.2.0" + } + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "borc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", + "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", + "requires": { + "bignumber.js": "^9.0.0", + "buffer": "^5.5.0", + "commander": "^2.15.0", + "ieee754": "^1.1.13", + "iso-url": "~0.4.7", + "json-text-sequence": "~0.1.0", + "readable-stream": "^3.6.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "requires": { + "fill-range": "^7.1.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", + "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", + "requires": { + "bn.js": "^5.2.1", + "browserify-rsa": "^4.1.0", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.4", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.6", + "readable-stream": "^3.6.2", + "safe-buffer": "^5.2.1" + } + }, + "browserslist": { + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" + } + }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "requires": { + "base-x": "^4.0.0" + } + }, + "bs58check": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz", + "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==", + "requires": { + "@noble/hashes": "^1.2.0", + "bs58": "^5.0.0" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001633", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001633.tgz", + "integrity": "sha512-6sT0yf/z5jqf8tISAgpJDrmwOpLsrpnyCdD/lOZKvKkkJK4Dn0X5i7KF7THEZhOq+30bmhwBlNEaqPUiHiKtZg==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true + }, + "class-transformer": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", + "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==" + }, + "class-validator": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.1.tgz", + "integrity": "sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==", + "requires": { + "@types/validator": "^13.11.8", + "libphonenumber-js": "^1.10.53", + "validator": "^13.9.0" + } + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true, + "optional": true, + "peer": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "requires": {} + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true + }, + "delimit-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", + "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=" + }, + "des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "optional": true, + "peer": true + }, + "diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "electron-to-chromium": { + "version": "1.4.802", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.802.tgz", + "integrity": "sha512-TnTMUATbgNdPXVSHsxvNVSG0uEd6cSZsANjm8c9HbvflZVVn1yTRcmVXYT1Ma95/ssB/Dcd30AHweH2TE+dNpA==", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "esbuild": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", + "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", + "requires": { + "@esbuild/aix-ppc64": "0.23.0", + "@esbuild/android-arm": "0.23.0", + "@esbuild/android-arm64": "0.23.0", + "@esbuild/android-x64": "0.23.0", + "@esbuild/darwin-arm64": "0.23.0", + "@esbuild/darwin-x64": "0.23.0", + "@esbuild/freebsd-arm64": "0.23.0", + "@esbuild/freebsd-x64": "0.23.0", + "@esbuild/linux-arm": "0.23.0", + "@esbuild/linux-arm64": "0.23.0", + "@esbuild/linux-ia32": "0.23.0", + "@esbuild/linux-loong64": "0.23.0", + "@esbuild/linux-mips64el": "0.23.0", + "@esbuild/linux-ppc64": "0.23.0", + "@esbuild/linux-riscv64": "0.23.0", + "@esbuild/linux-s390x": "0.23.0", + "@esbuild/linux-x64": "0.23.0", + "@esbuild/netbsd-x64": "0.23.0", + "@esbuild/openbsd-arm64": "0.23.0", + "@esbuild/openbsd-x64": "0.23.0", + "@esbuild/sunos-x64": "0.23.0", + "@esbuild/win32-arm64": "0.23.0", + "@esbuild/win32-ia32": "0.23.0", + "@esbuild/win32-x64": "0.23.0" + }, + "dependencies": { + "@esbuild/aix-ppc64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", + "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", + "optional": true + } + } + }, + "esbuild-plugin-tsc": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/esbuild-plugin-tsc/-/esbuild-plugin-tsc-0.4.0.tgz", + "integrity": "sha512-q9gWIovt1nkwchMLc2zhyksaiHOv3kDK4b0AUol8lkMCRhJ1zavgfb2fad6BKp7FT9rh/OHmEBXVjczLoi/0yw==", + "requires": { + "strip-comments": "^2.0.1" + } + }, + "escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "ethers": { + "version": "6.11.1", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.11.1.tgz", + "integrity": "sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg==", + "requires": { + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.5.0" + }, + "dependencies": { + "@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "requires": { + "@noble/hashes": "1.3.2" + } + }, + "@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true + }, + "expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "requires": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "dependencies": { + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" + } + } + }, + "fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-prop": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/get-prop/-/get-prop-0.0.10.tgz", + "integrity": "sha512-XRSGBgcIisSMLJ/dwe1y/eMm9yzLicEJKmEXA3ArBkDkCW2nyRroLOoKIz+SdxuG5SI7ym2QHaTU5ifCl7MTDg==" + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "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==", + "requires": { + "resolve-pkg-maps": "^1.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "hash-of-directory": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hash-of-directory/-/hash-of-directory-1.0.1.tgz", + "integrity": "sha512-PX6VaxD6JK8R4113ChdTtEnWIo2XA9mz4yrtGBuUGUKtWCj6iWWYj/qwjdfs3Zgm+FdiNj0Vmt4VwPlwxx8WHw==" + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, + "hdkey": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz", + "integrity": "sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA==", + "requires": { + "bs58check": "^2.1.2", + "ripemd160": "^2.0.2", + "safe-buffer": "^5.1.1", + "secp256k1": "^4.0.0" + }, + "dependencies": { + "base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + } + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-message-parser": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/http-message-parser/-/http-message-parser-0.0.34.tgz", + "integrity": "sha512-KABKXT347AYvQoaMZg9/K+/GqW6gfB4pKCiTyMUYnosfkdkaBkrXE/cWGSLk5jvD5tiDeLFlYSHLhhPhQKbRrA==", + "requires": { + "buffer": "^4.9.1", + "concat-stream": "^1.5.1", + "get-prop": "0.0.10", + "minimist": "^1.2.0", + "stream-buffers": "^3.0.0" + }, + "dependencies": { + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + } + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "intl": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", + "integrity": "sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "iso-url": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", + "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==" + }, + "istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "dev": true, + "requires": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "dependencies": { + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, + "jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, + "requires": { + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + } + }, + "jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, + "requires": { + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" + } + }, + "jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "requires": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + } + }, + "jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + } + }, + "jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + } + }, + "jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + } + }, + "jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true + }, + "jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.3.2", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + } + }, + "jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, + "requires": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + } + }, + "jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + } + }, + "jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + } + }, + "jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "requires": {} + }, + "jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true + }, + "jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, + "requires": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + } + }, + "jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "requires": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + } + }, + "jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "dev": true, + "requires": { + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + } + }, + "jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "dev": true, + "requires": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, + "dependencies": { + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + } + } + }, + "jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "dev": true, + "requires": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true + } + } + }, + "jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, + "requires": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + } + }, + "jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "requires": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-text-sequence": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", + "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", + "requires": { + "delimit-stream": "0.1.0" + } + }, + "json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "libphonenumber-js": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.11.3.tgz", + "integrity": "sha512-RU0CTsLCu2v6VEzdP+W6UU2n5+jEpMDRkGxUeBgsAJgre3vKgm17eApISH9OQY4G0jZYJVIc8qXmz6CJFueAFg==" + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "requires": { + "semver": "^7.5.3" + }, + "dependencies": { + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "requires": { + "tmpl": "1.0.5" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "net": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/net/-/net-1.0.2.tgz", + "integrity": "sha512-kbhcj2SVVR4caaVnGLJKmlk2+f+oLkjqdKeQlmUtz6nGzOpbcobwVIeSURNgraV/v3tlmGIX82OcPCl0K6RbHQ==" + }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node-gyp-build": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", + "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" + }, + "pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "requires": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + } + } + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "requires": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true + }, + "pvtsutils": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", + "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", + "requires": { + "tslib": "^2.6.1" + } + }, + "pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" + }, + "repl": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/repl/-/repl-0.1.3.tgz", + "integrity": "sha512-C3ZEHaX28+EvM9lPiXl9ruN2g5M5sUvyCIDvZ0M4VCusfA1Cn0+z3tJcQl/lvxPsBm82q4hKHKebPlE3SEhFKg==" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + } + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "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==" + }, + "resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "requires": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "simple-cbor": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/simple-cbor/-/simple-cbor-0.4.1.tgz", + "integrity": "sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w==" + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "stream-buffers": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz", + "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "string-width-cjs": { + "version": "npm:string-width@4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-ansi-cjs": { + "version": "npm:strip-ansi@6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==" + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-encoding": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz", + "integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==" + }, + "tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "ts-jest": { + "version": "29.1.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.4.tgz", + "integrity": "sha512-YiHwDhSvCiItoAgsKtoLFCuakDzDsJ1DLDnSouTaTmdOcOwIkSzbLXduaQ6M5DRVhuZC/NYaaZ/mtHbWMv/S6Q==", + "dev": true, + "requires": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "^7.5.3", + "yargs-parser": "^21.0.1" + }, + "dependencies": { + "semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true + } + } + }, + "ts-node": { + "version": "10.9.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.0.tgz", + "integrity": "sha512-bunW18GUyaCSYRev4DPf4SQpom3pWH29wKl0sDk5zE7ze19RImEVhCW7K4v3hHKkUyfWotU08ToE2RS+Y49aug==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "dependencies": { + "@cspotcode/source-map-support": { + "version": "0.8.1", + "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" + } + } + } + }, + "tslib": { + "version": "2.6.2", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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==", + "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", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==" + }, + "universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" + }, + "update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "requires": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" + }, + "v8-compile-cache-lib": { + "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, + "optional": true, + "peer": true + }, + "v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "dependencies": { + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + } + } + }, + "validator": { + "version": "13.12.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", + "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==" + }, + "walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "requires": { + "makeerror": "1.0.12" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrap-ansi-cjs": { + "version": "npm:wrap-ansi@7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "requires": {} + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "optional": true, + "peer": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + } + } +} diff --git a/tests/end_to_end/candid_rpc/functional_api/query/package.json b/tests/end_to_end/candid_rpc/functional_api/query/package.json new file mode 100644 index 0000000000..3cc7399f7d --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/query/package.json @@ -0,0 +1,17 @@ +{ + "name": "query_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.4", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/query/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/query/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/query/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/query/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/query/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/query/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/query/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/query/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/query/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/query/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/query/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/query/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/query/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/query/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/query/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/query/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/query/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/query/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/query/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/query/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/randomness/.gitignore b/tests/end_to_end/candid_rpc/functional_api/randomness/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/randomness/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/randomness/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/randomness/dfx.json b/tests/end_to_end/candid_rpc/functional_api/randomness/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/randomness/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/randomness/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/randomness/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/randomness/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/randomness/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/randomness/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/randomness/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/randomness/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/randomness/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/randomness/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/randomness/package.json b/tests/end_to_end/candid_rpc/functional_api/randomness/package.json new file mode 100644 index 0000000000..6a55f01203 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/randomness/package.json @@ -0,0 +1,17 @@ +{ + "name": "randomness_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/randomness/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/randomness/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/randomness/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/randomness/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/randomness/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/randomness/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/randomness/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/randomness/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/randomness/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/randomness/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/randomness/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/randomness/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/randomness/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/randomness/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/randomness/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/randomness/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/randomness/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/randomness/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/randomness/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/randomness/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/recursion/.gitignore b/tests/end_to_end/candid_rpc/functional_api/recursion/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/recursion/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/recursion/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/recursion/dfx.json b/tests/end_to_end/candid_rpc/functional_api/recursion/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/recursion/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/recursion/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/recursion/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/recursion/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/recursion/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/recursion/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/recursion/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/recursion/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/recursion/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/recursion/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/recursion/package.json b/tests/end_to_end/candid_rpc/functional_api/recursion/package.json new file mode 100644 index 0000000000..afef002518 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/recursion/package.json @@ -0,0 +1,18 @@ +{ + "name": "recursion_end_to_end_test_functional_api", + "scripts": { + "pre_tests": "tsx test/pretest.ts", + "tests": "npm run pre_tests && jest", + "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/recursion/src/recursion/index.ts b/tests/end_to_end/candid_rpc/functional_api/recursion/src/recursion/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/recursion/src/recursion/index.ts rename to tests/end_to_end/candid_rpc/functional_api/recursion/src/recursion/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/recursion/src/recursive_canister/index.did b/tests/end_to_end/candid_rpc/functional_api/recursion/src/recursive_canister/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/recursion/src/recursive_canister/index.did rename to tests/end_to_end/candid_rpc/functional_api/recursion/src/recursive_canister/index.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/recursion/src/recursive_canister/index.ts b/tests/end_to_end/candid_rpc/functional_api/recursion/src/recursive_canister/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/recursion/src/recursive_canister/index.ts rename to tests/end_to_end/candid_rpc/functional_api/recursion/src/recursive_canister/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/recursion/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/recursion/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/recursion/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/recursion/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/recursion/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/recursion/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/recursion/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/recursion/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/recursion/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/recursion/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/recursion/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/recursion/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/recursion/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/recursion/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/recursion/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/recursion/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/rejections/.gitignore b/tests/end_to_end/candid_rpc/functional_api/rejections/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/rejections/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/rejections/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/rejections/dfx.json b/tests/end_to_end/candid_rpc/functional_api/rejections/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/rejections/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/rejections/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/rejections/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/rejections/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/rejections/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/rejections/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/rejections/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/rejections/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/rejections/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/rejections/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/rejections/package.json b/tests/end_to_end/candid_rpc/functional_api/rejections/package.json new file mode 100644 index 0000000000..ae08dab6bf --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/rejections/package.json @@ -0,0 +1,18 @@ +{ + "name": "rejections_end_to_end_test_functional_api", + "scripts": { + "pre_tests": "tsx test/pretest.ts", + "tests": "npm run pre_tests && jest", + "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/rejections/src/nonexistent.did b/tests/end_to_end/candid_rpc/functional_api/rejections/src/nonexistent.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/rejections/src/nonexistent.did rename to tests/end_to_end/candid_rpc/functional_api/rejections/src/nonexistent.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/rejections/src/rejections/index.ts b/tests/end_to_end/candid_rpc/functional_api/rejections/src/rejections/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/rejections/src/rejections/index.ts rename to tests/end_to_end/candid_rpc/functional_api/rejections/src/rejections/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/rejections/src/some_canister/index.did b/tests/end_to_end/candid_rpc/functional_api/rejections/src/some_canister/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/rejections/src/some_canister/index.did rename to tests/end_to_end/candid_rpc/functional_api/rejections/src/some_canister/index.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/rejections/src/some_canister/index.ts b/tests/end_to_end/candid_rpc/functional_api/rejections/src/some_canister/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/rejections/src/some_canister/index.ts rename to tests/end_to_end/candid_rpc/functional_api/rejections/src/some_canister/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/rejections/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/rejections/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/rejections/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/rejections/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/rejections/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/rejections/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/rejections/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/rejections/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/rejections/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/rejections/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/rejections/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/rejections/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/rejections/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/rejections/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/rejections/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/rejections/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/.gitignore b/tests/end_to_end/candid_rpc/functional_api/robust_imports/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/dfx.json b/tests/end_to_end/candid_rpc/functional_api/robust_imports/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/robust_imports/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/robust_imports/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/robust_imports/package.json b/tests/end_to_end/candid_rpc/functional_api/robust_imports/package.json new file mode 100644 index 0000000000..dc6a28280b --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/robust_imports/package.json @@ -0,0 +1,17 @@ +{ + "name": "robust_imports_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.18.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/azle_coverage/fruit.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/src/azle_coverage/fruit.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/azle_coverage/fruit.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/src/azle_coverage/fruit.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/azle_coverage/index.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/src/azle_coverage/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/azle_coverage/index.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/src/azle_coverage/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/import_coverage/index.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/src/import_coverage/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/import_coverage/index.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/src/import_coverage/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/import_coverage/types.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/src/import_coverage/types.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/import_coverage/types.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/src/import_coverage/types.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/ts_primitives/index.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/src/ts_primitives/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/ts_primitives/index.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/src/ts_primitives/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/type_alias_decls/deep_alias/deeper_alias.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/src/type_alias_decls/deep_alias/deeper_alias.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/type_alias_decls/deep_alias/deeper_alias.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/src/type_alias_decls/deep_alias/deeper_alias.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/type_alias_decls/deep_alias/deepest_alias.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/src/type_alias_decls/deep_alias/deepest_alias.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/type_alias_decls/deep_alias/deepest_alias.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/src/type_alias_decls/deep_alias/deepest_alias.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/type_alias_decls/deep_alias/index.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/src/type_alias_decls/deep_alias/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/type_alias_decls/deep_alias/index.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/src/type_alias_decls/deep_alias/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/type_alias_decls/index.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/src/type_alias_decls/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/type_alias_decls/index.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/src/type_alias_decls/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/type_alias_decls/mixed_alias/index.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/src/type_alias_decls/mixed_alias/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/type_alias_decls/mixed_alias/index.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/src/type_alias_decls/mixed_alias/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/type_alias_decls/mixed_alias/mixed_alias.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/src/type_alias_decls/mixed_alias/mixed_alias.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/type_alias_decls/mixed_alias/mixed_alias.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/src/type_alias_decls/mixed_alias/mixed_alias.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/type_alias_decls/mixed_alias/user_defined_types.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/src/type_alias_decls/mixed_alias/user_defined_types.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/type_alias_decls/mixed_alias/user_defined_types.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/src/type_alias_decls/mixed_alias/user_defined_types.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/type_alias_decls/types.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/src/type_alias_decls/types.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/type_alias_decls/types.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/src/type_alias_decls/types.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/types/deep/deeper.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/src/types/deep/deeper.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/types/deep/deeper.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/src/types/deep/deeper.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/types/deep/deepest.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/src/types/deep/deepest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/types/deep/deepest.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/src/types/deep/deepest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/types/deep/index.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/src/types/deep/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/types/deep/index.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/src/types/deep/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/types/deep/shallow.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/src/types/deep/shallow.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/src/types/deep/shallow.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/src/types/deep/shallow.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/robust_imports/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/robust_imports/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/robust_imports/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/robust_imports/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/.gitignore b/tests/end_to_end/candid_rpc/functional_api/simple_erc20/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/simple_erc20/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/dfx.json b/tests/end_to_end/candid_rpc/functional_api/simple_erc20/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/simple_erc20/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/simple_erc20/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/simple_erc20/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/simple_erc20/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/simple_erc20/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/simple_erc20/package.json b/tests/end_to_end/candid_rpc/functional_api/simple_erc20/package.json new file mode 100644 index 0000000000..683349035e --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/simple_erc20/package.json @@ -0,0 +1,17 @@ +{ + "name": "simple_erc20_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/simple_erc20/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/simple_erc20/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/simple_erc20/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/simple_erc20/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/simple_erc20/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/simple_erc20/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/simple_erc20/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/simple_erc20/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/simple_erc20/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/simple_erc20/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/.gitignore b/tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/dfx.json b/tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/package.json b/tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/package.json new file mode 100644 index 0000000000..9bd546ffa5 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/package.json @@ -0,0 +1,18 @@ +{ + "name": "simple_user_accounts_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0", + "text-encoding": "^0.7.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/src/index.did b/tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/src/index.did similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/src/index.did rename to tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/src/index.did diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/simple_user_accounts/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/.gitignore b/tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/dfx.json b/tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/package.json b/tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/package.json new file mode 100644 index 0000000000..4a2550430d --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/package.json @@ -0,0 +1,18 @@ +{ + "name": "stable_b_tree_map_instruction_threshold_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0", + "uuid": "^9.0.1" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/stable_b_tree_map_instruction_threshold/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/.gitignore b/tests/end_to_end/candid_rpc/functional_api/stable_structures/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/dfx.json b/tests/end_to_end/candid_rpc/functional_api/stable_structures/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/stable_structures/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/stable_structures/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/stable_structures/package.json b/tests/end_to_end/candid_rpc/functional_api/stable_structures/package.json new file mode 100644 index 0000000000..4deacf4633 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/stable_structures/package.json @@ -0,0 +1,17 @@ +{ + "name": "stable_structures_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister1/index.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister1/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister1/index.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister1/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister1/stable_map_0.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister1/stable_map_0.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister1/stable_map_0.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister1/stable_map_0.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister1/stable_map_1.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister1/stable_map_1.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister1/stable_map_1.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister1/stable_map_1.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister1/stable_map_2.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister1/stable_map_2.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister1/stable_map_2.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister1/stable_map_2.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister1/stable_map_3.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister1/stable_map_3.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister1/stable_map_3.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister1/stable_map_3.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister1/stable_map_4.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister1/stable_map_4.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister1/stable_map_4.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister1/stable_map_4.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister2/index.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister2/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister2/index.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister2/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister2/stable_map_5.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister2/stable_map_5.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister2/stable_map_5.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister2/stable_map_5.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister2/stable_map_6.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister2/stable_map_6.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister2/stable_map_6.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister2/stable_map_6.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister2/stable_map_7.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister2/stable_map_7.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister2/stable_map_7.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister2/stable_map_7.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister2/stable_map_8.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister2/stable_map_8.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister2/stable_map_8.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister2/stable_map_8.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister2/stable_map_9.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister2/stable_map_9.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister2/stable_map_9.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister2/stable_map_9.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister3/index.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister3/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister3/index.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister3/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister3/stable_map_10.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister3/stable_map_10.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister3/stable_map_10.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister3/stable_map_10.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister3/stable_map_11.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister3/stable_map_11.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister3/stable_map_11.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister3/stable_map_11.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister3/stable_map_12.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister3/stable_map_12.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister3/stable_map_12.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister3/stable_map_12.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister3/stable_map_13.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister3/stable_map_13.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister3/stable_map_13.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister3/stable_map_13.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister3/stable_map_14.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister3/stable_map_14.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister3/stable_map_14.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister3/stable_map_14.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister3/stable_map_15.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister3/stable_map_15.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister3/stable_map_15.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister3/stable_map_15.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister3/stable_map_16.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister3/stable_map_16.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister3/stable_map_16.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister3/stable_map_16.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister3/stable_map_17.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister3/stable_map_17.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/canister3/stable_map_17.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/canister3/stable_map_17.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/types.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/src/types.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/src/types.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/src/types.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/stable_structures/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/stable_structures/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/stable_structures/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/stable_structures/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/timers/.gitignore b/tests/end_to_end/candid_rpc/functional_api/timers/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/timers/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/timers/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/timers/dfx.json b/tests/end_to_end/candid_rpc/functional_api/timers/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/timers/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/timers/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/timers/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/timers/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/timers/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/timers/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/timers/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/timers/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/timers/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/timers/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/timers/package.json b/tests/end_to_end/candid_rpc/functional_api/timers/package.json new file mode 100644 index 0000000000..f1f5e73c04 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/timers/package.json @@ -0,0 +1,18 @@ +{ + "name": "timers_end_to_end_test_functional_api", + "scripts": { + "pre_tests": "tsx test/pretest.ts", + "tests": "npm run pre_tests && jest", + "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/timers/src/timers.ts b/tests/end_to_end/candid_rpc/functional_api/timers/src/timers.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/timers/src/timers.ts rename to tests/end_to_end/candid_rpc/functional_api/timers/src/timers.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/timers/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/timers/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/timers/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/timers/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/timers/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/timers/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/timers/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/timers/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/timers/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/timers/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/timers/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/timers/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/timers/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/timers/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/timers/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/timers/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/tuple_types/.gitignore b/tests/end_to_end/candid_rpc/functional_api/tuple_types/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/tuple_types/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/tuple_types/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/tuple_types/dfx.json b/tests/end_to_end/candid_rpc/functional_api/tuple_types/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/tuple_types/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/tuple_types/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/tuple_types/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/tuple_types/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/tuple_types/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/tuple_types/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/tuple_types/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/tuple_types/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/tuple_types/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/tuple_types/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/tuple_types/package.json b/tests/end_to_end/candid_rpc/functional_api/tuple_types/package.json new file mode 100644 index 0000000000..c37b644be5 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/tuple_types/package.json @@ -0,0 +1,17 @@ +{ + "name": "tuple_types_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/tuple_types/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/tuple_types/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/tuple_types/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/tuple_types/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/tuple_types/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/tuple_types/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/tuple_types/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/tuple_types/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/tuple_types/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/tuple_types/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/tuple_types/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/tuple_types/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/tuple_types/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/tuple_types/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/tuple_types/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/tuple_types/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/tuple_types/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/tuple_types/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/tuple_types/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/tuple_types/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/update/.gitignore b/tests/end_to_end/candid_rpc/functional_api/update/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/update/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/update/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/update/dfx.json b/tests/end_to_end/candid_rpc/functional_api/update/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/update/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/update/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/update/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/update/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/update/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/update/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/update/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/update/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/update/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/update/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/update/package.json b/tests/end_to_end/candid_rpc/functional_api/update/package.json new file mode 100644 index 0000000000..5474942a2c --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/update/package.json @@ -0,0 +1,17 @@ +{ + "name": "update_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0" + }, + "devDependencies": { + "@dfinity/agent": "0.11.1", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/update/src/index.ts b/tests/end_to_end/candid_rpc/functional_api/update/src/index.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/update/src/index.ts rename to tests/end_to_end/candid_rpc/functional_api/update/src/index.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/update/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/update/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/update/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/update/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/update/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/update/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/update/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/update/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/update/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/update/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/update/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/update/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/update/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/update/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/update/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/update/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/.gitignore b/tests/end_to_end/candid_rpc/functional_api/vanilla_js/.gitignore similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/.gitignore rename to tests/end_to_end/candid_rpc/functional_api/vanilla_js/.gitignore diff --git a/tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/dfx.json b/tests/end_to_end/candid_rpc/functional_api/vanilla_js/dfx.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/dfx.json rename to tests/end_to_end/candid_rpc/functional_api/vanilla_js/dfx.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/jest.config.js b/tests/end_to_end/candid_rpc/functional_api/vanilla_js/jest.config.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/jest.config.js rename to tests/end_to_end/candid_rpc/functional_api/vanilla_js/jest.config.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/package-lock.json b/tests/end_to_end/candid_rpc/functional_api/vanilla_js/package-lock.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/package-lock.json rename to tests/end_to_end/candid_rpc/functional_api/vanilla_js/package-lock.json diff --git a/tests/end_to_end/candid_rpc/functional_api/vanilla_js/package.json b/tests/end_to_end/candid_rpc/functional_api/vanilla_js/package.json new file mode 100644 index 0000000000..19c2b18b52 --- /dev/null +++ b/tests/end_to_end/candid_rpc/functional_api/vanilla_js/package.json @@ -0,0 +1,18 @@ +{ + "name": "vanilla_js_end_to_end_test_functional_api", + "scripts": { + "pretest": "tsx test/pretest.ts", + "test": "jest" + }, + "dependencies": { + "azle": "0.23.0", + "js-sha256": "0.9.0" + }, + "devDependencies": { + "@dfinity/agent": "^0.19.2", + "jest": "^29.7.0", + "ts-jest": "^29.1.5", + "tsx": "^4.15.7", + "typescript": "^5.2.2" + } +} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/src/index.js b/tests/end_to_end/candid_rpc/functional_api/vanilla_js/src/index.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/src/index.js rename to tests/end_to_end/candid_rpc/functional_api/vanilla_js/src/index.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/src/library.js b/tests/end_to_end/candid_rpc/functional_api/vanilla_js/src/library.js similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/src/library.js rename to tests/end_to_end/candid_rpc/functional_api/vanilla_js/src/library.js diff --git a/tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/test/pretest.ts b/tests/end_to_end/candid_rpc/functional_api/vanilla_js/test/pretest.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/test/pretest.ts rename to tests/end_to_end/candid_rpc/functional_api/vanilla_js/test/pretest.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/test/test.ts b/tests/end_to_end/candid_rpc/functional_api/vanilla_js/test/test.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/test/test.ts rename to tests/end_to_end/candid_rpc/functional_api/vanilla_js/test/test.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/test/tests.ts b/tests/end_to_end/candid_rpc/functional_api/vanilla_js/test/tests.ts similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/test/tests.ts rename to tests/end_to_end/candid_rpc/functional_api/vanilla_js/test/tests.ts diff --git a/tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/tsconfig.json b/tests/end_to_end/candid_rpc/functional_api/vanilla_js/tsconfig.json similarity index 100% rename from tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/tsconfig.json rename to tests/end_to_end/candid_rpc/functional_api/vanilla_js/tsconfig.json diff --git a/tests/end_to_end/candid_rpc/functional_syntax/async_await/package.json b/tests/end_to_end/candid_rpc/functional_syntax/async_await/package.json deleted file mode 100644 index f9d2ebccaa..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/async_await/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "async_await_end_to_end_test_functional_syntax", - "scripts": { - "pre_tests": "tsx test/pretest.ts", - "tests": "npm run pre_tests && jest", - "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/package.json b/tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/package.json deleted file mode 100644 index 726ddc69ab..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/audio_recorder/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "audio_recorder_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.3", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/package.json b/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/package.json deleted file mode 100644 index f14c2ccf1f..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/bitcoin/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "bitcoin_end_to_end_test_functional_syntax", - "scripts": { - "bitcoind": ".bitcoin/bin/bitcoind -conf=$(pwd)/.bitcoin.conf -datadir=$(pwd)/.bitcoin/data --port=18444", - "bitcoin-cli": "bitcoin-cli -conf=$(pwd)/.bitcoin.conf -datadir=$(pwd)/.bitcoin/data -rpcport=18443", - "deploy": "./scripts/deploy.sh bitcoin", - "install": "./scripts/install.sh", - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/blob_array/package.json b/tests/end_to_end/candid_rpc/functional_syntax/blob_array/package.json deleted file mode 100644 index 370ab38f09..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/blob_array/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "blob_array_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/bytes/package.json b/tests/end_to_end/candid_rpc/functional_syntax/bytes/package.json deleted file mode 100644 index f201231228..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/bytes/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "bytes_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/call_raw/package.json b/tests/end_to_end/candid_rpc/functional_syntax/call_raw/package.json deleted file mode 100644 index 943c43841f..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/call_raw/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "call_raw_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/package.json b/tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/package.json deleted file mode 100644 index 748200b3b1..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/candid_encoding/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "candid_encoding_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/package.json b/tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/package.json deleted file mode 100644 index e0041b5bb1..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/candid_keywords/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "candid_keywords_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/canister/package.json b/tests/end_to_end/candid_rpc/functional_syntax/canister/package.json deleted file mode 100644 index fb7c39b9ef..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/canister/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "canister_end_to_end_test_functional_syntax", - "scripts": { - "pre_tests": "tsx test/pretest.ts", - "tests": "npm run pre_tests && jest", - "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.21.4", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/package.json b/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/package.json deleted file mode 100644 index 86586faa24..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/ckbtc/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "ckbtc_end_to_end_test_functional_syntax", - "scripts": { - "bitcoin": ".bitcoin/bin/bitcoind -conf=$(pwd)/.bitcoin.conf -datadir=$(pwd)/.bitcoin/data --port=18444", - "ic": "dfx start --clean --host 127.0.0.1:8000 --enable-bitcoin", - "install": "./scripts/install/all.sh", - "install:bitcoin": "./scripts/install/bitcoin.sh", - "install:ckbtc": "curl -o ./ckbtc/ledger.wasm.gz https://download.dfinity.systems/ic/d6d395a480cd6986b4788f4aafffc5c03a07e46e/canisters/ic-icrc1-ledger.wasm.gz", - "install:internet_identity": "curl -L -o ./internet_identity/internet_identity_test.wasm.gz https://github.com/dfinity/internet-identity/releases/download/release-2023-05-15/internet_identity_test.wasm.gz", - "install:kyt": "curl -o ./kyt/kyt.wasm.gz https://download.dfinity.systems/ic/d6d395a480cd6986b4788f4aafffc5c03a07e46e/canisters/ic-ckbtc-kyt.wasm.gz", - "install:minter": "curl -o ./minter/minter.wasm.gz https://download.dfinity.systems/ic/d6d395a480cd6986b4788f4aafffc5c03a07e46e/canisters/ic-ckbtc-minter.wasm.gz", - "install:wallet_frontend": "cd wallet/frontend && npm install && cd ../..", - "deploy": "./scripts/deploy/all.sh", - "deploy:ckbtc": "./scripts/deploy/ckbtc.sh", - "deploy:internet_identity": "./scripts/deploy/internet_identity.sh", - "deploy:kyt": "./scripts/deploy/kyt.sh", - "deploy:minter": "./scripts/deploy/minter.sh", - "deploy:wallet_backend": "./scripts/deploy/wallet_backend.sh", - "deploy:wallet_frontend": "dfx deploy wallet_frontend --specified-id ryjl3-tyaaa-aaaaa-aaaba-cai", - "frontend": "npx open-cli http://ryjl3-tyaaa-aaaaa-aaaba-cai.localhost:8000/", - "mint": ".bitcoin/bin/bitcoin-cli -conf=$(pwd)/.bitcoin.conf generatetoaddress 1 $npm_config_address", - "build": "cd wallet/frontend && npm run build", - "pre_tests": "tsx test/pretest.ts", - "tests": "npm run pre_tests && jest", - "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "@dfinity/identity": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_init/package.json b/tests/end_to_end/candid_rpc/functional_syntax/complex_init/package.json deleted file mode 100644 index fc20086fd9..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/complex_init/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "complex_init_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/package.json b/tests/end_to_end/candid_rpc/functional_syntax/complex_types/package.json deleted file mode 100644 index 4a5e1ad383..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/complex_types/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "complex_types_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/package.json b/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/package.json deleted file mode 100644 index 2033c058c9..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/composite_queries/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "composite_queries_end_to_end_test_functional_syntax", - "scripts": { - "pre_tests": "tsx test/pretest.ts", - "tests": "npm run pre_tests && jest", - "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/counter/package.json b/tests/end_to_end/candid_rpc/functional_syntax/counter/package.json deleted file mode 100644 index 45e4310663..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/counter/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "counter_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/package.json b/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/package.json deleted file mode 100644 index 5856937b1c..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/cross_canister_calls/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "cross_canister_calls_end_to_end_test_functional_syntax", - "scripts": { - "pre_tests": "tsx test/pretest.ts", - "tests": "npm run pre_tests && jest", - "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/cycles/package.json b/tests/end_to_end/candid_rpc/functional_syntax/cycles/package.json deleted file mode 100644 index e40dd81599..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/cycles/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "cycles_end_to_end_test_functional_syntax", - "scripts": { - "pre_tests": "tsx test/pretest.ts", - "tests": "npm run pre_tests && jest", - "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/date/package.json b/tests/end_to_end/candid_rpc/functional_syntax/date/package.json deleted file mode 100644 index 2263cd3158..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/date/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "date_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/package.json b/tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/package.json deleted file mode 100644 index 6426282137..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/ethereum_json_rpc/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "ethereum_json_rpc_end_to_end_test_functional_syntax", - "scripts": { - "pre_tests": "ETHEREUM_URL=https://rpc.ankr.com/eth tsx test/pretest.ts", - "tests": "ETHEREUM_URL=https://rpc.ankr.com/eth npm run pre_tests && jest", - "test": "ETHEREUM_URL=https://rpc.ankr.com/eth AZLE_TEST_FETCH=false npm run tests && ETHEREUM_URL=https://rpc.ankr.com/eth AZLE_TEST_FETCH=true npm run tests" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/func_types/package.json b/tests/end_to_end/candid_rpc/functional_syntax/func_types/package.json deleted file mode 100644 index cde2b17d71..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/func_types/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "func_types_end_to_end_test_functional_syntax", - "scripts": { - "pre_tests": "tsx test/pretest.ts", - "tests": "npm run pre_tests && jest", - "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/heartbeat/package.json b/tests/end_to_end/candid_rpc/functional_syntax/heartbeat/package.json deleted file mode 100644 index dcb26cdcac..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/heartbeat/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "heartbeat_end_to_end_test_functional_syntax", - "scripts": { - "pre_tests": "tsx test/pretest.ts", - "tests": "npm run pre_tests && jest", - "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ic_api/package.json b/tests/end_to_end/candid_rpc/functional_syntax/ic_api/package.json deleted file mode 100644 index 7bf01b1102..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/ic_api/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "ic_api_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/icrc/package.json b/tests/end_to_end/candid_rpc/functional_syntax/icrc/package.json deleted file mode 100644 index d38a7d74b1..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/icrc/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "icrc_end_to_end_test_functional_syntax", - "scripts": { - "pre_tests": "tsx test/pretest.ts", - "tests": "npm run pre_tests && jest", - "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.14.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/imports/package.json b/tests/end_to_end/candid_rpc/functional_syntax/imports/package.json deleted file mode 100644 index 4d6f75f4ac..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/imports/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "imports_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0", - "js-sha256": "0.9.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/init/package.json b/tests/end_to_end/candid_rpc/functional_syntax/init/package.json deleted file mode 100644 index 4207d79252..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/init/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "init_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^1.4.0", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/inspect_message/package.json b/tests/end_to_end/candid_rpc/functional_syntax/inspect_message/package.json deleted file mode 100644 index 44a4ccdce6..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/inspect_message/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "inspect_message_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/key_value_store/package.json b/tests/end_to_end/candid_rpc/functional_syntax/key_value_store/package.json deleted file mode 100644 index 2dc66eaec6..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/key_value_store/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "key_value_store_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/package.json b/tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/package.json deleted file mode 100644 index 4e5e67961d..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/ledger_canister/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "ledger_canister_end_to_end_test_functional_syntax", - "scripts": { - "pre_tests": "tsx test/pretest.ts", - "tests": "npm run pre_tests && jest", - "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/package.json b/tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/package.json deleted file mode 100644 index acbfc7e33b..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/list_of_lists/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "list_of_lists_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "fast-equals": "^5.0.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/management_canister/package.json b/tests/end_to_end/candid_rpc/functional_syntax/management_canister/package.json deleted file mode 100644 index f70cf9cda3..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/management_canister/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "management_canister_end_to_end_test_functional_syntax", - "scripts": { - "pre_tests": "tsx test/pretest.ts", - "tests": "npm run pre_tests && jest", - "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/manual_reply/package.json b/tests/end_to_end/candid_rpc/functional_syntax/manual_reply/package.json deleted file mode 100644 index 19a29c9549..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/manual_reply/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "manual_reply_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/package.json b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/package.json deleted file mode 100644 index a0ebfca994..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/calc/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "calc_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/package.json b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/package.json deleted file mode 100644 index 45e4310663..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/counter/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "counter_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/package.json b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/package.json deleted file mode 100644 index 3f5551fa96..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/echo/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "echo_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/package.json b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/package.json deleted file mode 100644 index 3c8db5d032..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/factorial/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "factorial_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/package.json b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/package.json deleted file mode 100644 index bfcd39055e..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/hello-world/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "hello-world_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/package.json b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/package.json deleted file mode 100644 index a875f62e2d..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/persistent-storage/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "persistent-storage_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/package.json b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/package.json deleted file mode 100644 index 5a2dccfc34..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/phone-book/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "phone-book_end_to_end_test_functional_syntax", - "scripts": { - "build": "webpack", - "prebuild": "npm run generate", - "start": "webpack serve --mode development --env development", - "prestart": "npm run generate", - "generate": "dfx generate phone_book", - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.0", - "@dfinity/candid": "^0.19.0", - "@dfinity/principal": "^0.19.0", - "assert": "^2.0.0", - "buffer": "^6.0.3", - "copy-webpack-plugin": "^11.0.0", - "css-loader": "^6.0.0", - "events": "^3.3.0", - "html-webpack-plugin": "^5.5.0", - "jest": "^29.7.0", - "process": "^0.11.10", - "stream-browserify": "^3.0.0", - "style-loader": "^3.3.0", - "terser-webpack-plugin": "^5.3.0", - "ts-jest": "^29.1.4", - "ts-loader": "^9.4.0", - "tsx": "^4.15.7", - "typescript": "^5.2.2", - "util": "^0.12.0", - "webpack": "^5.88.0", - "webpack-cli": "^5.1.0", - "webpack-dev-server": "^4.15.0" - }, - "browserslist": [ - "last 2 chrome version", - "last 2 firefox version", - "last 2 safari version", - "last 2 edge version" - ], - "dependencies": { - "azle": "0.23.0", - "react": "^17.0.2", - "react-dom": "^17.0.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/package.json b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/package.json deleted file mode 100644 index 3c8f0126d4..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/quicksort/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "quicksort_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/package.json b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/package.json deleted file mode 100644 index a0ab4f7161..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/simple-to-do/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "simple-to-do_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/package.json b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/package.json deleted file mode 100644 index da6b9b32aa..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/superheroes/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "superheroes_end_to_end_test_functional_syntax", - "scripts": { - "build": "webpack", - "prebuild": "npm run generate", - "start": "webpack serve --mode development --env development", - "prestart": "npm run generate", - "generate": "dfx generate superheroes", - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.0", - "@dfinity/candid": "^0.19.0", - "@dfinity/principal": "^0.19.0", - "assert": "^2.0.0", - "buffer": "^6.0.3", - "copy-webpack-plugin": "^11.0.0", - "css-loader": "^6.0.0", - "events": "^3.3.0", - "html-webpack-plugin": "^5.5.0", - "jest": "^29.7.0", - "process": "^0.11.10", - "stream-browserify": "^3.0.0", - "style-loader": "^3.3.0", - "terser-webpack-plugin": "^5.3.0", - "ts-jest": "^29.1.4", - "ts-loader": "^9.4.0", - "tsx": "^4.15.7", - "typescript": "^5.2.2", - "util": "^0.12.0", - "webpack": "^5.88.0", - "webpack-cli": "^5.1.0", - "webpack-dev-server": "^4.15.0" - }, - "browserslist": [ - "last 2 chrome version", - "last 2 firefox version", - "last 2 safari version", - "last 2 edge version" - ], - "dependencies": { - "azle": "0.23.0", - "react": "^17.0.2", - "react-dom": "^17.0.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/package.json b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/package.json deleted file mode 100644 index b91137a364..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/threshold_ecdsa/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "threshold_ecdsa_end_to_end_test_functional_syntax", - "scripts": { - "pre_tests": "tsx test/pretest.ts", - "tests": "npm run pre_tests && jest", - "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" - }, - "dependencies": { - "azle": "0.23.0", - "encode-utf8": "2.0.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/package.json b/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/package.json deleted file mode 100644 index a163c8d4c5..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/motoko_examples/whoami/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "whoami_end_to_end_test_functional_syntax", - "scripts": { - "pre_tests": "tsx test/pretest.ts", - "tests": "npm run pre_tests && jest", - "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "@dfinity/identity": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/notify_raw/package.json b/tests/end_to_end/candid_rpc/functional_syntax/notify_raw/package.json deleted file mode 100644 index c15bfc2f1d..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/notify_raw/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "notify_raw_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/null_example/package.json b/tests/end_to_end/candid_rpc/functional_syntax/null_example/package.json deleted file mode 100644 index d2cd5d4bf3..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/null_example/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "null_example_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/optional_types/package.json b/tests/end_to_end/candid_rpc/functional_syntax/optional_types/package.json deleted file mode 100644 index 31b71e1596..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/optional_types/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "optional_types_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "@types/node-fetch": "2.6.1", - "jest": "^29.7.0", - "node-fetch": "2.6.7", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/package.json b/tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/package.json deleted file mode 100644 index fb7f91748c..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/outgoing_http_requests/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "outgoing_http_requests_end_to_end_test_functional_syntax", - "scripts": { - "pre_tests": "tsx test/pretest.ts", - "tests": "npm run pre_tests && jest", - "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "decode-utf8": "1.0.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2", - "utf8-encoder": "1.0.1" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/package.json b/tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/package.json deleted file mode 100644 index 559fede634..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/pre_and_post_upgrade/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "pre_and_post_upgrade_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/primitive_types/package.json b/tests/end_to_end/candid_rpc/functional_syntax/primitive_types/package.json deleted file mode 100644 index 3ebe29f126..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/primitive_types/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "primitive_types_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/principal/package.json b/tests/end_to_end/candid_rpc/functional_syntax/principal/package.json deleted file mode 100644 index f05f00e0c1..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/principal/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "principal_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/query/package-lock.json b/tests/end_to_end/candid_rpc/functional_syntax/query/package-lock.json deleted file mode 100644 index eab164dfd9..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/query/package-lock.json +++ /dev/null @@ -1,11018 +0,0 @@ -{ - "name": "query_end_to_end_test_functional_syntax", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "query_end_to_end_test_functional_syntax", - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } - }, - "node_modules/@adraffy/ens-normalize": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", - "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@ampproject/remapping/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", - "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", - "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helpers": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.24.7", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", - "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", - "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", - "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", - "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", - "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", - "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", - "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", - "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@dfinity/agent": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-0.19.2.tgz", - "integrity": "sha512-KLRWEjeU9SyyaS7IBVJ9ZUcufxufr55e/kRIyClK157+0pkTG9a8xKjUIMx3QzKvLsqqzXL238nWwdoP6jAD8g==", - "dev": true, - "dependencies": { - "@noble/hashes": "^1.3.1", - "base64-arraybuffer": "^0.2.0", - "borc": "^2.1.1", - "simple-cbor": "^0.4.1" - }, - "peerDependencies": { - "@dfinity/candid": "^0.19.2", - "@dfinity/principal": "^0.19.2" - } - }, - "node_modules/@dfinity/candid": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-0.19.3.tgz", - "integrity": "sha512-yXfbLSWTeRd4G0bLLxYoDqpXH3Jim0P+1PPZOoktXNC1X1hB+ea3yrZebX75t4GVoQK7123F7mxWHiPjuV2tQQ==", - "dev": true, - "peer": true, - "peerDependencies": { - "@dfinity/principal": "^0.19.3" - } - }, - "node_modules/@dfinity/identity-secp256k1": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/identity-secp256k1/-/identity-secp256k1-1.2.0.tgz", - "integrity": "sha512-QAsVycTLY0HH5OS/Ub8G0A70WZb9nkJR9fzZywUIAKpFRY8ZXHiXrT/ifM6AqY9L/83l/ywrwuSKbHVngshpkw==", - "dependencies": { - "@dfinity/agent": "^1.2.0", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.3.1", - "asn1js": "^3.0.5", - "bip39": "^3.1.0", - "bs58check": "^3.0.1", - "hdkey": "^2.1.0" - } - }, - "node_modules/@dfinity/identity-secp256k1/node_modules/@dfinity/agent": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.2.0.tgz", - "integrity": "sha512-i9mH0PO73nrhLc9lZv14SWr4muyMcs6uqqlG2SHQtRUFRXbqj4DOhKsU0Sm+kC8eWYCSu65WPKPYwwAR7YM6ug==", - "dependencies": { - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.3.1", - "base64-arraybuffer": "^0.2.0", - "borc": "^2.1.1", - "buffer": "^6.0.3", - "simple-cbor": "^0.4.1" - }, - "peerDependencies": { - "@dfinity/candid": "^1.2.0", - "@dfinity/principal": "^1.2.0" - } - }, - "node_modules/@dfinity/identity-secp256k1/node_modules/@dfinity/candid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.2.0.tgz", - "integrity": "sha512-L6gV3ODIFC9qNenq3zuRvHrTwH36IM5utVH2wMS5f5eIUeG9fNe+avYLRPBUJwdeX7cM7xhvDgE/m/aN2cZvKQ==", - "peer": true, - "peerDependencies": { - "@dfinity/principal": "^1.2.0" - } - }, - "node_modules/@dfinity/identity-secp256k1/node_modules/@dfinity/principal": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.2.0.tgz", - "integrity": "sha512-7eurqPDL5ptlTTLMJPeiO75FAumXHsWEWDVQaN6XpA3aZtmofNK4Sb5g5Ne9syeuoCJcW3mFBbbFtFNxggxu+g==", - "peer": true, - "dependencies": { - "@noble/hashes": "^1.3.1" - } - }, - "node_modules/@dfinity/identity-secp256k1/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/@dfinity/principal": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-0.19.3.tgz", - "integrity": "sha512-+nixVvdGt7ECxRvLXDXsvU9q9sSPssBtDQ4bXa149SK6gcYcmZ6lfWIi3DJNqj3tGROxILVBsguel9tECappsA==", - "dev": true, - "peer": true, - "dependencies": { - "@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" - ], - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", - "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", - "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", - "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", - "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", - "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", - "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", - "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", - "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", - "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", - "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", - "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", - "cpu": [ - "loong64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", - "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", - "cpu": [ - "mips64el" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", - "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", - "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", - "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", - "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", - "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", - "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", - "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", - "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", - "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", - "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", - "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dev": true, - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "dev": true, - "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dev": true, - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, - "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "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" - } - }, - "node_modules/@noble/curves": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.0.tgz", - "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", - "dependencies": { - "@noble/hashes": "1.4.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/curves/node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/hashes": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@swc/core": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.91.tgz", - "integrity": "sha512-r950d0fdlZ8qbSDyvApn3HyCojiZE8xpgJzQvypeMi32dalYwugdJKWyLB55JIGMRGJ8+lmVvY4MPGkSR3kXgA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "peer": true, - "dependencies": { - "@swc/counter": "^0.1.1", - "@swc/types": "^0.1.5" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.3.91", - "@swc/core-darwin-x64": "1.3.91", - "@swc/core-linux-arm-gnueabihf": "1.3.91", - "@swc/core-linux-arm64-gnu": "1.3.91", - "@swc/core-linux-arm64-musl": "1.3.91", - "@swc/core-linux-x64-gnu": "1.3.91", - "@swc/core-linux-x64-musl": "1.3.91", - "@swc/core-win32-arm64-msvc": "1.3.91", - "@swc/core-win32-ia32-msvc": "1.3.91", - "@swc/core-win32-x64-msvc": "1.3.91" - }, - "peerDependencies": { - "@swc/helpers": "^0.5.0" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.91.tgz", - "integrity": "sha512-7kHGiQ1he5khcEeJuHDmLZPM3rRL/ith5OTmV6bOPsoHi46kLeixORW+ts1opC3tC9vu6xbk16xgX0QAJchc1w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.91.tgz", - "integrity": "sha512-8SpU18FbFpZDVzsHsAwdI1thF/picQGxq9UFxa8W+T9SDnbsqwFJv/6RqKJeJoDV6qFdl2OLjuO0OL7xrp0qnQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.91.tgz", - "integrity": "sha512-fOq4Cy8UbwX1yf0WB0d8hWZaIKCnPtPGguRqdXGLfwvhjZ9SIErT6PnmGTGRbQCNCIkOZWHKyTU0r8t2dN3haQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.91.tgz", - "integrity": "sha512-fki4ioRP/Esy4vdp8T34RCV+V9dqkRmOt763pf74pdiyFV2dPLXa5lnw/XvR1RTfPGknrYgjEQLCfZlReTryRw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.91.tgz", - "integrity": "sha512-XrG+DUUqNtfVLcJ20imby7fpBwQNG5VsEQBzQndSonPyUOa2YkTbBb60YDondfQGDABopuHH8gHN8o2H2/VCnQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.91.tgz", - "integrity": "sha512-d11bYhX+YPBr/Frcjc6eVn3C0LuS/9U1Li9EmQ+6s9EpYtYRl2ygSlC8eueLbaiazBnCVYFnc8bU4o0kc5B9sw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.91.tgz", - "integrity": "sha512-2SRp5Dke2P4jCQePkDx9trkkTstnRpZJVw5r3jvYdk0zeO6iC4+ZPvvoWXJLigqQv/fZnIiSUfJ6ssOoaEqTzQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.91.tgz", - "integrity": "sha512-l9qKXikOxj42UIjbeZpz9xtBmr736jOMqInNP8mVF2/U+ws5sI8zJjcOFFtfis4ru7vWCXhB1wtltdlJYO2vGA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.91.tgz", - "integrity": "sha512-+s+52O0QVPmzOgjEe/rcb0AK6q/J7EHKwAyJCu/FaYO9df5ovE0HJjSKP6HAF0dGPO5hkENrXuNGujofUH9vtQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.91.tgz", - "integrity": "sha512-7u9HDQhjUC3Gv43EFW84dZtduWCSa4MgltK+Sp9zEGti6WXqDPu/ESjvDsQEVYTBEMEvZs/xVAXPgLVHorV5nQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.2.tgz", - "integrity": "sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@swc/types": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", - "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/node": { - "version": "18.15.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", - "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true - }, - "node_modules/@types/uuid": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.4.tgz", - "integrity": "sha512-zAuJWQflfx6dYJM62vna+Sn5aeSWhh3OB+wfUEACNcqUSc0AGc5JKl+ycL1vrH7frGTXhJchYjE1Hak8L819dA==" - }, - "node_modules/@types/validator": { - "version": "13.11.10", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.10.tgz", - "integrity": "sha512-e2PNXoXLr6Z+dbfx5zSh9TRlXJrELycxiaXznp4S5+D2M3b9bqJEitNHA5923jhnB2zzFiZHa2f0SI1HoIahpg==" - }, - "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/aes-js": { - "version": "4.0.0-beta.5", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", - "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/asn1js": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", - "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", - "dependencies": { - "pvtsutils": "^1.3.2", - "pvutils": "^1.1.3", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/azle": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/azle/-/azle-0.23.0.tgz", - "integrity": "sha512-BRp0YAe/mtLCWVZDDl5IUbCLFb2fWi2NnKLHTUC0+EmZu59kVAR7AT7DY/oMvYVYVqxGlw9eqOIzhqB1msChWQ==", - "hasInstallScript": true, - "dependencies": { - "@dfinity/agent": "^1.1.0", - "@dfinity/identity-secp256k1": "^1.1.0", - "@types/uuid": "^9.0.4", - "binaryen": "^116.0.0", - "buffer": "^6.0.3", - "chokidar": "^3.6.0", - "class-transformer": "^0.5.1", - "class-validator": "^0.14.1", - "crypto-browserify": "^3.12.0", - "deep-is": "^0.1.4", - "esbuild": "^0.23.0", - "esbuild-plugin-tsc": "^0.4.0", - "ethers": "6.11.1", - "fs-extra": "^11.2.0", - "glob": "^10.3.15", - "hash-of-directory": "^1.0.1", - "http-message-parser": "^0.0.34", - "intl": "^1.2.5", - "js-sha256": "0.9.0", - "net": "^1.0.2", - "pako": "^2.1.0", - "reflect-metadata": "^0.2.2", - "repl": "^0.1.3", - "text-encoding": "0.7.0", - "tsx": "^4.15.7", - "typescript": "^5.2.2", - "uuid": "^9.0.1" - }, - "bin": { - "azle": "src/compiler/index.ts" - } - }, - "node_modules/azle/node_modules/@dfinity/agent": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.2.0.tgz", - "integrity": "sha512-i9mH0PO73nrhLc9lZv14SWr4muyMcs6uqqlG2SHQtRUFRXbqj4DOhKsU0Sm+kC8eWYCSu65WPKPYwwAR7YM6ug==", - "dependencies": { - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.3.1", - "base64-arraybuffer": "^0.2.0", - "borc": "^2.1.1", - "buffer": "^6.0.3", - "simple-cbor": "^0.4.1" - }, - "peerDependencies": { - "@dfinity/candid": "^1.2.0", - "@dfinity/principal": "^1.2.0" - } - }, - "node_modules/azle/node_modules/@dfinity/candid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.2.0.tgz", - "integrity": "sha512-L6gV3ODIFC9qNenq3zuRvHrTwH36IM5utVH2wMS5f5eIUeG9fNe+avYLRPBUJwdeX7cM7xhvDgE/m/aN2cZvKQ==", - "peer": true, - "peerDependencies": { - "@dfinity/principal": "^1.2.0" - } - }, - "node_modules/azle/node_modules/@dfinity/principal": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.2.0.tgz", - "integrity": "sha512-7eurqPDL5ptlTTLMJPeiO75FAumXHsWEWDVQaN6XpA3aZtmofNK4Sb5g5Ne9syeuoCJcW3mFBbbFtFNxggxu+g==", - "peer": true, - "dependencies": { - "@noble/hashes": "^1.3.1" - } - }, - "node_modules/azle/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/azle/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/azle/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/azle/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dev": true, - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" - }, - "node_modules/base64-arraybuffer": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", - "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/binaryen": { - "version": "116.0.0", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0.tgz", - "integrity": "sha512-Hp0dXC6Cb/rTwWEoUS2BRghObE7g/S9umKtxuTDt3f61G6fNTE/YVew/ezyy3IdHcLx3f17qfh6LwETgCfvWkQ==", - "bin": { - "wasm-opt": "bin/wasm-opt", - "wasm2js": "bin/wasm2js" - } - }, - "node_modules/bip39": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", - "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", - "dependencies": { - "@noble/hashes": "^1.2.0" - } - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/borc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", - "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", - "dependencies": { - "bignumber.js": "^9.0.0", - "buffer": "^5.5.0", - "commander": "^2.15.0", - "ieee754": "^1.1.13", - "iso-url": "~0.4.7", - "json-text-sequence": "~0.1.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", - "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", - "dependencies": { - "bn.js": "^5.2.1", - "browserify-rsa": "^4.1.0", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.4", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.6", - "readable-stream": "^3.6.2", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/browserslist": { - "version": "4.23.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", - "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001629", - "electron-to-chromium": "^1.4.796", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.16" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", - "dependencies": { - "base-x": "^4.0.0" - } - }, - "node_modules/bs58check": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz", - "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==", - "dependencies": { - "@noble/hashes": "^1.2.0", - "bs58": "^5.0.0" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001633", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001633.tgz", - "integrity": "sha512-6sT0yf/z5jqf8tISAgpJDrmwOpLsrpnyCdD/lOZKvKkkJK4Dn0X5i7KF7THEZhOq+30bmhwBlNEaqPUiHiKtZg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", - "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", - "dev": true - }, - "node_modules/class-transformer": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", - "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==" - }, - "node_modules/class-validator": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.1.tgz", - "integrity": "sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==", - "dependencies": { - "@types/validator": "^13.11.8", - "libphonenumber-js": "^1.10.53", - "validator": "^13.9.0" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "optional": true, - "peer": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/dedent": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", - "dev": true, - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delimit-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", - "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=" - }, - "node_modules/des.js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.802", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.802.tgz", - "integrity": "sha512-TnTMUATbgNdPXVSHsxvNVSG0uEd6cSZsANjm8c9HbvflZVVn1yTRcmVXYT1Ma95/ssB/Dcd30AHweH2TE+dNpA==", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/esbuild": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", - "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.23.0", - "@esbuild/android-arm": "0.23.0", - "@esbuild/android-arm64": "0.23.0", - "@esbuild/android-x64": "0.23.0", - "@esbuild/darwin-arm64": "0.23.0", - "@esbuild/darwin-x64": "0.23.0", - "@esbuild/freebsd-arm64": "0.23.0", - "@esbuild/freebsd-x64": "0.23.0", - "@esbuild/linux-arm": "0.23.0", - "@esbuild/linux-arm64": "0.23.0", - "@esbuild/linux-ia32": "0.23.0", - "@esbuild/linux-loong64": "0.23.0", - "@esbuild/linux-mips64el": "0.23.0", - "@esbuild/linux-ppc64": "0.23.0", - "@esbuild/linux-riscv64": "0.23.0", - "@esbuild/linux-s390x": "0.23.0", - "@esbuild/linux-x64": "0.23.0", - "@esbuild/netbsd-x64": "0.23.0", - "@esbuild/openbsd-arm64": "0.23.0", - "@esbuild/openbsd-x64": "0.23.0", - "@esbuild/sunos-x64": "0.23.0", - "@esbuild/win32-arm64": "0.23.0", - "@esbuild/win32-ia32": "0.23.0", - "@esbuild/win32-x64": "0.23.0" - } - }, - "node_modules/esbuild-plugin-tsc": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/esbuild-plugin-tsc/-/esbuild-plugin-tsc-0.4.0.tgz", - "integrity": "sha512-q9gWIovt1nkwchMLc2zhyksaiHOv3kDK4b0AUol8lkMCRhJ1zavgfb2fad6BKp7FT9rh/OHmEBXVjczLoi/0yw==", - "dependencies": { - "strip-comments": "^2.0.1" - }, - "peerDependencies": { - "typescript": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/esbuild/node_modules/@esbuild/aix-ppc64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", - "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ethers": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.11.1.tgz", - "integrity": "sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/ethers-io/" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@adraffy/ens-normalize": "1.10.1", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@types/node": "18.15.13", - "aes-js": "4.0.0-beta.5", - "tslib": "2.4.0", - "ws": "8.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/ethers/node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", - "dependencies": { - "@noble/hashes": "1.3.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ethers/node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ethers/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dev": true, - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/foreground-child": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-prop": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/get-prop/-/get-prop-0.0.10.tgz", - "integrity": "sha512-XRSGBgcIisSMLJ/dwe1y/eMm9yzLicEJKmEXA3ArBkDkCW2nyRroLOoKIz+SdxuG5SI7ym2QHaTU5ifCl7MTDg==" - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "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==", - "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", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-of-directory": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hash-of-directory/-/hash-of-directory-1.0.1.tgz", - "integrity": "sha512-PX6VaxD6JK8R4113ChdTtEnWIo2XA9mz4yrtGBuUGUKtWCj6iWWYj/qwjdfs3Zgm+FdiNj0Vmt4VwPlwxx8WHw==" - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hdkey": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz", - "integrity": "sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA==", - "dependencies": { - "bs58check": "^2.1.2", - "ripemd160": "^2.0.2", - "safe-buffer": "^5.1.1", - "secp256k1": "^4.0.0" - } - }, - "node_modules/hdkey/node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/hdkey/node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/hdkey/node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-message-parser": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/http-message-parser/-/http-message-parser-0.0.34.tgz", - "integrity": "sha512-KABKXT347AYvQoaMZg9/K+/GqW6gfB4pKCiTyMUYnosfkdkaBkrXE/cWGSLk5jvD5tiDeLFlYSHLhhPhQKbRrA==", - "dependencies": { - "buffer": "^4.9.1", - "concat-stream": "^1.5.1", - "get-prop": "0.0.10", - "minimist": "^1.2.0", - "stream-buffers": "^3.0.0" - }, - "bin": { - "http-message-parser": "bin/http-message-parser.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/http-message-parser/node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/intl": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", - "integrity": "sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==" - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/iso-url": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", - "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==", - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", - "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dev": true, - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dev": true, - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dev": true, - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "dev": true, - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "dev": true, - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-text-sequence": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", - "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", - "dependencies": { - "delimit-stream": "0.1.0" - } - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/libphonenumber-js": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.11.3.tgz", - "integrity": "sha512-RU0CTsLCu2v6VEzdP+W6UU2n5+jEpMDRkGxUeBgsAJgre3vKgm17eApISH9OQY4G0jZYJVIc8qXmz6CJFueAFg==" - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", - "dev": true, - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/net": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/net/-/net-1.0.2.tgz", - "integrity": "sha512-kbhcj2SVVR4caaVnGLJKmlk2+f+oLkjqdKeQlmUtz6nGzOpbcobwVIeSURNgraV/v3tlmGIX82OcPCl0K6RbHQ==" - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node_modules/node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" - }, - "node_modules/pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/pure-rand": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] - }, - "node_modules/pvtsutils": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", - "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", - "dependencies": { - "tslib": "^2.6.1" - } - }, - "node_modules/pvutils": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", - "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/reflect-metadata": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", - "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" - }, - "node_modules/repl": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/repl/-/repl-0.1.3.tgz", - "integrity": "sha512-C3ZEHaX28+EvM9lPiXl9ruN2g5M5sUvyCIDvZ0M4VCusfA1Cn0+z3tJcQl/lvxPsBm82q4hKHKebPlE3SEhFKg==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "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==", - "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", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/simple-cbor": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/simple-cbor/-/simple-cbor-0.4.1.tgz", - "integrity": "sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w==" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stream-buffers": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz", - "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==", - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-encoding": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz", - "integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==", - "deprecated": "no longer maintained" - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-jest": { - "version": "29.1.4", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.4.tgz", - "integrity": "sha512-YiHwDhSvCiItoAgsKtoLFCuakDzDsJ1DLDnSouTaTmdOcOwIkSzbLXduaQ6M5DRVhuZC/NYaaZ/mtHbWMv/S6Q==", - "dev": true, - "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "^7.5.3", - "yargs-parser": "^21.0.1" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/transform": "^29.0.0", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", - "typescript": ">=4.3 <6" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@jest/transform": { - "optional": true - }, - "@jest/types": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-node": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.0.tgz", - "integrity": "sha512-bunW18GUyaCSYRev4DPf4SQpom3pWH29wKl0sDk5zE7ze19RImEVhCW7K4v3hHKkUyfWotU08ToE2RS+Y49aug==", - "dev": true, - "optional": true, - "peer": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "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" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/tslib": { - "version": "2.6.2", - "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==", - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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" - ], - "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==", - "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", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, - "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/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", - "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "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, - "optional": true, - "peer": true - }, - "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/validator": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", - "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@adraffy/ens-normalize": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", - "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" - }, - "@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - } - } - }, - "@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" - } - }, - "@babel/compat-data": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", - "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", - "dev": true - }, - "@babel/core": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", - "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helpers": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/template": "^7.24.7", - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - } - }, - "@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", - "dev": true, - "requires": { - "@babel/types": "^7.24.7", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", - "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", - "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", - "dev": true, - "requires": { - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-function-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", - "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", - "dev": true, - "requires": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", - "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", - "dev": true, - "requires": { - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", - "dev": true, - "requires": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-module-transforms": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", - "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", - "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", - "dev": true - }, - "@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", - "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", - "dev": true, - "requires": { - "@babel/types": "^7.24.7" - } - }, - "@babel/helper-string-parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", - "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", - "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", - "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", - "dev": true, - "requires": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", - "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.7" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", - "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.7" - } - }, - "@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" - } - }, - "@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", - "debug": "^4.3.1", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", - "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@dfinity/agent": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-0.19.2.tgz", - "integrity": "sha512-KLRWEjeU9SyyaS7IBVJ9ZUcufxufr55e/kRIyClK157+0pkTG9a8xKjUIMx3QzKvLsqqzXL238nWwdoP6jAD8g==", - "dev": true, - "requires": { - "@noble/hashes": "^1.3.1", - "base64-arraybuffer": "^0.2.0", - "borc": "^2.1.1", - "simple-cbor": "^0.4.1" - } - }, - "@dfinity/candid": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-0.19.3.tgz", - "integrity": "sha512-yXfbLSWTeRd4G0bLLxYoDqpXH3Jim0P+1PPZOoktXNC1X1hB+ea3yrZebX75t4GVoQK7123F7mxWHiPjuV2tQQ==", - "dev": true, - "peer": true, - "requires": {} - }, - "@dfinity/identity-secp256k1": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/identity-secp256k1/-/identity-secp256k1-1.2.0.tgz", - "integrity": "sha512-QAsVycTLY0HH5OS/Ub8G0A70WZb9nkJR9fzZywUIAKpFRY8ZXHiXrT/ifM6AqY9L/83l/ywrwuSKbHVngshpkw==", - "requires": { - "@dfinity/agent": "^1.2.0", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.3.1", - "asn1js": "^3.0.5", - "bip39": "^3.1.0", - "bs58check": "^3.0.1", - "hdkey": "^2.1.0" - }, - "dependencies": { - "@dfinity/agent": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.2.0.tgz", - "integrity": "sha512-i9mH0PO73nrhLc9lZv14SWr4muyMcs6uqqlG2SHQtRUFRXbqj4DOhKsU0Sm+kC8eWYCSu65WPKPYwwAR7YM6ug==", - "requires": { - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.3.1", - "base64-arraybuffer": "^0.2.0", - "borc": "^2.1.1", - "buffer": "^6.0.3", - "simple-cbor": "^0.4.1" - } - }, - "@dfinity/candid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.2.0.tgz", - "integrity": "sha512-L6gV3ODIFC9qNenq3zuRvHrTwH36IM5utVH2wMS5f5eIUeG9fNe+avYLRPBUJwdeX7cM7xhvDgE/m/aN2cZvKQ==", - "peer": true, - "requires": {} - }, - "@dfinity/principal": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.2.0.tgz", - "integrity": "sha512-7eurqPDL5ptlTTLMJPeiO75FAumXHsWEWDVQaN6XpA3aZtmofNK4Sb5g5Ne9syeuoCJcW3mFBbbFtFNxggxu+g==", - "peer": true, - "requires": { - "@noble/hashes": "^1.3.1" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - } - } - }, - "@dfinity/principal": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-0.19.3.tgz", - "integrity": "sha512-+nixVvdGt7ECxRvLXDXsvU9q9sSPssBtDQ4bXa149SK6gcYcmZ6lfWIi3DJNqj3tGROxILVBsguel9tECappsA==", - "dev": true, - "peer": true, - "requires": { - "@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==", - "optional": true - }, - "@esbuild/android-arm": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", - "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", - "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", - "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", - "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", - "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", - "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", - "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", - "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", - "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", - "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", - "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", - "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", - "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", - "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", - "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", - "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", - "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", - "optional": true - }, - "@esbuild/openbsd-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", - "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", - "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", - "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", - "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", - "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", - "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", - "optional": true - }, - "@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "requires": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - } - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dev": true, - "requires": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "dev": true, - "requires": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - } - }, - "@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "dev": true, - "requires": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - } - }, - "@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dev": true, - "requires": { - "jest-get-type": "^29.6.3" - } - }, - "@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - } - }, - "@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dev": true, - "requires": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - } - }, - "@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - } - } - }, - "@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.27.8" - } - }, - "@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - } - } - }, - "@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dev": true, - "requires": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dev": true, - "requires": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - } - }, - "@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - } - } - }, - "@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dev": true, - "requires": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - } - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "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" - } - }, - "@noble/curves": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.0.tgz", - "integrity": "sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg==", - "requires": { - "@noble/hashes": "1.4.0" - }, - "dependencies": { - "@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" - } - } - }, - "@noble/hashes": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", - "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==" - }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true - }, - "@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "requires": { - "@sinonjs/commons": "^3.0.0" - } - }, - "@swc/core": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.91.tgz", - "integrity": "sha512-r950d0fdlZ8qbSDyvApn3HyCojiZE8xpgJzQvypeMi32dalYwugdJKWyLB55JIGMRGJ8+lmVvY4MPGkSR3kXgA==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@swc/core-darwin-arm64": "1.3.91", - "@swc/core-darwin-x64": "1.3.91", - "@swc/core-linux-arm-gnueabihf": "1.3.91", - "@swc/core-linux-arm64-gnu": "1.3.91", - "@swc/core-linux-arm64-musl": "1.3.91", - "@swc/core-linux-x64-gnu": "1.3.91", - "@swc/core-linux-x64-musl": "1.3.91", - "@swc/core-win32-arm64-msvc": "1.3.91", - "@swc/core-win32-ia32-msvc": "1.3.91", - "@swc/core-win32-x64-msvc": "1.3.91", - "@swc/counter": "^0.1.1", - "@swc/types": "^0.1.5" - } - }, - "@swc/core-darwin-arm64": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.91.tgz", - "integrity": "sha512-7kHGiQ1he5khcEeJuHDmLZPM3rRL/ith5OTmV6bOPsoHi46kLeixORW+ts1opC3tC9vu6xbk16xgX0QAJchc1w==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/core-darwin-x64": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.91.tgz", - "integrity": "sha512-8SpU18FbFpZDVzsHsAwdI1thF/picQGxq9UFxa8W+T9SDnbsqwFJv/6RqKJeJoDV6qFdl2OLjuO0OL7xrp0qnQ==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/core-linux-arm-gnueabihf": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.91.tgz", - "integrity": "sha512-fOq4Cy8UbwX1yf0WB0d8hWZaIKCnPtPGguRqdXGLfwvhjZ9SIErT6PnmGTGRbQCNCIkOZWHKyTU0r8t2dN3haQ==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/core-linux-arm64-gnu": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.91.tgz", - "integrity": "sha512-fki4ioRP/Esy4vdp8T34RCV+V9dqkRmOt763pf74pdiyFV2dPLXa5lnw/XvR1RTfPGknrYgjEQLCfZlReTryRw==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/core-linux-arm64-musl": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.91.tgz", - "integrity": "sha512-XrG+DUUqNtfVLcJ20imby7fpBwQNG5VsEQBzQndSonPyUOa2YkTbBb60YDondfQGDABopuHH8gHN8o2H2/VCnQ==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/core-linux-x64-gnu": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.91.tgz", - "integrity": "sha512-d11bYhX+YPBr/Frcjc6eVn3C0LuS/9U1Li9EmQ+6s9EpYtYRl2ygSlC8eueLbaiazBnCVYFnc8bU4o0kc5B9sw==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/core-linux-x64-musl": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.91.tgz", - "integrity": "sha512-2SRp5Dke2P4jCQePkDx9trkkTstnRpZJVw5r3jvYdk0zeO6iC4+ZPvvoWXJLigqQv/fZnIiSUfJ6ssOoaEqTzQ==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/core-win32-arm64-msvc": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.91.tgz", - "integrity": "sha512-l9qKXikOxj42UIjbeZpz9xtBmr736jOMqInNP8mVF2/U+ws5sI8zJjcOFFtfis4ru7vWCXhB1wtltdlJYO2vGA==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/core-win32-ia32-msvc": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.91.tgz", - "integrity": "sha512-+s+52O0QVPmzOgjEe/rcb0AK6q/J7EHKwAyJCu/FaYO9df5ovE0HJjSKP6HAF0dGPO5hkENrXuNGujofUH9vtQ==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/core-win32-x64-msvc": { - "version": "1.3.91", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.91.tgz", - "integrity": "sha512-7u9HDQhjUC3Gv43EFW84dZtduWCSa4MgltK+Sp9zEGti6WXqDPu/ESjvDsQEVYTBEMEvZs/xVAXPgLVHorV5nQ==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/counter": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.2.tgz", - "integrity": "sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw==", - "dev": true, - "optional": true, - "peer": true - }, - "@swc/types": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", - "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", - "dev": true, - "optional": true, - "peer": true - }, - "@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true, - "optional": true, - "peer": true - }, - "@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true, - "optional": true, - "peer": true - }, - "@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true, - "optional": true, - "peer": true - }, - "@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true, - "optional": true, - "peer": true - }, - "@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dev": true, - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", - "dev": true, - "requires": { - "@babel/types": "^7.20.7" - } - }, - "@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/node": { - "version": "18.15.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", - "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" - }, - "@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true - }, - "@types/uuid": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.4.tgz", - "integrity": "sha512-zAuJWQflfx6dYJM62vna+Sn5aeSWhh3OB+wfUEACNcqUSc0AGc5JKl+ycL1vrH7frGTXhJchYjE1Hak8L819dA==" - }, - "@types/validator": { - "version": "13.11.10", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.10.tgz", - "integrity": "sha512-e2PNXoXLr6Z+dbfx5zSh9TRlXJrELycxiaXznp4S5+D2M3b9bqJEitNHA5923jhnB2zzFiZHa2f0SI1HoIahpg==" - }, - "@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true - }, - "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "dev": true, - "optional": true, - "peer": true - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "optional": true, - "peer": true - }, - "aes-js": { - "version": "4.0.0-beta.5", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", - "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true, - "optional": true, - "peer": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "asn1js": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", - "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", - "requires": { - "pvtsutils": "^1.3.2", - "pvutils": "^1.1.3", - "tslib": "^2.4.0" - } - }, - "azle": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/azle/-/azle-0.23.0.tgz", - "integrity": "sha512-BRp0YAe/mtLCWVZDDl5IUbCLFb2fWi2NnKLHTUC0+EmZu59kVAR7AT7DY/oMvYVYVqxGlw9eqOIzhqB1msChWQ==", - "requires": { - "@dfinity/agent": "^1.1.0", - "@dfinity/identity-secp256k1": "^1.1.0", - "@types/uuid": "^9.0.4", - "binaryen": "^116.0.0", - "buffer": "^6.0.3", - "chokidar": "^3.6.0", - "class-transformer": "^0.5.1", - "class-validator": "^0.14.1", - "crypto-browserify": "^3.12.0", - "deep-is": "^0.1.4", - "esbuild": "^0.23.0", - "esbuild-plugin-tsc": "^0.4.0", - "ethers": "6.11.1", - "fs-extra": "^11.2.0", - "glob": "^10.3.15", - "hash-of-directory": "^1.0.1", - "http-message-parser": "^0.0.34", - "intl": "^1.2.5", - "js-sha256": "0.9.0", - "net": "^1.0.2", - "pako": "^2.1.0", - "reflect-metadata": "^0.2.2", - "repl": "^0.1.3", - "text-encoding": "0.7.0", - "tsx": "^4.15.7", - "typescript": "^5.2.2", - "uuid": "^9.0.1" - }, - "dependencies": { - "@dfinity/agent": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-1.2.0.tgz", - "integrity": "sha512-i9mH0PO73nrhLc9lZv14SWr4muyMcs6uqqlG2SHQtRUFRXbqj4DOhKsU0Sm+kC8eWYCSu65WPKPYwwAR7YM6ug==", - "requires": { - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.3.1", - "base64-arraybuffer": "^0.2.0", - "borc": "^2.1.1", - "buffer": "^6.0.3", - "simple-cbor": "^0.4.1" - } - }, - "@dfinity/candid": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-1.2.0.tgz", - "integrity": "sha512-L6gV3ODIFC9qNenq3zuRvHrTwH36IM5utVH2wMS5f5eIUeG9fNe+avYLRPBUJwdeX7cM7xhvDgE/m/aN2cZvKQ==", - "peer": true, - "requires": {} - }, - "@dfinity/principal": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-1.2.0.tgz", - "integrity": "sha512-7eurqPDL5ptlTTLMJPeiO75FAumXHsWEWDVQaN6XpA3aZtmofNK4Sb5g5Ne9syeuoCJcW3mFBbbFtFNxggxu+g==", - "peer": true, - "requires": { - "@noble/hashes": "^1.3.1" - } - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - } - }, - "minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dev": true, - "requires": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "dependencies": { - "istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - } - } - }, - "babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" - }, - "base64-arraybuffer": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", - "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bignumber.js": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.2.tgz", - "integrity": "sha512-GAcQvbpsM0pUb0zw1EI0KhQEZ+lRwR5fYaAp3vPOYuP7aDvGy6cVN6XHLauvF8SOga2y0dcLcjt3iQDTSEliyw==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - }, - "binaryen": { - "version": "116.0.0", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0.tgz", - "integrity": "sha512-Hp0dXC6Cb/rTwWEoUS2BRghObE7g/S9umKtxuTDt3f61G6fNTE/YVew/ezyy3IdHcLx3f17qfh6LwETgCfvWkQ==" - }, - "bip39": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", - "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", - "requires": { - "@noble/hashes": "^1.2.0" - } - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "borc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", - "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", - "requires": { - "bignumber.js": "^9.0.0", - "buffer": "^5.5.0", - "commander": "^2.15.0", - "ieee754": "^1.1.13", - "iso-url": "~0.4.7", - "json-text-sequence": "~0.1.0", - "readable-stream": "^3.6.0" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "requires": { - "fill-range": "^7.1.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.2.tgz", - "integrity": "sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==", - "requires": { - "bn.js": "^5.2.1", - "browserify-rsa": "^4.1.0", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.4", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.6", - "readable-stream": "^3.6.2", - "safe-buffer": "^5.2.1" - } - }, - "browserslist": { - "version": "4.23.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", - "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001629", - "electron-to-chromium": "^1.4.796", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.16" - } - }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" - } - }, - "bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", - "requires": { - "base-x": "^4.0.0" - } - }, - "bs58check": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz", - "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==", - "requires": { - "@noble/hashes": "^1.2.0", - "bs58": "^5.0.0" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001633", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001633.tgz", - "integrity": "sha512-6sT0yf/z5jqf8tISAgpJDrmwOpLsrpnyCdD/lOZKvKkkJK4Dn0X5i7KF7THEZhOq+30bmhwBlNEaqPUiHiKtZg==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "cjs-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", - "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", - "dev": true - }, - "class-transformer": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", - "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==" - }, - "class-validator": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.1.tgz", - "integrity": "sha512-2VEG9JICxIqTpoK1eMzZqaV+u/EiwEJkMGzTrZf6sU/fwsnOITVgYJ8yojSy6CaXtO9V0Cc6ZQZ8h8m4UBuLwQ==", - "requires": { - "@types/validator": "^13.11.8", - "libphonenumber-js": "^1.10.53", - "validator": "^13.9.0" - } - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - } - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true, - "optional": true, - "peer": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "dedent": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", - "dev": true, - "requires": {} - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true - }, - "delimit-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", - "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=" - }, - "des.js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "optional": true, - "peer": true - }, - "diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "electron-to-chromium": { - "version": "1.4.802", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.802.tgz", - "integrity": "sha512-TnTMUATbgNdPXVSHsxvNVSG0uEd6cSZsANjm8c9HbvflZVVn1yTRcmVXYT1Ma95/ssB/Dcd30AHweH2TE+dNpA==", - "dev": true - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "esbuild": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", - "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", - "requires": { - "@esbuild/aix-ppc64": "0.23.0", - "@esbuild/android-arm": "0.23.0", - "@esbuild/android-arm64": "0.23.0", - "@esbuild/android-x64": "0.23.0", - "@esbuild/darwin-arm64": "0.23.0", - "@esbuild/darwin-x64": "0.23.0", - "@esbuild/freebsd-arm64": "0.23.0", - "@esbuild/freebsd-x64": "0.23.0", - "@esbuild/linux-arm": "0.23.0", - "@esbuild/linux-arm64": "0.23.0", - "@esbuild/linux-ia32": "0.23.0", - "@esbuild/linux-loong64": "0.23.0", - "@esbuild/linux-mips64el": "0.23.0", - "@esbuild/linux-ppc64": "0.23.0", - "@esbuild/linux-riscv64": "0.23.0", - "@esbuild/linux-s390x": "0.23.0", - "@esbuild/linux-x64": "0.23.0", - "@esbuild/netbsd-x64": "0.23.0", - "@esbuild/openbsd-arm64": "0.23.0", - "@esbuild/openbsd-x64": "0.23.0", - "@esbuild/sunos-x64": "0.23.0", - "@esbuild/win32-arm64": "0.23.0", - "@esbuild/win32-ia32": "0.23.0", - "@esbuild/win32-x64": "0.23.0" - }, - "dependencies": { - "@esbuild/aix-ppc64": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", - "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", - "optional": true - } - } - }, - "esbuild-plugin-tsc": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/esbuild-plugin-tsc/-/esbuild-plugin-tsc-0.4.0.tgz", - "integrity": "sha512-q9gWIovt1nkwchMLc2zhyksaiHOv3kDK4b0AUol8lkMCRhJ1zavgfb2fad6BKp7FT9rh/OHmEBXVjczLoi/0yw==", - "requires": { - "strip-comments": "^2.0.1" - } - }, - "escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "dev": true - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "ethers": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.11.1.tgz", - "integrity": "sha512-mxTAE6wqJQAbp5QAe/+o+rXOID7Nw91OZXvgpjDa1r4fAbq2Nu314oEZSbjoRLacuCzs7kUC3clEvkCQowffGg==", - "requires": { - "@adraffy/ens-normalize": "1.10.1", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@types/node": "18.15.13", - "aes-js": "4.0.0-beta.5", - "tslib": "2.4.0", - "ws": "8.5.0" - }, - "dependencies": { - "@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", - "requires": { - "@noble/hashes": "1.3.2" - } - }, - "@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" - }, - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - } - } - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true - }, - "expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dev": true, - "requires": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "foreground-child": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "dependencies": { - "signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==" - } - } - }, - "fs-extra": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", - "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "optional": true - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-prop": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/get-prop/-/get-prop-0.0.10.tgz", - "integrity": "sha512-XRSGBgcIisSMLJ/dwe1y/eMm9yzLicEJKmEXA3ArBkDkCW2nyRroLOoKIz+SdxuG5SI7ym2QHaTU5ifCl7MTDg==" - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "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==", - "requires": { - "resolve-pkg-maps": "^1.0.0" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash-of-directory": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hash-of-directory/-/hash-of-directory-1.0.1.tgz", - "integrity": "sha512-PX6VaxD6JK8R4113ChdTtEnWIo2XA9mz4yrtGBuUGUKtWCj6iWWYj/qwjdfs3Zgm+FdiNj0Vmt4VwPlwxx8WHw==" - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "requires": { - "function-bind": "^1.1.2" - } - }, - "hdkey": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz", - "integrity": "sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA==", - "requires": { - "bs58check": "^2.1.2", - "ripemd160": "^2.0.2", - "safe-buffer": "^5.1.1", - "secp256k1": "^4.0.0" - }, - "dependencies": { - "base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - } - } - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-message-parser": { - "version": "0.0.34", - "resolved": "https://registry.npmjs.org/http-message-parser/-/http-message-parser-0.0.34.tgz", - "integrity": "sha512-KABKXT347AYvQoaMZg9/K+/GqW6gfB4pKCiTyMUYnosfkdkaBkrXE/cWGSLk5jvD5tiDeLFlYSHLhhPhQKbRrA==", - "requires": { - "buffer": "^4.9.1", - "concat-stream": "^1.5.1", - "get-prop": "0.0.10", - "minimist": "^1.2.0", - "stream-buffers": "^3.0.0" - }, - "dependencies": { - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - } - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "intl": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/intl/-/intl-1.2.5.tgz", - "integrity": "sha512-rK0KcPHeBFBcqsErKSpvZnrOmWOj+EmDkyJ57e90YWaQNqbcivcqmKDlHEeNprDWOsKzPsh1BfSpPQdDvclHVw==" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dev": true, - "requires": { - "hasown": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "iso-url": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", - "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==" - }, - "istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", - "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", - "dev": true, - "requires": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "dependencies": { - "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, - "jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dev": true, - "requires": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - } - }, - "jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dev": true, - "requires": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - } - }, - "jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dev": true, - "requires": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dev": true, - "requires": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - } - }, - "jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - } - }, - "jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - } - }, - "jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - } - }, - "jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, - "requires": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - } - }, - "jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true - }, - "jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - } - }, - "jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, - "requires": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - } - }, - "jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - } - }, - "jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - } - }, - "jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "dev": true - }, - "jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dev": true, - "requires": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - } - }, - "jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "dev": true, - "requires": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - } - }, - "jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dev": true, - "requires": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - } - }, - "jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "dependencies": { - "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true - } - } - }, - "jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "dev": true, - "requires": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "dev": true, - "requires": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dev": true, - "requires": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-text-sequence": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", - "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", - "requires": { - "delimit-stream": "0.1.0" - } - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "libphonenumber-js": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.11.3.tgz", - "integrity": "sha512-RU0CTsLCu2v6VEzdP+W6UU2n5+jEpMDRkGxUeBgsAJgre3vKgm17eApISH9OQY4G0jZYJVIc8qXmz6CJFueAFg==" - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dev": true, - "requires": { - "semver": "^7.5.3" - }, - "dependencies": { - "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true - } - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", - "dev": true, - "requires": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" - }, - "minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "net": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/net/-/net-1.0.2.tgz", - "integrity": "sha512-kbhcj2SVVR4caaVnGLJKmlk2+f+oLkjqdKeQlmUtz6nGzOpbcobwVIeSURNgraV/v3tlmGIX82OcPCl0K6RbHQ==" - }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node-gyp-build": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.0.tgz", - "integrity": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==" - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" - }, - "pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "requires": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" - } - } - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "requires": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "pure-rand": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", - "dev": true - }, - "pvtsutils": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.5.tgz", - "integrity": "sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==", - "requires": { - "tslib": "^2.6.1" - } - }, - "pvutils": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", - "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==" - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "requires": { - "picomatch": "^2.2.1" - } - }, - "reflect-metadata": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", - "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==" - }, - "repl": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/repl/-/repl-0.1.3.tgz", - "integrity": "sha512-C3ZEHaX28+EvM9lPiXl9ruN2g5M5sUvyCIDvZ0M4VCusfA1Cn0+z3tJcQl/lvxPsBm82q4hKHKebPlE3SEhFKg==" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dev": true, - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "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==" - }, - "resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "simple-cbor": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/simple-cbor/-/simple-cbor-0.4.1.tgz", - "integrity": "sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w==" - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - } - }, - "stream-buffers": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-3.0.2.tgz", - "integrity": "sha512-DQi1h8VEBA/lURbSwFtEHnSTb9s2/pwLEaFuNhXwy1Dx3Sa0lOuYT2yNUr4/j2fs8oCAMANtrZ5OrPZtyVs3MQ==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", - "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==" - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-encoding": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.7.0.tgz", - "integrity": "sha512-oJQ3f1hrOnbRLOcwKz0Liq2IcrvDeZRHXhd9RgLrsT+DjWY/nty1Hi7v3dtkaEYbPYe0mUoOfzRrMwfXXwgPUA==" - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "ts-jest": { - "version": "29.1.4", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.4.tgz", - "integrity": "sha512-YiHwDhSvCiItoAgsKtoLFCuakDzDsJ1DLDnSouTaTmdOcOwIkSzbLXduaQ6M5DRVhuZC/NYaaZ/mtHbWMv/S6Q==", - "dev": true, - "requires": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "^7.5.3", - "yargs-parser": "^21.0.1" - }, - "dependencies": { - "semver": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", - "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", - "dev": true - } - } - }, - "ts-node": { - "version": "10.9.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.0.tgz", - "integrity": "sha512-bunW18GUyaCSYRev4DPf4SQpom3pWH29wKl0sDk5zE7ze19RImEVhCW7K4v3hHKkUyfWotU08ToE2RS+Y49aug==", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "dependencies": { - "@cspotcode/source-map-support": { - "version": "0.8.1", - "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" - } - } - } - }, - "tslib": { - "version": "2.6.2", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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==", - "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", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, - "typescript": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", - "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==" - }, - "universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" - }, - "update-browserslist-db": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", - "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", - "dev": true, - "requires": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" - }, - "v8-compile-cache-lib": { - "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, - "optional": true, - "peer": true - }, - "v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - } - } - }, - "validator": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.12.0.tgz", - "integrity": "sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==" - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - }, - "ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "requires": {} - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "optional": true, - "peer": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/query/package.json b/tests/end_to_end/candid_rpc/functional_syntax/query/package.json deleted file mode 100644 index 95a6e96c7a..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/query/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "query_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.4", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/randomness/package.json b/tests/end_to_end/candid_rpc/functional_syntax/randomness/package.json deleted file mode 100644 index d1f3d3e2d5..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/randomness/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "randomness_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/recursion/package.json b/tests/end_to_end/candid_rpc/functional_syntax/recursion/package.json deleted file mode 100644 index cd094a6e2e..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/recursion/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "recursion_end_to_end_test_functional_syntax", - "scripts": { - "pre_tests": "tsx test/pretest.ts", - "tests": "npm run pre_tests && jest", - "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/rejections/package.json b/tests/end_to_end/candid_rpc/functional_syntax/rejections/package.json deleted file mode 100644 index 8193a69152..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/rejections/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "rejections_end_to_end_test_functional_syntax", - "scripts": { - "pre_tests": "tsx test/pretest.ts", - "tests": "npm run pre_tests && jest", - "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/package.json b/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/package.json deleted file mode 100644 index 8ed5ad19db..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/robust_imports/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "robust_imports_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.18.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/package.json b/tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/package.json deleted file mode 100644 index d0bc47fb29..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/simple_erc20/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "simple_erc20_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/package.json b/tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/package.json deleted file mode 100644 index 6b3f0112ba..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/simple_user_accounts/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "simple_user_accounts_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0", - "text-encoding": "^0.7.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/package.json b/tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/package.json deleted file mode 100644 index 721098cd65..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/stable_b_tree_map_instruction_threshold/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "stable_b_tree_map_instruction_threshold_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0", - "uuid": "^9.0.1" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/package.json b/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/package.json deleted file mode 100644 index 64cdda1fd3..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/stable_structures/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "stable_structures_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/timers/package.json b/tests/end_to_end/candid_rpc/functional_syntax/timers/package.json deleted file mode 100644 index 65d662ceea..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/timers/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "timers_end_to_end_test_functional_syntax", - "scripts": { - "pre_tests": "tsx test/pretest.ts", - "tests": "npm run pre_tests && jest", - "test": "AZLE_TEST_FETCH=false npm run tests && AZLE_TEST_FETCH=true npm run tests" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/tuple_types/package.json b/tests/end_to_end/candid_rpc/functional_syntax/tuple_types/package.json deleted file mode 100644 index 77578c7df3..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/tuple_types/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "tuple_types_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/update/package.json b/tests/end_to_end/candid_rpc/functional_syntax/update/package.json deleted file mode 100644 index 09212b175e..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/update/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "update_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0" - }, - "devDependencies": { - "@dfinity/agent": "0.11.1", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/package.json b/tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/package.json deleted file mode 100644 index 766aaf45bf..0000000000 --- a/tests/end_to_end/candid_rpc/functional_syntax/vanilla_js/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "vanilla_js_end_to_end_test_functional_syntax", - "scripts": { - "pretest": "tsx test/pretest.ts", - "test": "jest" - }, - "dependencies": { - "azle": "0.23.0", - "js-sha256": "0.9.0" - }, - "devDependencies": { - "@dfinity/agent": "^0.19.2", - "jest": "^29.7.0", - "ts-jest": "^29.1.5", - "tsx": "^4.15.7", - "typescript": "^5.2.2" - } -} diff --git a/tests/property/candid_rpc/class_syntax/blob/dfx.json b/tests/property/candid_rpc/class_api/blob/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/blob/dfx.json rename to tests/property/candid_rpc/class_api/blob/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/blob/package-lock.json b/tests/property/candid_rpc/class_api/blob/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/blob/package-lock.json rename to tests/property/candid_rpc/class_api/blob/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/blob/package.json b/tests/property/candid_rpc/class_api/blob/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/blob/package.json rename to tests/property/candid_rpc/class_api/blob/package.json diff --git a/tests/property/candid_rpc/class_api/blob/test/generate_body.ts b/tests/property/candid_rpc/class_api/blob/test/generate_body.ts new file mode 100644 index 0000000000..d42cc53f6d --- /dev/null +++ b/tests/property/candid_rpc/class_api/blob/test/generate_body.ts @@ -0,0 +1,31 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamBlobs: Named>[], + returnBlob: CandidValueAndMeta +): string { + // TODO these checks should be much more precise probably, imagine checking the elements inside of the arrays + const paramsAreUint8Arrays = namedParamBlobs + .map((param) => { + return `if (!(${param.name} instanceof Uint8Array)) throw new Error('${param.name} must be a Uint8Array');`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamBlobs); + + const returnValue = returnBlob.value.agentArgumentValue; + + const returnStatement = `Uint8Array.from([${[...returnValue]} ${ + returnValue.length > 0 ? ',' : '' + } ${namedParamBlobs.map((param) => `...${param.name}`).join(', ')}])`; + + return ` + ${paramsAreUint8Arrays} + + ${paramsCorrectlyOrdered} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/class_api/blob/test/generate_tests.ts b/tests/property/candid_rpc/class_api/blob/test/generate_tests.ts new file mode 100644 index 0000000000..486dfabddd --- /dev/null +++ b/tests/property/candid_rpc/class_api/blob/test/generate_tests.ts @@ -0,0 +1,37 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + paramBlobs: Named>[], + returnBlob: CandidValueAndMeta +): Test[][] { + const expectedResult = Uint8Array.from( + paramBlobs + .map((blob) => blob.value.value.agentResponseValue) + .reduce( + (acc, blob) => [...acc, ...blob], + [...returnBlob.value.agentResponseValue] + ) + ); + + return [ + [ + { + name: `blob ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + ...paramBlobs.map( + (blob) => blob.value.value.agentArgumentValue + ) + ); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/blob/test/test.ts b/tests/property/candid_rpc/class_api/blob/test/test.ts new file mode 100644 index 0000000000..d06aeedbab --- /dev/null +++ b/tests/property/candid_rpc/class_api/blob/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { BlobArb } from 'azle/test/property/arbitraries/candid/constructed/blob_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllBlobsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(BlobArb(context)), + BlobArb(context) +); + +const CanisterConfigArb = fc + .array(AllBlobsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/blob/tsconfig.json b/tests/property/candid_rpc/class_api/blob/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/blob/tsconfig.json rename to tests/property/candid_rpc/class_api/blob/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/bool/dfx.json b/tests/property/candid_rpc/class_api/bool/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/bool/dfx.json rename to tests/property/candid_rpc/class_api/bool/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/bool/package-lock.json b/tests/property/candid_rpc/class_api/bool/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/bool/package-lock.json rename to tests/property/candid_rpc/class_api/bool/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/bool/package.json b/tests/property/candid_rpc/class_api/bool/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/bool/package.json rename to tests/property/candid_rpc/class_api/bool/package.json diff --git a/tests/property/candid_rpc/class_api/bool/test/generate_body.ts b/tests/property/candid_rpc/class_api/bool/test/generate_body.ts new file mode 100644 index 0000000000..994df55128 --- /dev/null +++ b/tests/property/candid_rpc/class_api/bool/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamBools: Named>[], + returnBool: CandidValueAndMeta +): string { + // TODO do we want to encapsulate 'boolean' in the CandidArb? Like an agentType instead of a candidType, like azleValue and agentValue? + // TODO or will this not matter anymore once we start using a deep equal library + const paramsAreBooleans = namedParamBools + .map((param) => { + return `if (typeof ${param.name} !== 'boolean') throw new Error('${param.name} must be a boolean');`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamBools); + + const returnStatement = namedParamBools.reduce((acc, { name }) => { + return `${acc} && ${name}`; + }, returnBool.src.valueLiteral); + + return ` + ${paramsAreBooleans} + + ${paramsCorrectlyOrdered} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/class_api/bool/test/generate_tests.ts b/tests/property/candid_rpc/class_api/bool/test/generate_tests.ts new file mode 100644 index 0000000000..f502a7d3d1 --- /dev/null +++ b/tests/property/candid_rpc/class_api/bool/test/generate_tests.ts @@ -0,0 +1,32 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamBools: Named>[], + returnBool: CandidValueAndMeta +): Test[][] { + const expectedResult = namedParamBools.reduce( + (acc, param) => acc && param.value.value.agentResponseValue, + returnBool.value.agentResponseValue + ); + const paramValues = namedParamBools.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `bool ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/bool/test/test.ts b/tests/property/candid_rpc/class_api/bool/test/test.ts new file mode 100644 index 0000000000..1840637c30 --- /dev/null +++ b/tests/property/candid_rpc/class_api/bool/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { BoolArb } from 'azle/test/property/arbitraries/candid/primitive/bool'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllBoolsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(BoolArb(context)), + BoolArb(context) +); + +const CanisterConfigArb = fc + .array(AllBoolsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/bool/tsconfig.json b/tests/property/candid_rpc/class_api/bool/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/bool/tsconfig.json rename to tests/property/candid_rpc/class_api/bool/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/http_request/dfx.json b/tests/property/candid_rpc/class_api/canister_methods/http_request/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/http_request/dfx.json rename to tests/property/candid_rpc/class_api/canister_methods/http_request/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/http_request/package-lock.json b/tests/property/candid_rpc/class_api/canister_methods/http_request/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/http_request/package-lock.json rename to tests/property/candid_rpc/class_api/canister_methods/http_request/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/http_request/package.json b/tests/property/candid_rpc/class_api/canister_methods/http_request/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/http_request/package.json rename to tests/property/candid_rpc/class_api/canister_methods/http_request/package.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/http_request/test/fletch.ts b/tests/property/candid_rpc/class_api/canister_methods/http_request/test/fletch.ts similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/http_request/test/fletch.ts rename to tests/property/candid_rpc/class_api/canister_methods/http_request/test/fletch.ts diff --git a/tests/property/candid_rpc/class_api/canister_methods/http_request/test/generate_body.ts b/tests/property/candid_rpc/class_api/canister_methods/http_request/test/generate_body.ts new file mode 100644 index 0000000000..e496e4f53f --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/http_request/test/generate_body.ts @@ -0,0 +1,137 @@ +import { HttpRequest } from 'azle/experimental'; +import { Named } from 'azle/test/property'; +import { CandidReturnType } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; + +export function generateBody( + namedParams: Named>[], + returnType: CandidValueAndMeta +): string { + const { name: requestParamName, value: requestValueObject } = + namedParams[0]; + const request = requestValueObject.value.agentArgumentValue; + + const httpMethodCheck = generateHttpMethodCheck( + request.method, + requestParamName + ); + const urlCheck = generateUrlCheck(request.url, requestParamName); + const headersMap = generateHeadersMap(request.headers, requestParamName); + const headerChecks = generateHeaderChecks(request.headers); + const bodyCheck = generateBodyCheck(request.body, requestParamName); + + return ` + // Body check has to happen before method check or else type checks might fail + ${bodyCheck} + ${httpMethodCheck} + ${urlCheck} + ${headersMap} + ${headerChecks} + + return ${returnType.src.valueLiteral}; + `; +} + +function generateHttpMethodCheck( + method: string, + requestParamName: string +): string { + return ` + if (${requestParamName}.method !== '${method}') { + throw new Error( + \`Unexpected req.method. Expected ${method} but received \${${requestParamName}.method}\` + ); + } + `; +} + +function generateUrlCheck(url: string, requestParamName: string): string { + return ` + if (decodeURIComponent(${requestParamName}.url) !== decodeURIComponent('${escape( + url + )}')) { + throw new Error( + \`Unexpected req.url. Expected '${escape( + url + )}' but received \${${requestParamName}.url}\` + ); + } + `; +} + +function generateHeadersMap( + headers: [string, string][], + requestParamName: string +): string { + return headers.length === 0 + ? '' + : ` + const headers = (${requestParamName}.headers as [string, string][]).reduce<{ + [key: string]: string} + >((prev, [name, value]) => ({[name]: value, ...prev}), {}); + `; +} + +function generateHeaderChecks(headers: [string, string][]): string { + return headers + .map(([name, value]) => { + if (value === '') { + return generateEmptyHeaderCheck(name); + } + return generateNonEmptyHeaderCheck(name, value); + }) + .join('\n'); +} + +function generateEmptyHeaderCheck(name: string): string { + return `if (headers['${escape( + name + ).toLowerCase()}'] !== undefined && headers['${escape( + name + ).toLowerCase()}'] !== '') { + throw new Error( + \`Unexpected value for header '${escape( + name + )}'. Expected undefined but received '\${headers['${escape( + name + ).toLowerCase()}']}'\` + ); + } + `; +} + +function generateNonEmptyHeaderCheck(name: string, value: string): string { + return `if (headers['${escape(name).toLowerCase()}'] !== '${escape( + value + )}') { + throw new Error( + \`Unexpected value for header '${escape( + name + )}'. Expected '${escape( + value + )}' but received '\${headers['${escape( + name + ).toLowerCase()}']}'\` + ); + } + `; +} + +function generateBodyCheck(body: Uint8Array, requestParamName: string): string { + return `if (${requestParamName}.method !== 'GET' && ${requestParamName}.body !== undefined) { + const requestBody = new TextDecoder().decode(${requestParamName}.body); + const expectedBody = "${escape(Buffer.from(body).toString('utf-8'))}" + if (requestBody !== expectedBody) { + throw new Error(\`Unexpected value for body. Expected \${expectedBody}, but received \${requestBody}\`) + } + }`; +} + +function escape(input: string): string { + return input + .replace(/\\/g, '\\\\') // Escape backslashes + .replace(/\$\{/g, '\\${') // Escape interpolation starts + .replace(/`/g, '\\`') // Escape backticks + .replace(/'/g, "\\'") // Escape single quotes + .replace(/"/g, '\\"'); // Escape double quotes +} diff --git a/tests/property/candid_rpc/class_api/canister_methods/http_request/test/generate_tests.ts b/tests/property/candid_rpc/class_api/canister_methods/http_request/test/generate_tests.ts new file mode 100644 index 0000000000..28b9df4f00 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/http_request/test/generate_tests.ts @@ -0,0 +1,54 @@ +import { HttpRequest, HttpResponse } from 'azle/experimental'; +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { HttpResponseAgentResponseValue } from 'azle/test/property/arbitraries/http/response_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +import { fletch } from './fletch'; + +export function generateTests( + functionName: string, + params: Named>[], + returnType: CandidValueAndMeta< + HttpResponse, + HttpResponseAgentResponseValue + > +): Test[][] { + const request = params[0].value.value.agentArgumentValue; + const expectedResponse = returnType.value.agentResponseValue; + + return [ + [ + { + name: functionName, + test: async (): Promise => { + const response = await fletch('canister', request); + const filteredHeaders = response.headers + .filter( + ([name]) => + name !== 'x-ic-streaming-response' && + name !== 'content-length' && + name !== 'date' + ) + .sort(); + const processedResponse = { + status: response.status, + headers: filteredHeaders, + body: response.body + }; + const sortedExpectedHeaders = + expectedResponse.headers.sort(); + const processedExpectedResponse = { + ...expectedResponse, + headers: sortedExpectedHeaders + }; + + return testEquality( + processedResponse, + processedExpectedResponse + ); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/canister_methods/http_request/test/test.ts b/tests/property/candid_rpc/class_api/canister_methods/http_request/test/test.ts new file mode 100644 index 0000000000..88a332fd4f --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/http_request/test/test.ts @@ -0,0 +1,43 @@ +import { HttpRequest } from 'azle/experimental'; +import { runPropTests } from 'azle/test/property'; +import { RecordArb } from 'azle/test/property/arbitraries/candid/constructed/record_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { HttpRequestArb } from 'azle/test/property/arbitraries/http/request_arb'; +import { HttpResponseArb } from 'azle/test/property/arbitraries/http/response_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const CanisterConfigArb = RecordArb(context) + .chain((record) => { + const HttpRequestMethodArb = QueryMethodArb( + { + api, + constraints: { + name: 'http_request', + generateBody, + generateTests + } + }, + fc.tuple(HttpRequestArb(context)), + HttpResponseArb(context, record) + ); + + return HttpRequestMethodArb; + }) + .map((httpRequestMethod): CanisterConfig => { + return { + queryMethods: [httpRequestMethod] + }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/http_request/tsconfig.json b/tests/property/candid_rpc/class_api/canister_methods/http_request/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/http_request/tsconfig.json rename to tests/property/candid_rpc/class_api/canister_methods/http_request/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/dfx.json b/tests/property/candid_rpc/class_api/canister_methods/http_request_update/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/dfx.json rename to tests/property/candid_rpc/class_api/canister_methods/http_request_update/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/package-lock.json b/tests/property/candid_rpc/class_api/canister_methods/http_request_update/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/package-lock.json rename to tests/property/candid_rpc/class_api/canister_methods/http_request_update/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/package.json b/tests/property/candid_rpc/class_api/canister_methods/http_request_update/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/package.json rename to tests/property/candid_rpc/class_api/canister_methods/http_request_update/package.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/test/fletch.ts b/tests/property/candid_rpc/class_api/canister_methods/http_request_update/test/fletch.ts similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/test/fletch.ts rename to tests/property/candid_rpc/class_api/canister_methods/http_request_update/test/fletch.ts diff --git a/tests/property/candid_rpc/class_api/canister_methods/http_request_update/test/generate_body.ts b/tests/property/candid_rpc/class_api/canister_methods/http_request_update/test/generate_body.ts new file mode 100644 index 0000000000..975e7ea290 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/http_request_update/test/generate_body.ts @@ -0,0 +1,139 @@ +import { HttpRequest } from 'azle/experimental'; +import { Named } from 'azle/test/property'; +import { CandidReturnType } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; + +export function generateBody( + namedParams: Named>[], + returnType: CandidValueAndMeta +): string { + const { name: requestParamName, value: requestValueObject } = + namedParams[0]; + const request = requestValueObject.value.agentArgumentValue; + + const httpMethodCheck = generateHttpMethodCheck( + request.method, + requestParamName + ); + const urlCheck = generateUrlCheck(request.url, requestParamName); + const headersMap = generateHeadersMap(request.headers, requestParamName); + const headerChecks = generateHeaderChecks(request.headers); + const bodyCheck = generateBodyCheck(request.body, requestParamName); + + return ` + state++; + + // Body check has to happen before method check or else type checks might fail + ${bodyCheck} + ${httpMethodCheck} + ${urlCheck} + ${headersMap} + ${headerChecks} + + return ${returnType.src.valueLiteral}; + `; +} + +function generateHttpMethodCheck( + method: string, + requestParamName: string +): string { + return ` + if (${requestParamName}.method !== '${method}') { + throw new Error( + \`Unexpected req.method. Expected ${method} but received \${${requestParamName}.method}\` + ); + } + `; +} + +function generateUrlCheck(url: string, requestParamName: string): string { + return ` + if (decodeURIComponent(${requestParamName}.url) !== decodeURIComponent('${escape( + url + )}')) { + throw new Error( + \`Unexpected req.url. Expected '${escape( + url + )}' but received \${${requestParamName}.url}\` + ); + } + `; +} + +function generateHeadersMap( + headers: [string, string][], + requestParamName: string +): string { + return headers.length === 0 + ? '' + : ` + const headers = (${requestParamName}.headers as [string, string][]).reduce<{ + [key: string]: string} + >((prev, [name, value]) => ({[name]: value, ...prev}), {}); + `; +} + +function generateHeaderChecks(headers: [string, string][]): string { + return headers + .map(([name, value]) => { + if (value === '') { + return generateEmptyHeaderCheck(name); + } + return generateNonEmptyHeaderCheck(name, value); + }) + .join('\n'); +} + +function generateEmptyHeaderCheck(name: string): string { + return `if (headers['${escape( + name + ).toLowerCase()}'] !== undefined && headers['${escape( + name + ).toLowerCase()}'] !== '') { + throw new Error( + \`Unexpected value for header '${escape( + name + )}'. Expected undefined but received '\${headers['${escape( + name + ).toLowerCase()}']}'\` + ); + } + `; +} + +function generateNonEmptyHeaderCheck(name: string, value: string): string { + return `if (headers['${escape(name).toLowerCase()}'] !== '${escape( + value + )}') { + throw new Error( + \`Unexpected value for header '${escape( + name + )}'. Expected '${escape( + value + )}' but received '\${headers['${escape( + name + ).toLowerCase()}']}'\` + ); + } + `; +} + +function generateBodyCheck(body: Uint8Array, requestParamName: string): string { + return `if (${requestParamName}.method !== 'GET' && ${requestParamName}.body !== undefined) { + const requestBody = new TextDecoder().decode(${requestParamName}.body); + const expectedBody = "${escape(Buffer.from(body).toString('utf-8'))}" + if (requestBody !== expectedBody) { + throw new Error(\`Unexpected value for body. Expected \${expectedBody}, but received \${requestBody}\`) + } + }`; +} + +function escape(input: string): string { + return input + .replace(/\\/g, '\\\\') // Escape backslashes + .replace(/\$\{/g, '\\${') // Escape interpolation starts + .replace(/`/g, '\\`') // Escape backticks + .replace(/'/g, "\\'") // Escape single quotes + .replace(/"/g, '\\"'); // Escape double quotes +} diff --git a/tests/property/candid_rpc/class_api/canister_methods/http_request_update/test/generate_tests.ts b/tests/property/candid_rpc/class_api/canister_methods/http_request_update/test/generate_tests.ts new file mode 100644 index 0000000000..7b0a90a19b --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/http_request_update/test/generate_tests.ts @@ -0,0 +1,74 @@ +import { HttpRequest, HttpResponse } from 'azle/experimental'; +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { HttpResponseAgentResponseValue } from 'azle/test/property/arbitraries/http/response_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +import { fletch } from './fletch'; + +export function generateTests( + functionName: string, + params: Named>[], + returnType: CandidValueAndMeta< + HttpResponse, + HttpResponseAgentResponseValue + > +): Test[][] { + const request = params[0].value.value.agentArgumentValue; + const expectedResponse = returnType.value.agentResponseValue; + + return [ + [ + { + name: 'get state before calling http_request', + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor['get_state'](); + + return testEquality(result, 0); + } + }, + { + name: functionName, + test: async (): Promise => { + const response = await fletch('canister', request); + const filteredHeaders = response.headers + .filter( + ([name]) => + name !== 'x-ic-streaming-response' && + name !== 'content-length' && + name !== 'date' + ) + .sort(); + const processedResponse = { + status: response.status, + headers: filteredHeaders, + body: response.body + }; + const sortedExpectedHeaders = + expectedResponse.headers.sort(); + const processedExpectedResponse = { + ...expectedResponse, + headers: sortedExpectedHeaders + }; + + return testEquality( + processedResponse, + processedExpectedResponse + ); + } + }, + { + name: 'get state after calling http_request', + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor['get_state'](); + + return testEquality(result, 1); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/canister_methods/http_request_update/test/test.ts b/tests/property/candid_rpc/class_api/canister_methods/http_request_update/test/test.ts new file mode 100644 index 0000000000..b16e441bb3 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/http_request_update/test/test.ts @@ -0,0 +1,82 @@ +import { HttpRequest } from 'azle/experimental'; +import { runPropTests } from 'azle/test/property'; +import { RecordArb } from 'azle/test/property/arbitraries/candid/constructed/record_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { UpdateMethodArb } from 'azle/test/property/arbitraries/canister_methods/update_method_arb'; +import { HttpRequestArb } from 'azle/test/property/arbitraries/http/request_arb'; +import { HttpResponseArb } from 'azle/test/property/arbitraries/http/response_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const HttpRequestUpdateMethodArb = RecordArb(context).chain((record) => { + const HttpRequestMethodArb = UpdateMethodArb( + { + api, + constraints: { + name: 'http_request_update', + generateBody, + generateTests + } + }, + fc.tuple(HttpRequestArb(context)), + HttpResponseArb(context, record) + ); + + return HttpRequestMethodArb; +}); + +const CanisterConfigArb = HttpRequestUpdateMethodArb.map( + (httpRequestUpdateMethod): CanisterConfig => { + const httpRequestMethod = generateHttpRequestMethod(); + const getStateMethod = generateGetStateMethod(); + + return { + queryMethods: [httpRequestMethod, getStateMethod], + updateMethods: [httpRequestUpdateMethod] + }; + } +); + +runPropTests(CanisterArb(context, CanisterConfigArb)); + +function generateHttpRequestMethod(): QueryMethod { + return { + imports: new Set(['query']), + globalDeclarations: [], + sourceCode: /*TS*/ ` + @query([HttpRequest], HttpResponse) + http_request() { + return { + status_code: 204, + headers: [], + body: new Uint8Array(), + streaming_strategy: [], + upgrade: [true] + }; + }`, + tests: [] + }; +} + +function generateGetStateMethod(): QueryMethod { + return { + imports: new Set(['query', 'IDL']), + globalDeclarations: ['let state: number = 0;'], + sourceCode: /*TS*/ ` + @query([], IDL.Nat8) + get_state(){ + return state; + }`, + tests: [] + }; +} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/tsconfig.json b/tests/property/candid_rpc/class_api/canister_methods/http_request_update/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/tsconfig.json rename to tests/property/candid_rpc/class_api/canister_methods/http_request_update/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/init/dfx.json b/tests/property/candid_rpc/class_api/canister_methods/init/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/init/dfx.json rename to tests/property/candid_rpc/class_api/canister_methods/init/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/init/package-lock.json b/tests/property/candid_rpc/class_api/canister_methods/init/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/init/package-lock.json rename to tests/property/candid_rpc/class_api/canister_methods/init/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/init/package.json b/tests/property/candid_rpc/class_api/canister_methods/init/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/init/package.json rename to tests/property/candid_rpc/class_api/canister_methods/init/package.json diff --git a/tests/property/candid_rpc/class_api/canister_methods/init/test/generate_callable_method_body.ts b/tests/property/candid_rpc/class_api/canister_methods/init/test/generate_callable_method_body.ts new file mode 100644 index 0000000000..5f71b47410 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/init/test/generate_callable_method_body.ts @@ -0,0 +1,17 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; + +export function generateBody( + namedParams: Named>[], + returnType: CandidValueAndMeta +): string { + // Print out params to avoid unused parameter warnings + const printParams = namedParams.map( + (param) => `console.log(${param.name})` + ); + return /*TS*/ ` + ${printParams.join('\n')} + return ${returnType.src.valueLiteral} + `; +} diff --git a/tests/property/candid_rpc/class_api/canister_methods/init/test/generate_init_body.ts b/tests/property/candid_rpc/class_api/canister_methods/init/test/generate_init_body.ts new file mode 100644 index 0000000000..e9f182e773 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/init/test/generate_init_body.ts @@ -0,0 +1,22 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParams: Named>[] +): string { + const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); + + const storeVariablesGlobally = namedParams + .map((param, i) => `initParam${i} = ${param.name};`) + .join('\n'); + + return ` + initialized = true; + + ${paramsAreCorrectlyOrdered} + + ${storeVariablesGlobally} + `; +} diff --git a/tests/property/candid_rpc/class_api/canister_methods/init/test/generate_tests.ts b/tests/property/candid_rpc/class_api/canister_methods/init/test/generate_tests.ts new file mode 100644 index 0000000000..7cc3865499 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/init/test/generate_tests.ts @@ -0,0 +1,28 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + _functionName: string, + params: Named>[] +): Test[][] { + const expectedResult = [ + true, + ...params.map((param) => param.value.value.agentResponseValue) + ]; + + return [ + [ + { + name: `init method`, + test: async (): Promise => { + const actor = getActor(__dirname); + const result = await actor.getInitValues(); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/canister_methods/init/test/test.ts b/tests/property/candid_rpc/class_api/canister_methods/init/test/test.ts new file mode 100644 index 0000000000..13e28124e2 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/init/test/test.ts @@ -0,0 +1,140 @@ +import { runPropTests } from 'azle/test/property'; +import { CandidReturnTypeArb } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMetaArb } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { InitMethodArb } from 'azle/test/property/arbitraries/canister_methods/init_method_arb'; +import { + QueryMethod, + QueryMethodArb +} from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { UpdateMethodArb } from 'azle/test/property/arbitraries/canister_methods/update_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody as callableMethodBodyGenerator } from './generate_callable_method_body'; +import { generateBody as initBodyGenerator } from './generate_init_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +// TODO multiplying by zero is to remove -0 +// TODO we should open an issue with agent-js +// TODO the agent should encode and decode -0 correctly +// https://github.com/demergent-labs/azle/issues/1511 +// TODO Infinity and NaN can't be used in this context +// https://github.com/dfinity/candid/issues/499 +const valueConstraints = { + noDefaultInfinity: true, + noNaN: true, + noNegativeZero: true +}; +const SimpleInitMethodArb = InitMethodArb( + { + api, + constraints: { + generateBody: initBodyGenerator, + generateTests + } + }, + fc.array(CandidValueAndMetaArb({ api, constraints: valueConstraints })) +); + +const HeterogeneousQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody: callableMethodBodyGenerator, + generateTests: () => [] + } + }, + fc.array(CandidValueAndMetaArb({ api, constraints: {} })), + CandidReturnTypeArb({ api, constraints: {} }) +); + +const HeterogeneousUpdateMethodArb = UpdateMethodArb( + { + api, + constraints: { + generateBody: callableMethodBodyGenerator, + generateTests: () => [] + } + }, + fc.array(CandidValueAndMetaArb({ api, constraints: {} })), + CandidReturnTypeArb({ api, constraints: {} }) +); + +const small = { + minLength: 0, + maxLength: 20 +}; + +const CanisterConfigArb = fc + .tuple( + SimpleInitMethodArb, + fc.array(HeterogeneousQueryMethodArb, small), + fc.array(HeterogeneousUpdateMethodArb, small) + ) + .map( + ([initMethod, queryMethods, updateMethods]): CanisterConfig< + CorrespondingJSType, + CorrespondingJSType + > => { + const initParamTypeObjects = initMethod.params.map( + (param) => param.value.src.typeObject + ); + const initParamTypeAnnotations = initMethod.params.map( + (param) => param.value.src.typeAnnotation + ); + + const globalInitVariableNames = initMethod.params.map( + (_, i) => `initParam${i}` + ); + const globalInitVariableDeclarations = initMethod.params.map( + (param, i) => + `let initParam${i}: ${param.value.src.typeAnnotation};` + ); + + const globalDeclarations = [ + 'let initialized: boolean = false;', + ...globalInitVariableDeclarations + ]; + + const getInitValues = generateGetInitValuesCanisterMethod( + initParamTypeObjects, + initParamTypeAnnotations, + globalInitVariableNames + ); + + return { + initMethod, + globalDeclarations, + queryMethods: [getInitValues, ...queryMethods], + updateMethods + }; + } + ); + +runPropTests(CanisterArb(context, CanisterConfigArb)); + +function generateGetInitValuesCanisterMethod( + paramTypeObjects: string[], + paramTypeAnnotations: string[], + globalInitVariableNames: string[] +): QueryMethod { + return { + imports: new Set(['IDL', 'query']), + globalDeclarations: [], + sourceCode: /*TS*/ ` + @query([], IDL.Tuple(IDL.Bool, ${paramTypeObjects.join()})) + getInitValues(): [boolean, ${paramTypeAnnotations.join()}] { + return [initialized, ${globalInitVariableNames.join()}] + } + `, + tests: [] + }; +} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/init/tsconfig.json b/tests/property/candid_rpc/class_api/canister_methods/init/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/init/tsconfig.json rename to tests/property/candid_rpc/class_api/canister_methods/init/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/inspect_message/dfx.json b/tests/property/candid_rpc/class_api/canister_methods/inspect_message/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/inspect_message/dfx.json rename to tests/property/candid_rpc/class_api/canister_methods/inspect_message/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/inspect_message/package-lock.json b/tests/property/candid_rpc/class_api/canister_methods/inspect_message/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/inspect_message/package-lock.json rename to tests/property/candid_rpc/class_api/canister_methods/inspect_message/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/inspect_message/package.json b/tests/property/candid_rpc/class_api/canister_methods/inspect_message/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/inspect_message/package.json rename to tests/property/candid_rpc/class_api/canister_methods/inspect_message/package.json diff --git a/tests/property/candid_rpc/class_api/canister_methods/inspect_message/test/generate_tests.ts b/tests/property/candid_rpc/class_api/canister_methods/inspect_message/test/generate_tests.ts new file mode 100644 index 0000000000..ddfeb1baf2 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/inspect_message/test/generate_tests.ts @@ -0,0 +1,77 @@ +import { Agent } from '@dfinity/agent'; +import { getActor, Named } from 'azle/test/property'; +import { CandidReturnType } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +import { InspectMessageBehavior } from './test'; + +export function generateTests( + functionName: string, + params: Named>[], + returnType: CandidValueAndMeta, + agentAndBehaviors: [Agent, InspectMessageBehavior][] +): Test[][] { + const paramValues = params.map( + (param) => param.value.value.agentArgumentValue + ); + + const expectedResult = returnType.value.agentResponseValue; + + return [ + agentAndBehaviors.map(([agent, behavior]) => { + return generateTest( + agent, + functionName, + paramValues, + expectedResult, + behavior + ); + }) + ]; +} + +function generateTest( + agent: Agent, + functionName: string, + paramValues: CorrespondingJSType[], + expectedResult: CorrespondingJSType, + behavior: InspectMessageBehavior +): Test { + return { + name: `method "${functionName}" expected ${behavior}`, + test: async (): Promise => { + await agent.fetchRootKey(); + const actor = getActor(__dirname, agent); + try { + const result = await actor[functionName](...paramValues); + + if (behavior === 'ACCEPT') { + return testEquality(result, expectedResult); + } + + return { + Err: 'Expected canister method to throw but it did not' + }; + } catch (error: any) { + if (behavior === 'RETURN') { + return testEquality( + error.message.includes('rejected the message'), + true + ); + } + + if (behavior === 'THROW') { + const expectedError = `Method \\"${functionName}\\" not allowed`; + return testEquality( + error.message.includes(expectedError), + true + ); + } + + throw error; + } + } + }; +} diff --git a/tests/property/candid_rpc/class_api/canister_methods/inspect_message/test/test.ts b/tests/property/candid_rpc/class_api/canister_methods/inspect_message/test/test.ts new file mode 100644 index 0000000000..e90ed32760 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/inspect_message/test/test.ts @@ -0,0 +1,103 @@ +import { Agent } from '@dfinity/agent'; +import { createAuthenticatedAgentSync, getPrincipal } from 'azle/dfx'; +import { runPropTests } from 'azle/test/property'; +import { CandidReturnTypeArb } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMetaArb } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { InspectMessageMethodArb } from 'azle/test/property/arbitraries/canister_methods/inspect_message_method_arb'; +import { UpdateMethodArb } from 'azle/test/property/arbitraries/canister_methods/update_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; +import { v4 } from 'uuid'; + +import { generateTests } from './generate_tests'; + +export type InspectMessageBehavior = 'ACCEPT' | 'RETURN' | 'THROW'; + +const AZLE_ACCEPT_IDENTITY_NAME = `_prop_test_azle_accept_identity_${v4()}`; +const AZLE_RETURN_IDENTITY_NAME = `_prop_test_azle_return_identity_${v4()}`; +const AZLE_THROW_IDENTITY_NAME = `_prop_test_azle_throw_identity_${v4()}`; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +// TODO make this function's return type explicit https://github.com/demergent-labs/azle/issues/1860 +// eslint-disable-next-line @typescript-eslint/explicit-function-return-type +function CanisterConfigArb() { + const agents: [Agent, InspectMessageBehavior][] = [ + [ + createAuthenticatedAgentSync(AZLE_ACCEPT_IDENTITY_NAME, true), + 'ACCEPT' + ], + [ + createAuthenticatedAgentSync(AZLE_RETURN_IDENTITY_NAME, true), + 'RETURN' + ], + [createAuthenticatedAgentSync(AZLE_THROW_IDENTITY_NAME, true), 'THROW'] + ]; + + const InspectMessageArb = InspectMessageMethodArb({ + api, + constraints: { + generateBody: () => generateInspectMessageMethodBody(), + generateTests: () => [] + } + }); + + const HeterogeneousUpdateMethodArb = UpdateMethodArb( + { + api, + constraints: { + generateBody: (_, returnType) => + `return ${returnType.src.valueLiteral}`, + generateTests: (...args) => generateTests(...args, agents) + } + }, + fc.array(CandidValueAndMetaArb(context)), + CandidReturnTypeArb(context) + ); + + const small = { + minLength: 0, + maxLength: 20 + }; + + return fc + .tuple(InspectMessageArb, fc.array(HeterogeneousUpdateMethodArb, small)) + .map( + ([inspectMessageMethod, updateMethods]): CanisterConfig< + CorrespondingJSType, + CorrespondingJSType + > => { + return { + inspectMessageMethod, + updateMethods + }; + } + ); +} + +runPropTests(CanisterArb(context, CanisterConfigArb())); + +function generateInspectMessageMethodBody(): string { + const acceptPrincipal = getPrincipal(AZLE_ACCEPT_IDENTITY_NAME); + const returnPrincipal = getPrincipal(AZLE_RETURN_IDENTITY_NAME); + const throwPrincipal = getPrincipal(AZLE_THROW_IDENTITY_NAME); + return ` + if (caller().toText() === "${acceptPrincipal}") { + acceptMessage(); + return; + } + if (caller().toText() === "${returnPrincipal}") { + return; + } + if (caller().toText() === "${throwPrincipal}") { + throw new Error(\`Method "$\{methodName()}" not allowed\`); + } + throw new Error("Unexpected caller"); + `; +} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/inspect_message/tsconfig.json b/tests/property/candid_rpc/class_api/canister_methods/inspect_message/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/inspect_message/tsconfig.json rename to tests/property/candid_rpc/class_api/canister_methods/inspect_message/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/dfx.json b/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/dfx.json rename to tests/property/candid_rpc/class_api/canister_methods/post_upgrade/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/package-lock.json b/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/package-lock.json rename to tests/property/candid_rpc/class_api/canister_methods/post_upgrade/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/package.json b/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/package.json rename to tests/property/candid_rpc/class_api/canister_methods/post_upgrade/package.json diff --git a/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/generate_callable_method_body.ts b/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/generate_callable_method_body.ts new file mode 100644 index 0000000000..b789583aa7 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/generate_callable_method_body.ts @@ -0,0 +1,10 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; + +export function generateBody( + _namedParams: Named>[], + returnType: CandidValueAndMeta +): string { + return `return ${returnType.src.valueLiteral}`; +} diff --git a/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/generate_init_method_body.ts b/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/generate_init_method_body.ts new file mode 100644 index 0000000000..4181f5b0d3 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/generate_init_method_body.ts @@ -0,0 +1,24 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +import { globalInitVarName } from './global_var_name'; + +export function generateBody( + namedParams: Named>[] +): string { + const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); + + const storeVariablesGlobally = namedParams + .map((param, i) => `${globalInitVarName(i)} = ${param.name};`) + .join('\n'); + + return ` + initExecuted = true; + + ${paramsAreCorrectlyOrdered} + + ${storeVariablesGlobally} + `; +} diff --git a/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/generate_init_tests.ts b/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/generate_init_tests.ts new file mode 100644 index 0000000000..b6c576d370 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/generate_init_tests.ts @@ -0,0 +1,34 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + _functionName: string, + params: Named>[] +): Test[][] { + const expectedResult = [ + true, + ...params.map((param) => param.value.value.agentResponseValue) + ]; + + return [ + [ + { + name: `init method`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const initValues = await actor.getInitValues(); + const isPostUpgradeCalled = + await actor.isPostUpgradeCalled(); + + return testEquality( + [initValues, isPostUpgradeCalled], + [expectedResult, false] + ); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/generate_post_upgrade_method_body.ts b/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/generate_post_upgrade_method_body.ts new file mode 100644 index 0000000000..f9e4bd9456 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/generate_post_upgrade_method_body.ts @@ -0,0 +1,24 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +import { globalPostUpgradeVarName } from './global_var_name'; + +export function generateBody( + namedParams: Named>[] +): string { + const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); + + const storeVariablesGlobally = namedParams + .map((param, i) => `${globalPostUpgradeVarName(i)} = ${param.name};`) + .join('\n'); + + return ` + postUpgradeExecuted = true; + + ${paramsAreCorrectlyOrdered} + + ${storeVariablesGlobally} + `; +} diff --git a/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/generate_post_upgrade_tests.ts b/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/generate_post_upgrade_tests.ts new file mode 100644 index 0000000000..7d9e9ddba4 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/generate_post_upgrade_tests.ts @@ -0,0 +1,35 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + _functionName: string, + params: Named>[] +): Test[][] { + const expectedResult = [ + true, + ...params.map((param) => param.value.value.agentResponseValue) + ]; + + return [ + [], // Don't test on the first deploy, test after a re-deploy + [ + { + name: `post upgrade method`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const postUpgradeValues = + await actor.getPostUpgradeValues(); + const isInitCalled = await actor.isInitCalled(); + + return testEquality( + [postUpgradeValues, isInitCalled], + [expectedResult, false] + ); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/global_var_name.ts b/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/global_var_name.ts similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/global_var_name.ts rename to tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/global_var_name.ts diff --git a/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/test.ts b/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/test.ts new file mode 100644 index 0000000000..0e98acbaf7 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/test/test.ts @@ -0,0 +1,312 @@ +import { runPropTests } from 'azle/test/property'; +import { candidDefinitionArb } from 'azle/test/property/arbitraries/candid/candid_definition_arb'; +import { + CandidDefinition, + WithShapes +} from 'azle/test/property/arbitraries/candid/candid_definition_arb/types'; +import { CandidReturnTypeArb } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { + CandidValueAndMeta, + CandidValueAndMetaArb +} from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { definitionAndValueToValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb_generator'; +import { CandidValueArb } from 'azle/test/property/arbitraries/candid/candid_values_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { InitMethodArb } from 'azle/test/property/arbitraries/canister_methods/init_method_arb'; +import { PostUpgradeMethodArb } from 'azle/test/property/arbitraries/canister_methods/post_upgrade_arb'; +import { + QueryMethod, + QueryMethodArb +} from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { UpdateMethodArb } from 'azle/test/property/arbitraries/canister_methods/update_method_arb'; +import { DEFAULT_VALUE_MAX_DEPTH } from 'azle/test/property/arbitraries/config'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody as callableMethodBodyGenerator } from './generate_callable_method_body'; +import { generateBody as initMethodBodyGenerator } from './generate_init_method_body'; +import { generateTests as generateInitTests } from './generate_init_tests'; +import { generateBody as postUpgradeMethodBodyGenerator } from './generate_post_upgrade_method_body'; +import { generateTests as generatePostUpgradeTests } from './generate_post_upgrade_tests'; +import { globalInitVarName, globalPostUpgradeVarName } from './global_var_name'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const CanisterConfigArb = fc + .array(candidDefinitionArb(context, {})) + .chain((paramDefinitionsWithShapes) => { + const initParamValues = definitionsToValueAndMetaArb( + paramDefinitionsWithShapes + ); + const postUpgradeParamValues = definitionsToValueAndMetaArb( + paramDefinitionsWithShapes + ); + return fc.tuple(initParamValues, postUpgradeParamValues); + }) + .chain(([initParams, postUpgradeParams]) => { + const initDeployParamsArb = fc.constant(initParams); + const postUpgradeParamsArb = fc.constant(postUpgradeParams); + + const SimpleInitMethodArb = InitMethodArb( + { + api, + constraints: { + generateBody: initMethodBodyGenerator, + generateTests: generateInitTests + } + }, + initDeployParamsArb + ); + + const SimplePostUpgradeMethodArb = PostUpgradeMethodArb( + { + api, + constraints: { + generateBody: postUpgradeMethodBodyGenerator, + generateTests: generatePostUpgradeTests + } + }, + postUpgradeParamsArb + ); + + const HeterogeneousQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody: callableMethodBodyGenerator, + generateTests: () => [] + } + }, + fc.array(CandidValueAndMetaArb(context)), + CandidReturnTypeArb(context) + ); + + const HeterogeneousUpdateMethodArb = UpdateMethodArb( + { + api, + constraints: { + generateBody: callableMethodBodyGenerator, + generateTests: () => [] + } + }, + fc.array(CandidValueAndMetaArb(context)), + CandidReturnTypeArb(context) + ); + + const small = { + minLength: 0, + maxLength: 20 + }; + + return fc.tuple( + initDeployParamsArb, + postUpgradeParamsArb, + SimpleInitMethodArb, + SimplePostUpgradeMethodArb, + fc.array(HeterogeneousQueryMethodArb, small), + fc.array(HeterogeneousUpdateMethodArb, small) + ); + }) + .map( + ([ + initParams, + postUpgradeParams, + initMethod, + postUpgradeMethod, + queryMethods, + updateMethods + ]): CanisterConfig => { + const paramTypeObjects = postUpgradeParams.map( + // The typeObjects ought to be the same so it doesn't mater which we use to generate this list + (param) => param.src.typeObject + ); + + const globalInitVariableNames = initParams.map((_, i) => + globalInitVarName(i) + ); + const globalPostUpgradeVariableNames = postUpgradeParams.map( + (_, i) => globalPostUpgradeVarName(i) + ); + const globalInitVariableDeclarations = initParams.map( + (param, i) => + `let ${globalInitVarName(i)}: ${param.src.typeAnnotation};` + ); + const globalPostUpgradeVariableDeclarations = postUpgradeParams.map( + (param, i) => + `let ${globalPostUpgradeVarName(i)}: ${ + param.src.typeAnnotation + };` + ); + + const globalDeclarations = [ + 'let postUpgradeExecuted: boolean = false;', + 'let initExecuted: boolean = false;', + ...globalInitVariableDeclarations, + ...globalPostUpgradeVariableDeclarations + ]; + + const getPostUpgradeValues = + generateGetPostUpgradeValuesCanisterMethod( + paramTypeObjects, + globalPostUpgradeVariableNames + ); + + const getInitValues = generateGetInitValuesCanisterMethod( + paramTypeObjects, + globalInitVariableNames + ); + + const isPostUpgradeCalled = generateIsPostUpgradeCalled( + globalPostUpgradeVariableNames + ); + + const isInitCalled = generateIsInitCalled(globalInitVariableNames); + + return { + globalDeclarations, + initMethod, + postUpgradeMethod, + queryMethods: [ + getInitValues, + getPostUpgradeValues, + isPostUpgradeCalled, + isInitCalled, + ...queryMethods + ], + updateMethods + }; + } + ); + +function generateGetPostUpgradeValuesCanisterMethod( + paramTypeObjects: string[], + globalVariableNames: string[] +): QueryMethod { + return { + imports: new Set(['IDL', 'query']), + globalDeclarations: [], + sourceCode: /*TS*/ ` + @query([], IDL.Tuple(IDL.Bool, ${paramTypeObjects.join()})) + getPostUpgradeValues(){ + return [postUpgradeExecuted, ${globalVariableNames.join()}] + }`, + tests: [] + }; +} + +function generateGetInitValuesCanisterMethod( + paramTypeObjects: string[], + globalVariableNames: string[] +): QueryMethod { + return { + imports: new Set(['IDL', 'query']), + globalDeclarations: [], + sourceCode: /*TS*/ ` + @query([], IDL.Tuple(IDL.Bool, ${paramTypeObjects.join()})) + getInitValues(){ + return [initExecuted, ${globalVariableNames.join()}] + }`, + tests: [] + }; +} + +function generateIsInitCalled(globalVariableNames: string[]): QueryMethod { + const areAllParamsUndefined = globalVariableNames + .map((name) => `${name} === undefined`) + .join(' && '); + const isInitCalled = `return initExecuted${ + globalVariableNames.length === 0 + ? '' + : ` || !(${areAllParamsUndefined})` + }`; + return { + imports: new Set(['IDL', 'query']), + globalDeclarations: [], + sourceCode: /*TS*/ ` + @query([], IDL.Bool) + isInitCalled(){${isInitCalled}}`, + tests: [] + }; +} + +function generateIsPostUpgradeCalled( + globalVariableNames: string[] +): QueryMethod { + const areAllParamsUndefined = globalVariableNames + .map((name) => `${name} === undefined`) + .join(' && '); + const isPostUpgradeCalled = `return postUpgradeExecuted${ + globalVariableNames.length === 0 + ? '' + : ` || !(${areAllParamsUndefined})` + }`; + return { + imports: new Set(['IDL', 'query']), + globalDeclarations: [], + sourceCode: /*TS*/ ` + @query([], IDL.Bool) + isPostUpgradeCalled(){${isPostUpgradeCalled}}`, + tests: [] + }; +} + +function definitionsToValueAndMetaArb( + definitionsWithShapes: WithShapes[] +): fc.Arbitrary[]> { + const definitions = definitionsWithShapes.map( + (definitionWithShapes) => definitionWithShapes.definition + ); + const recursiveShapes = definitionsWithShapes.reduce( + (acc, definitionsWithShapes) => { + return { ...acc, ...definitionsWithShapes.recursiveShapes }; + }, + {} + ); + return fc + .tuple( + fc.constant(definitions), + fc.tuple( + ...definitions.map((definition) => + // TODO multiplying by zero is to remove -0 + // TODO we should open an issue with agent-js + // TODO the agent should encode and decode -0 correctly + // https://github.com/demergent-labs/azle/issues/1511 + // TODO Infinity and NaN can't be used in this context + // https://github.com/dfinity/candid/issues/499 + CandidValueArb( + { + api, + constraints: { + noDefaultInfinity: true, + noNaN: true, + noNegativeZero: true, + depthLevel: DEFAULT_VALUE_MAX_DEPTH + } + }, + definition, + recursiveShapes + ) + ) + ) + ) + .map( + ([ + definitions, + values + ]): CandidValueAndMeta[] => { + return values.map((value, index) => { + return definitionAndValueToValueAndMeta( + definitions[index], + value + ); + }); + } + ); +} + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/tsconfig.json b/tests/property/candid_rpc/class_api/canister_methods/post_upgrade/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/tsconfig.json rename to tests/property/candid_rpc/class_api/canister_methods/post_upgrade/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/pre_upgrade/dfx.json b/tests/property/candid_rpc/class_api/canister_methods/pre_upgrade/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/pre_upgrade/dfx.json rename to tests/property/candid_rpc/class_api/canister_methods/pre_upgrade/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/pre_upgrade/package-lock.json b/tests/property/candid_rpc/class_api/canister_methods/pre_upgrade/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/pre_upgrade/package-lock.json rename to tests/property/candid_rpc/class_api/canister_methods/pre_upgrade/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/pre_upgrade/package.json b/tests/property/candid_rpc/class_api/canister_methods/pre_upgrade/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/pre_upgrade/package.json rename to tests/property/candid_rpc/class_api/canister_methods/pre_upgrade/package.json diff --git a/tests/property/candid_rpc/class_api/canister_methods/pre_upgrade/test/test.ts b/tests/property/candid_rpc/class_api/canister_methods/pre_upgrade/test/test.ts new file mode 100644 index 0000000000..b6d05c08fc --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/pre_upgrade/test/test.ts @@ -0,0 +1,136 @@ +import { getActor, runPropTests } from 'azle/test/property'; +import { CandidReturnTypeArb } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMetaArb } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { PreUpgradeMethodArb } from 'azle/test/property/arbitraries/canister_methods/pre_upgrade_method_arb'; +import { + QueryMethod, + QueryMethodArb +} from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { UpdateMethodArb } from 'azle/test/property/arbitraries/canister_methods/update_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import { AzleResult, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const SimplePreUpgradeArb = PreUpgradeMethodArb({ + api, + constraints: { + generateBody: () => + /*TS*/ `stable.insert(PRE_UPGRADE_HOOK_EXECUTED, true);`, + generateTests: () => [] + } +}); + +const HeterogeneousQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody: (_, returnType) => + `return ${returnType.src.valueLiteral}`, + generateTests: () => [] + } + }, + fc.array(CandidValueAndMetaArb(context)), + CandidReturnTypeArb(context) +); + +const HeterogeneousUpdateMethodArb = UpdateMethodArb( + { + api, + constraints: { + generateBody: (_, returnType) => + `return ${returnType.src.valueLiteral}`, + generateTests: () => [] + } + }, + fc.array(CandidValueAndMetaArb(context)), + CandidReturnTypeArb(context) +); + +const small = { + minLength: 0, + maxLength: 20 +}; + +const CanisterConfigArb = fc + .tuple( + SimplePreUpgradeArb, + fc + .array(HeterogeneousQueryMethodArb, small) + .chain((queryMethods) => + fc.constant([ + generateGetPreUpgradeExecutedCanisterMethod(), + ...queryMethods + ]) + ), + fc.array(HeterogeneousUpdateMethodArb, small) + ) + + .map( + ([preUpgradeMethod, queryMethods, updateMethods]): CanisterConfig< + CorrespondingJSType, + CorrespondingJSType + > => { + const globalDeclarations = [ + /*TS*/ `const PRE_UPGRADE_HOOK_EXECUTED = 'PRE_UPGRADE_HOOK_EXECUTED';`, + /*TS*/ `let stable = StableBTreeMap(0);` + ]; + + return { + globalDeclarations, + preUpgradeMethod, + queryMethods, + updateMethods + }; + } + ); + +runPropTests(CanisterArb(context, CanisterConfigArb)); + +function generateGetPreUpgradeExecutedCanisterMethod(): QueryMethod { + return { + imports: new Set(['query', 'StableBTreeMap', 'IDL']), + globalDeclarations: [], + sourceCode: /*TS*/ ` + @query([], IDL.Opt(IDL.Bool)) + getPreUpgradeExecuted(){ + const result = stable.get(PRE_UPGRADE_HOOK_EXECUTED) + if (result === null) { + return [] + } else { + return [result] + } + }`, + tests: [ + [ + { + name: `pre upgrade was not called after first deploy`, + test: async (): Promise => { + const actor = getActor(__dirname); + const result = await actor.getPreUpgradeExecuted(); + + return testEquality(result, []); + } + } + ], + [ + { + name: `pre upgrade was called after second deploy`, + test: async (): Promise => { + const actor = getActor(__dirname); + const result = await actor.getPreUpgradeExecuted(); + + return testEquality(result, [true]); + } + } + ] + ] + }; +} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/pre_upgrade/tsconfig.json b/tests/property/candid_rpc/class_api/canister_methods/pre_upgrade/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/pre_upgrade/tsconfig.json rename to tests/property/candid_rpc/class_api/canister_methods/pre_upgrade/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/query/dfx.json b/tests/property/candid_rpc/class_api/canister_methods/query/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/query/dfx.json rename to tests/property/candid_rpc/class_api/canister_methods/query/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/query/package-lock.json b/tests/property/candid_rpc/class_api/canister_methods/query/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/query/package-lock.json rename to tests/property/candid_rpc/class_api/canister_methods/query/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/query/package.json b/tests/property/candid_rpc/class_api/canister_methods/query/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/query/package.json rename to tests/property/candid_rpc/class_api/canister_methods/query/package.json diff --git a/tests/property/candid_rpc/class_api/canister_methods/query/test/generate_body.ts b/tests/property/candid_rpc/class_api/canister_methods/query/test/generate_body.ts new file mode 100644 index 0000000000..f1bc623693 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/query/test/generate_body.ts @@ -0,0 +1,18 @@ +import { Named } from 'azle/test/property'; +import { CandidReturnType } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParams: Named>[], + returnType: CandidValueAndMeta +): string { + const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); + + return ` + ${paramsAreCorrectlyOrdered} + + return ${returnType.src.valueLiteral} + `; +} diff --git a/tests/property/candid_rpc/class_api/canister_methods/query/test/generate_tests.ts b/tests/property/candid_rpc/class_api/canister_methods/query/test/generate_tests.ts new file mode 100644 index 0000000000..3f03f5b327 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/query/test/generate_tests.ts @@ -0,0 +1,29 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidReturnType } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + params: Named>[], + returnType: CandidValueAndMeta +): Test[][] { + const paramValues = params.map( + (param) => param.value.value.agentArgumentValue + ); + const expectedResult = returnType.value.agentResponseValue; + + return [ + [ + { + name: `query method "${functionName}"`, + test: async (): Promise => { + const actor = getActor(__dirname); + const result = await actor[functionName](...paramValues); + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/canister_methods/query/test/test.ts b/tests/property/candid_rpc/class_api/canister_methods/query/test/test.ts new file mode 100644 index 0000000000..54ae99330d --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/query/test/test.ts @@ -0,0 +1,42 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { CandidReturnTypeArb } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMetaArb } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +// TODO Canister +// TODO Record +// TODO text +// TODO nat +// TODO update methods + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const HeterogeneousQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(CandidValueAndMetaArb(context)), + CandidReturnTypeArb(context) +); + +const CanisterConfigArb = fc + .array(HeterogeneousQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/query/tsconfig.json b/tests/property/candid_rpc/class_api/canister_methods/query/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/query/tsconfig.json rename to tests/property/candid_rpc/class_api/canister_methods/query/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/update/dfx.json b/tests/property/candid_rpc/class_api/canister_methods/update/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/update/dfx.json rename to tests/property/candid_rpc/class_api/canister_methods/update/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/update/package-lock.json b/tests/property/candid_rpc/class_api/canister_methods/update/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/update/package-lock.json rename to tests/property/candid_rpc/class_api/canister_methods/update/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/update/package.json b/tests/property/candid_rpc/class_api/canister_methods/update/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/update/package.json rename to tests/property/candid_rpc/class_api/canister_methods/update/package.json diff --git a/tests/property/candid_rpc/class_api/canister_methods/update/test/generate_body.ts b/tests/property/candid_rpc/class_api/canister_methods/update/test/generate_body.ts new file mode 100644 index 0000000000..f1bc623693 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/update/test/generate_body.ts @@ -0,0 +1,18 @@ +import { Named } from 'azle/test/property'; +import { CandidReturnType } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParams: Named>[], + returnType: CandidValueAndMeta +): string { + const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); + + return ` + ${paramsAreCorrectlyOrdered} + + return ${returnType.src.valueLiteral} + `; +} diff --git a/tests/property/candid_rpc/class_api/canister_methods/update/test/generate_tests.ts b/tests/property/candid_rpc/class_api/canister_methods/update/test/generate_tests.ts new file mode 100644 index 0000000000..f822f5fefe --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/update/test/generate_tests.ts @@ -0,0 +1,30 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidReturnType } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + params: Named>[], + returnType: CandidValueAndMeta +): Test[][] { + const paramValues = params.map( + (param) => param.value.value.agentArgumentValue + ); + const expectedResult = returnType.value.agentResponseValue; + + return [ + [ + { + name: `update method "${functionName}"`, + test: async (): Promise => { + const actor = getActor(__dirname); + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/canister_methods/update/test/test.ts b/tests/property/candid_rpc/class_api/canister_methods/update/test/test.ts new file mode 100644 index 0000000000..7878d9bb18 --- /dev/null +++ b/tests/property/candid_rpc/class_api/canister_methods/update/test/test.ts @@ -0,0 +1,36 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { CandidReturnTypeArb } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMetaArb } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { UpdateMethodArb } from 'azle/test/property/arbitraries/canister_methods/update_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const HeterogeneousUpdateMethodArb = UpdateMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(CandidValueAndMetaArb(context)), + CandidReturnTypeArb(context) +); + +const CanisterConfigArb = fc + .array(HeterogeneousUpdateMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/update/tsconfig.json b/tests/property/candid_rpc/class_api/canister_methods/update/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/canister_methods/update/tsconfig.json rename to tests/property/candid_rpc/class_api/canister_methods/update/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/float32/dfx.json b/tests/property/candid_rpc/class_api/float32/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/float32/dfx.json rename to tests/property/candid_rpc/class_api/float32/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/float32/package-lock.json b/tests/property/candid_rpc/class_api/float32/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/float32/package-lock.json rename to tests/property/candid_rpc/class_api/float32/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/float32/package.json b/tests/property/candid_rpc/class_api/float32/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/float32/package.json rename to tests/property/candid_rpc/class_api/float32/package.json diff --git a/tests/property/candid_rpc/class_api/float32/test/generate_body.ts b/tests/property/candid_rpc/class_api/float32/test/generate_body.ts new file mode 100644 index 0000000000..40e429d11c --- /dev/null +++ b/tests/property/candid_rpc/class_api/float32/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamFloat32s: Named>[], + returnFloat32: CandidValueAndMeta +): string { + const paramsAreNumbers = namedParamFloat32s + .map((param) => { + return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = + areParamsCorrectlyOrdered(namedParamFloat32s); + + const returnStatement = + namedParamFloat32s.length === 0 + ? returnFloat32.src.valueLiteral + : namedParamFloat32s[0].name; + + return ` + ${paramsCorrectlyOrdered} + + ${paramsAreNumbers} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/class_api/float32/test/generate_tests.ts b/tests/property/candid_rpc/class_api/float32/test/generate_tests.ts new file mode 100644 index 0000000000..8d06ffb8c1 --- /dev/null +++ b/tests/property/candid_rpc/class_api/float32/test/generate_tests.ts @@ -0,0 +1,31 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamFloat32s: Named>[], + returnFloat32: CandidValueAndMeta +): Test[][] { + const expectedResult = + namedParamFloat32s.length === 0 + ? returnFloat32.value.agentResponseValue + : namedParamFloat32s[0].value.value.agentResponseValue; + const paramValues = namedParamFloat32s.map( + (paramFloats) => paramFloats.value.value.agentArgumentValue + ); + return [ + [ + { + name: `float32 ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/float32/test/test.ts b/tests/property/candid_rpc/class_api/float32/test/test.ts new file mode 100644 index 0000000000..b15c4b09e0 --- /dev/null +++ b/tests/property/candid_rpc/class_api/float32/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Float32Arb } from 'azle/test/property/arbitraries/candid/primitive/floats/float32_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllFloat32sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Float32Arb(context)), + Float32Arb(context) +); + +const CanisterConfigArb = fc + .array(AllFloat32sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/float32/tsconfig.json b/tests/property/candid_rpc/class_api/float32/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/float32/tsconfig.json rename to tests/property/candid_rpc/class_api/float32/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/float64/dfx.json b/tests/property/candid_rpc/class_api/float64/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/float64/dfx.json rename to tests/property/candid_rpc/class_api/float64/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/float64/package-lock.json b/tests/property/candid_rpc/class_api/float64/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/float64/package-lock.json rename to tests/property/candid_rpc/class_api/float64/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/float64/package.json b/tests/property/candid_rpc/class_api/float64/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/float64/package.json rename to tests/property/candid_rpc/class_api/float64/package.json diff --git a/tests/property/candid_rpc/class_api/float64/test/generate_body.ts b/tests/property/candid_rpc/class_api/float64/test/generate_body.ts new file mode 100644 index 0000000000..2bf26aa450 --- /dev/null +++ b/tests/property/candid_rpc/class_api/float64/test/generate_body.ts @@ -0,0 +1,31 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamFloat64s: Named>[], + returnFloat64: CandidValueAndMeta +): string { + const paramsAreNumbers = namedParamFloat64s + .map((param) => { + return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = + areParamsCorrectlyOrdered(namedParamFloat64s); + + const sum = namedParamFloat64s.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnFloat64.src.valueLiteral); + const count = namedParamFloat64s.length + 1; + const average = `(${sum}) / ${count}`; + + return ` + ${paramsCorrectlyOrdered} + + ${paramsAreNumbers} + + return ${average}; + `; +} diff --git a/tests/property/candid_rpc/class_api/float64/test/generate_tests.ts b/tests/property/candid_rpc/class_api/float64/test/generate_tests.ts new file mode 100644 index 0000000000..a1b96c9d69 --- /dev/null +++ b/tests/property/candid_rpc/class_api/float64/test/generate_tests.ts @@ -0,0 +1,35 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamFloat64s: Named>[], + returnFloat64: CandidValueAndMeta +): Test[][] { + const count = namedParamFloat64s.length + 1; + const expectedResult = + namedParamFloat64s.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnFloat64.value.agentResponseValue + ) / count; + + const paramValues = namedParamFloat64s.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `float64 ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/float64/test/test.ts b/tests/property/candid_rpc/class_api/float64/test/test.ts new file mode 100644 index 0000000000..7fae766b22 --- /dev/null +++ b/tests/property/candid_rpc/class_api/float64/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Float64Arb } from 'azle/test/property/arbitraries/candid/primitive/floats/float64_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllFloat64sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Float64Arb(context)), + Float64Arb(context) +); + +const CanisterConfigArb = fc + .array(AllFloat64sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/float64/tsconfig.json b/tests/property/candid_rpc/class_api/float64/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/float64/tsconfig.json rename to tests/property/candid_rpc/class_api/float64/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/func/dfx.json b/tests/property/candid_rpc/class_api/func/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/func/dfx.json rename to tests/property/candid_rpc/class_api/func/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/func/package-lock.json b/tests/property/candid_rpc/class_api/func/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/func/package-lock.json rename to tests/property/candid_rpc/class_api/func/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/func/package.json b/tests/property/candid_rpc/class_api/func/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/func/package.json rename to tests/property/candid_rpc/class_api/func/package.json diff --git a/tests/property/candid_rpc/class_api/func/test/generate_body.ts b/tests/property/candid_rpc/class_api/func/test/generate_body.ts new file mode 100644 index 0000000000..13b2df4ee3 --- /dev/null +++ b/tests/property/candid_rpc/class_api/func/test/generate_body.ts @@ -0,0 +1,41 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Func } from 'azle/test/property/arbitraries/candid/reference/func_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamFuncs: Named>[], + returnFunc: CandidValueAndMeta +): string { + const paramsAreFuncs = namedParamFuncs + .map(({ name }) => { + const paramIsArray = `Array.isArray(${name})`; + const paramHas2Fields = `${name}.length === 2`; + const field0IsAPrincipal = `${name}[0]._isPrincipal === true`; + const field1IsAString = `typeof ${name}[1] === 'string'`; + + const paramIsAFunc = [ + paramIsArray, + paramHas2Fields, + field0IsAPrincipal, + field1IsAString + ].join(' && '); + + const throwError = `throw new Error('${name} must be a Func');`; + + return `if (!(${paramIsAFunc})) ${throwError}`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamFuncs); + + const returnStatement = returnFunc.src.valueLiteral; + + return ` + ${paramsAreFuncs} + + ${paramsCorrectlyOrdered} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/class_api/func/test/generate_tests.ts b/tests/property/candid_rpc/class_api/func/test/generate_tests.ts new file mode 100644 index 0000000000..6f43b31d48 --- /dev/null +++ b/tests/property/candid_rpc/class_api/func/test/generate_tests.ts @@ -0,0 +1,32 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Func } from 'azle/test/property/arbitraries/candid/reference/func_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamFuncs: Named>[], + returnFunc: CandidValueAndMeta +): Test[][] { + return [ + [ + { + name: `func ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + ...namedParamFuncs.map( + (param) => param.value.value.agentArgumentValue + ) + ); + + return testEquality( + result, + returnFunc.value.agentResponseValue + ); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/func/test/test.ts b/tests/property/candid_rpc/class_api/func/test/test.ts new file mode 100644 index 0000000000..5b1c1b89db --- /dev/null +++ b/tests/property/candid_rpc/class_api/func/test/test.ts @@ -0,0 +1,37 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { FuncArb } from 'azle/test/property/arbitraries/candid/reference/func_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllFuncsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.uniqueArray(FuncArb(context), { + selector: (entry) => entry.src.typeAnnotation + }), + FuncArb(context) +); + +const CanisterConfigArb = fc + .array(AllFuncsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/func/tsconfig.json b/tests/property/candid_rpc/class_api/func/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/func/tsconfig.json rename to tests/property/candid_rpc/class_api/func/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/int/dfx.json b/tests/property/candid_rpc/class_api/int/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int/dfx.json rename to tests/property/candid_rpc/class_api/int/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/int/package-lock.json b/tests/property/candid_rpc/class_api/int/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int/package-lock.json rename to tests/property/candid_rpc/class_api/int/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/int/package.json b/tests/property/candid_rpc/class_api/int/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int/package.json rename to tests/property/candid_rpc/class_api/int/package.json diff --git a/tests/property/candid_rpc/class_api/int/test/generate_body.ts b/tests/property/candid_rpc/class_api/int/test/generate_body.ts new file mode 100644 index 0000000000..20f5dfb198 --- /dev/null +++ b/tests/property/candid_rpc/class_api/int/test/generate_body.ts @@ -0,0 +1,28 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamInts: Named>[], + returnInt: CandidValueAndMeta +): string { + const paramsAreBigInts = namedParamInts + .map((param) => { + return `if (typeof ${param.name} !== 'bigint') throw new Error('${param.name} must be a bigint');`; + }) + .join('\n'); + + const sum = namedParamInts.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnInt.src.valueLiteral); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInts); + + return ` + ${paramsAreBigInts} + + ${paramsCorrectlyOrdered} + + return ${sum}; + `; +} diff --git a/tests/property/candid_rpc/class_api/int/test/generate_tests.ts b/tests/property/candid_rpc/class_api/int/test/generate_tests.ts new file mode 100644 index 0000000000..d371cab3d8 --- /dev/null +++ b/tests/property/candid_rpc/class_api/int/test/generate_tests.ts @@ -0,0 +1,32 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamInts: Named>[], + returnInt: CandidValueAndMeta +): Test[][] { + const expectedResult = namedParamInts.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnInt.value.agentResponseValue + ); + const paramValues = namedParamInts.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `int ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/int/test/test.ts b/tests/property/candid_rpc/class_api/int/test/test.ts new file mode 100644 index 0000000000..2b9f30a264 --- /dev/null +++ b/tests/property/candid_rpc/class_api/int/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { IntArb } from 'azle/test/property/arbitraries/candid/primitive/ints/int_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllIntsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(IntArb(context)), + IntArb(context) +); + +const CanisterConfigArb = fc + .array(AllIntsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/int/tsconfig.json b/tests/property/candid_rpc/class_api/int/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int/tsconfig.json rename to tests/property/candid_rpc/class_api/int/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/int16/dfx.json b/tests/property/candid_rpc/class_api/int16/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int16/dfx.json rename to tests/property/candid_rpc/class_api/int16/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/int16/package-lock.json b/tests/property/candid_rpc/class_api/int16/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int16/package-lock.json rename to tests/property/candid_rpc/class_api/int16/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/int16/package.json b/tests/property/candid_rpc/class_api/int16/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int16/package.json rename to tests/property/candid_rpc/class_api/int16/package.json diff --git a/tests/property/candid_rpc/class_api/int16/test/generate_body.ts b/tests/property/candid_rpc/class_api/int16/test/generate_body.ts new file mode 100644 index 0000000000..bf8eb93e4e --- /dev/null +++ b/tests/property/candid_rpc/class_api/int16/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamInt16s: Named>[], + returnInt16: CandidValueAndMeta +): string { + const paramsAreNumbers = namedParamInt16s + .map((param) => { + return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInt16s); + + const sum = namedParamInt16s.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnInt16.src.valueLiteral); + const count = namedParamInt16s.length + 1; + const average = `Math.floor((${sum}) / ${count})`; + + return ` + ${paramsAreNumbers} + + ${paramsCorrectlyOrdered} + + return ${average}; + `; +} diff --git a/tests/property/candid_rpc/class_api/int16/test/generate_tests.ts b/tests/property/candid_rpc/class_api/int16/test/generate_tests.ts new file mode 100644 index 0000000000..ca7736f384 --- /dev/null +++ b/tests/property/candid_rpc/class_api/int16/test/generate_tests.ts @@ -0,0 +1,35 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamInt16s: Named>[], + returnInt16: CandidValueAndMeta +): Test[][] { + const count = namedParamInt16s.length + 1; + const expectedResult = Math.floor( + namedParamInt16s.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnInt16.value.agentResponseValue + ) / count + ); + const paramValues = namedParamInt16s.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `int16 ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/int16/test/test.ts b/tests/property/candid_rpc/class_api/int16/test/test.ts new file mode 100644 index 0000000000..09e6a08b14 --- /dev/null +++ b/tests/property/candid_rpc/class_api/int16/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Int16Arb } from 'azle/test/property/arbitraries/candid/primitive/ints/int16_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllInt16sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Int16Arb(context)), + Int16Arb(context) +); + +const CanisterConfigArb = fc + .array(AllInt16sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/int16/tsconfig.json b/tests/property/candid_rpc/class_api/int16/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int16/tsconfig.json rename to tests/property/candid_rpc/class_api/int16/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/int32/dfx.json b/tests/property/candid_rpc/class_api/int32/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int32/dfx.json rename to tests/property/candid_rpc/class_api/int32/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/int32/package-lock.json b/tests/property/candid_rpc/class_api/int32/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int32/package-lock.json rename to tests/property/candid_rpc/class_api/int32/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/int32/package.json b/tests/property/candid_rpc/class_api/int32/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int32/package.json rename to tests/property/candid_rpc/class_api/int32/package.json diff --git a/tests/property/candid_rpc/class_api/int32/test/generate_body.ts b/tests/property/candid_rpc/class_api/int32/test/generate_body.ts new file mode 100644 index 0000000000..66c38aae59 --- /dev/null +++ b/tests/property/candid_rpc/class_api/int32/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamInt32s: Named>[], + returnInt32: CandidValueAndMeta +): string { + const paramsAreNumbers = namedParamInt32s + .map((param) => { + return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; + }) + .join('\n'); + + const sum = namedParamInt32s.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnInt32.src.valueLiteral); + const count = namedParamInt32s.length + 1; + const average = `Math.floor((${sum}) / ${count})`; + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInt32s); + + return ` + ${paramsAreNumbers} + + ${paramsCorrectlyOrdered} + + return ${average}; + `; +} diff --git a/tests/property/candid_rpc/class_api/int32/test/generate_tests.ts b/tests/property/candid_rpc/class_api/int32/test/generate_tests.ts new file mode 100644 index 0000000000..aca24d4e9e --- /dev/null +++ b/tests/property/candid_rpc/class_api/int32/test/generate_tests.ts @@ -0,0 +1,35 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamInt32s: Named>[], + returnInt32: CandidValueAndMeta +): Test[][] { + const count = namedParamInt32s.length + 1; + const expectedResult = Math.floor( + namedParamInt32s.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnInt32.value.agentResponseValue + ) / count + ); + const paramValues = namedParamInt32s.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `int32 ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/int32/test/test.ts b/tests/property/candid_rpc/class_api/int32/test/test.ts new file mode 100644 index 0000000000..9b66ee27a5 --- /dev/null +++ b/tests/property/candid_rpc/class_api/int32/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Int32Arb } from 'azle/test/property/arbitraries/candid/primitive/ints/int32_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllInt32sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Int32Arb(context)), + Int32Arb(context) +); + +const CanisterConfigArb = fc + .array(AllInt32sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/int32/tsconfig.json b/tests/property/candid_rpc/class_api/int32/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int32/tsconfig.json rename to tests/property/candid_rpc/class_api/int32/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/int64/dfx.json b/tests/property/candid_rpc/class_api/int64/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int64/dfx.json rename to tests/property/candid_rpc/class_api/int64/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/int64/package-lock.json b/tests/property/candid_rpc/class_api/int64/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int64/package-lock.json rename to tests/property/candid_rpc/class_api/int64/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/int64/package.json b/tests/property/candid_rpc/class_api/int64/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int64/package.json rename to tests/property/candid_rpc/class_api/int64/package.json diff --git a/tests/property/candid_rpc/class_api/int64/test/generate_body.ts b/tests/property/candid_rpc/class_api/int64/test/generate_body.ts new file mode 100644 index 0000000000..756f0c0432 --- /dev/null +++ b/tests/property/candid_rpc/class_api/int64/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamInt64s: Named>[], + returnInt64: CandidValueAndMeta +): string { + const paramsAreBigInts = namedParamInt64s + .map((param) => { + return `if (typeof ${param.name} !== 'bigint') throw new Error('${param.name} must be a bigint');`; + }) + .join('\n'); + + const sum = namedParamInt64s.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnInt64.src.valueLiteral); + const count = namedParamInt64s.length + 1; + const average = `(${sum}) / ${count}n`; + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInt64s); + + return ` + ${paramsAreBigInts} + + ${paramsCorrectlyOrdered} + + return ${average}; + `; +} diff --git a/tests/property/candid_rpc/class_api/int64/test/generate_tests.ts b/tests/property/candid_rpc/class_api/int64/test/generate_tests.ts new file mode 100644 index 0000000000..d4c9ee1e05 --- /dev/null +++ b/tests/property/candid_rpc/class_api/int64/test/generate_tests.ts @@ -0,0 +1,34 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamInt64s: Named>[], + returnInt64: CandidValueAndMeta +): Test[][] { + const count = namedParamInt64s.length + 1; + const expectedResult = + namedParamInt64s.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnInt64.value.agentResponseValue + ) / BigInt(count); + + const paramValues = namedParamInt64s.map( + (param) => param.value.value.agentArgumentValue + ); + return [ + [ + { + name: `int64 ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/int64/test/test.ts b/tests/property/candid_rpc/class_api/int64/test/test.ts new file mode 100644 index 0000000000..94add4446b --- /dev/null +++ b/tests/property/candid_rpc/class_api/int64/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Int64Arb } from 'azle/test/property/arbitraries/candid/primitive/ints/int64_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllInt64sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Int64Arb(context)), + Int64Arb(context) +); + +const CanisterConfigArb = fc + .array(AllInt64sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/int64/tsconfig.json b/tests/property/candid_rpc/class_api/int64/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int64/tsconfig.json rename to tests/property/candid_rpc/class_api/int64/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/int8/dfx.json b/tests/property/candid_rpc/class_api/int8/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int8/dfx.json rename to tests/property/candid_rpc/class_api/int8/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/int8/package-lock.json b/tests/property/candid_rpc/class_api/int8/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int8/package-lock.json rename to tests/property/candid_rpc/class_api/int8/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/int8/package.json b/tests/property/candid_rpc/class_api/int8/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int8/package.json rename to tests/property/candid_rpc/class_api/int8/package.json diff --git a/tests/property/candid_rpc/class_api/int8/test/generate_body.ts b/tests/property/candid_rpc/class_api/int8/test/generate_body.ts new file mode 100644 index 0000000000..44d2a1f3af --- /dev/null +++ b/tests/property/candid_rpc/class_api/int8/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamInt8s: Named>[], + returnInt8: CandidValueAndMeta +): string { + const paramsAreNumbers = namedParamInt8s + .map((param) => { + return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; + }) + .join('\n'); + + const sum = namedParamInt8s.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnInt8.src.valueLiteral); + const count = namedParamInt8s.length + 1; + const average = `Math.floor((${sum}) / ${count})`; + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInt8s); + + return ` + ${paramsAreNumbers} + + ${paramsCorrectlyOrdered} + + return ${average}; + `; +} diff --git a/tests/property/candid_rpc/class_api/int8/test/generate_tests.ts b/tests/property/candid_rpc/class_api/int8/test/generate_tests.ts new file mode 100644 index 0000000000..2895ddb7b8 --- /dev/null +++ b/tests/property/candid_rpc/class_api/int8/test/generate_tests.ts @@ -0,0 +1,34 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamInt8s: Named>[], + returnInt8: CandidValueAndMeta +): Test[][] { + const count = namedParamInt8s.length + 1; + const expectedResult = Math.floor( + namedParamInt8s.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnInt8.value.agentResponseValue + ) / count + ); + const paramValues = namedParamInt8s.map( + (param) => param.value.value.agentArgumentValue + ); + return [ + [ + { + name: `test ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/int8/test/test.ts b/tests/property/candid_rpc/class_api/int8/test/test.ts new file mode 100644 index 0000000000..12579dc246 --- /dev/null +++ b/tests/property/candid_rpc/class_api/int8/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Int8Arb } from 'azle/test/property/arbitraries/candid/primitive/ints/int8_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllInt8sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Int8Arb(context)), + Int8Arb(context) +); + +const CanisterConfigArb = fc + .array(AllInt8sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/int8/tsconfig.json b/tests/property/candid_rpc/class_api/int8/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/int8/tsconfig.json rename to tests/property/candid_rpc/class_api/int8/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/nat/dfx.json b/tests/property/candid_rpc/class_api/nat/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat/dfx.json rename to tests/property/candid_rpc/class_api/nat/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/nat/package-lock.json b/tests/property/candid_rpc/class_api/nat/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat/package-lock.json rename to tests/property/candid_rpc/class_api/nat/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/nat/package.json b/tests/property/candid_rpc/class_api/nat/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat/package.json rename to tests/property/candid_rpc/class_api/nat/package.json diff --git a/tests/property/candid_rpc/class_api/nat/test/generate_body.ts b/tests/property/candid_rpc/class_api/nat/test/generate_body.ts new file mode 100644 index 0000000000..433fae1de6 --- /dev/null +++ b/tests/property/candid_rpc/class_api/nat/test/generate_body.ts @@ -0,0 +1,28 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamNats: Named>[], + returnNat: CandidValueAndMeta +): string { + const paramsAreBigInts = namedParamNats + .map((param) => { + return `if (typeof ${param.name} !== 'bigint') throw new Error('${param.name} must be a bigint');`; + }) + .join('\n'); + + const sum = namedParamNats.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnNat.src.valueLiteral); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNats); + + return ` + ${paramsCorrectlyOrdered} + + ${paramsAreBigInts} + + return ${sum}; + `; +} diff --git a/tests/property/candid_rpc/class_api/nat/test/generate_tests.ts b/tests/property/candid_rpc/class_api/nat/test/generate_tests.ts new file mode 100644 index 0000000000..88de4ee05b --- /dev/null +++ b/tests/property/candid_rpc/class_api/nat/test/generate_tests.ts @@ -0,0 +1,32 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamNats: Named>[], + returnNat: CandidValueAndMeta +): Test[][] { + const expectedResult = namedParamNats.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnNat.value.agentResponseValue + ); + const paramValues = namedParamNats.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `nat ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/nat/test/test.ts b/tests/property/candid_rpc/class_api/nat/test/test.ts new file mode 100644 index 0000000000..a67e68dffe --- /dev/null +++ b/tests/property/candid_rpc/class_api/nat/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { NatArb } from 'azle/test/property/arbitraries/candid/primitive/nats/nat_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllNatsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(NatArb(context)), + NatArb(context) +); + +const CanisterConfigArb = fc + .array(AllNatsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/nat/tsconfig.json b/tests/property/candid_rpc/class_api/nat/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat/tsconfig.json rename to tests/property/candid_rpc/class_api/nat/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/nat16/dfx.json b/tests/property/candid_rpc/class_api/nat16/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat16/dfx.json rename to tests/property/candid_rpc/class_api/nat16/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/nat16/package-lock.json b/tests/property/candid_rpc/class_api/nat16/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat16/package-lock.json rename to tests/property/candid_rpc/class_api/nat16/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/nat16/package.json b/tests/property/candid_rpc/class_api/nat16/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat16/package.json rename to tests/property/candid_rpc/class_api/nat16/package.json diff --git a/tests/property/candid_rpc/class_api/nat16/test/generate_body.ts b/tests/property/candid_rpc/class_api/nat16/test/generate_body.ts new file mode 100644 index 0000000000..556e2bee55 --- /dev/null +++ b/tests/property/candid_rpc/class_api/nat16/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamNat16s: Named>[], + returnNat16: CandidValueAndMeta +): string { + const paramsAreNumbers = namedParamNat16s + .map((param) => { + return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; + }) + .join('\n'); + + const sum = namedParamNat16s.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnNat16.src.valueLiteral); + const count = namedParamNat16s.length + 1; + const average = `Math.floor((${sum}) / ${count})`; + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNat16s); + + return ` + ${paramsAreNumbers} + + ${paramsCorrectlyOrdered} + + return ${average}; + `; +} diff --git a/tests/property/candid_rpc/class_api/nat16/test/generate_tests.ts b/tests/property/candid_rpc/class_api/nat16/test/generate_tests.ts new file mode 100644 index 0000000000..8830422ece --- /dev/null +++ b/tests/property/candid_rpc/class_api/nat16/test/generate_tests.ts @@ -0,0 +1,35 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamNat16s: Named>[], + returnNat16: CandidValueAndMeta +): Test[][] { + const count = namedParamNat16s.length + 1; + const expectedResult = Math.floor( + namedParamNat16s.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnNat16.value.agentResponseValue + ) / count + ); + const paramValues = namedParamNat16s.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `nat16 ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/nat16/test/test.ts b/tests/property/candid_rpc/class_api/nat16/test/test.ts new file mode 100644 index 0000000000..4421539c77 --- /dev/null +++ b/tests/property/candid_rpc/class_api/nat16/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Nat16Arb } from 'azle/test/property/arbitraries/candid/primitive/nats/nat16_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllNat16sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Nat16Arb(context)), + Nat16Arb(context) +); + +const CanisterConfigArb = fc + .array(AllNat16sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/nat16/tsconfig.json b/tests/property/candid_rpc/class_api/nat16/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat16/tsconfig.json rename to tests/property/candid_rpc/class_api/nat16/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/nat32/dfx.json b/tests/property/candid_rpc/class_api/nat32/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat32/dfx.json rename to tests/property/candid_rpc/class_api/nat32/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/nat32/package-lock.json b/tests/property/candid_rpc/class_api/nat32/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat32/package-lock.json rename to tests/property/candid_rpc/class_api/nat32/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/nat32/package.json b/tests/property/candid_rpc/class_api/nat32/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat32/package.json rename to tests/property/candid_rpc/class_api/nat32/package.json diff --git a/tests/property/candid_rpc/class_api/nat32/test/generate_body.ts b/tests/property/candid_rpc/class_api/nat32/test/generate_body.ts new file mode 100644 index 0000000000..946047b3ee --- /dev/null +++ b/tests/property/candid_rpc/class_api/nat32/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamNat32s: Named>[], + returnNat32: CandidValueAndMeta +): string { + const paramsAreNumbers = namedParamNat32s + .map((param) => { + return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; + }) + .join('\n'); + + const sum = namedParamNat32s.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnNat32.src.valueLiteral); + const count = namedParamNat32s.length + 1; + const average = `Math.floor((${sum}) / ${count})`; + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNat32s); + + return ` + ${paramsAreNumbers} + + ${paramsCorrectlyOrdered} + + return ${average}; + `; +} diff --git a/tests/property/candid_rpc/class_api/nat32/test/generate_tests.ts b/tests/property/candid_rpc/class_api/nat32/test/generate_tests.ts new file mode 100644 index 0000000000..cb3c408713 --- /dev/null +++ b/tests/property/candid_rpc/class_api/nat32/test/generate_tests.ts @@ -0,0 +1,35 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamNat32s: Named>[], + returnNat32: CandidValueAndMeta +): Test[][] { + const count = namedParamNat32s.length + 1; + const expectedResult = Math.floor( + namedParamNat32s.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnNat32.value.agentResponseValue + ) / count + ); + const paramValues = namedParamNat32s.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `nat32 ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/nat32/test/test.ts b/tests/property/candid_rpc/class_api/nat32/test/test.ts new file mode 100644 index 0000000000..12cd6dcf10 --- /dev/null +++ b/tests/property/candid_rpc/class_api/nat32/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Nat32Arb } from 'azle/test/property/arbitraries/candid/primitive/nats/nat32_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllNat32sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Nat32Arb(context)), + Nat32Arb(context) +); + +const CanisterConfigArb = fc + .array(AllNat32sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/nat32/tsconfig.json b/tests/property/candid_rpc/class_api/nat32/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat32/tsconfig.json rename to tests/property/candid_rpc/class_api/nat32/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/nat64/dfx.json b/tests/property/candid_rpc/class_api/nat64/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat64/dfx.json rename to tests/property/candid_rpc/class_api/nat64/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/nat64/package-lock.json b/tests/property/candid_rpc/class_api/nat64/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat64/package-lock.json rename to tests/property/candid_rpc/class_api/nat64/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/nat64/package.json b/tests/property/candid_rpc/class_api/nat64/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat64/package.json rename to tests/property/candid_rpc/class_api/nat64/package.json diff --git a/tests/property/candid_rpc/class_api/nat64/test/generate_body.ts b/tests/property/candid_rpc/class_api/nat64/test/generate_body.ts new file mode 100644 index 0000000000..b14079001d --- /dev/null +++ b/tests/property/candid_rpc/class_api/nat64/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamNat64s: Named>[], + returnNat64: CandidValueAndMeta +): string { + const paramsAreBigInts = namedParamNat64s + .map((param) => { + return `if (typeof ${param.name} !== 'bigint') throw new Error('${param.name} must be a bigint');`; + }) + .join('\n'); + + const sum = namedParamNat64s.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnNat64.src.valueLiteral); + const count = namedParamNat64s.length + 1; + const average = `(${sum}) / ${count}n`; + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNat64s); + + return ` + ${paramsAreBigInts} + + ${paramsCorrectlyOrdered} + + return ${average}; + `; +} diff --git a/tests/property/candid_rpc/class_api/nat64/test/generate_tests.ts b/tests/property/candid_rpc/class_api/nat64/test/generate_tests.ts new file mode 100644 index 0000000000..0c1b787e13 --- /dev/null +++ b/tests/property/candid_rpc/class_api/nat64/test/generate_tests.ts @@ -0,0 +1,34 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamNat64s: Named>[], + returnNat64: CandidValueAndMeta +): Test[][] { + const count = namedParamNat64s.length + 1; + const expectedResult = + namedParamNat64s.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnNat64.value.agentResponseValue + ) / BigInt(count); + const paramValues = namedParamNat64s.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `nat64 ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/nat64/test/test.ts b/tests/property/candid_rpc/class_api/nat64/test/test.ts new file mode 100644 index 0000000000..87e67ddb5c --- /dev/null +++ b/tests/property/candid_rpc/class_api/nat64/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Nat64Arb } from 'azle/test/property/arbitraries/candid/primitive/nats/nat64_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllNat64sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Nat64Arb(context)), + Nat64Arb(context) +); + +const CanisterConfigArb = fc + .array(AllNat64sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/nat64/tsconfig.json b/tests/property/candid_rpc/class_api/nat64/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat64/tsconfig.json rename to tests/property/candid_rpc/class_api/nat64/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/nat8/dfx.json b/tests/property/candid_rpc/class_api/nat8/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat8/dfx.json rename to tests/property/candid_rpc/class_api/nat8/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/nat8/package-lock.json b/tests/property/candid_rpc/class_api/nat8/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat8/package-lock.json rename to tests/property/candid_rpc/class_api/nat8/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/nat8/package.json b/tests/property/candid_rpc/class_api/nat8/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat8/package.json rename to tests/property/candid_rpc/class_api/nat8/package.json diff --git a/tests/property/candid_rpc/class_api/nat8/test/generate_body.ts b/tests/property/candid_rpc/class_api/nat8/test/generate_body.ts new file mode 100644 index 0000000000..0c91a382d6 --- /dev/null +++ b/tests/property/candid_rpc/class_api/nat8/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamNat8s: Named>[], + returnNat8: CandidValueAndMeta +): string { + const paramsAreNumbers = namedParamNat8s + .map((param) => { + return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; + }) + .join('\n'); + + const sum = namedParamNat8s.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnNat8.src.valueLiteral); + const count = namedParamNat8s.length + 1; + const average = `Math.floor((${sum}) / ${count})`; + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNat8s); + + return ` + ${paramsAreNumbers} + + ${paramsCorrectlyOrdered} + + return ${average}; + `; +} diff --git a/tests/property/candid_rpc/class_api/nat8/test/generate_tests.ts b/tests/property/candid_rpc/class_api/nat8/test/generate_tests.ts new file mode 100644 index 0000000000..00b271b245 --- /dev/null +++ b/tests/property/candid_rpc/class_api/nat8/test/generate_tests.ts @@ -0,0 +1,35 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamNat8s: Named>[], + returnNat8: CandidValueAndMeta +): Test[][] { + const count = namedParamNat8s.length + 1; + const expectedResult = Math.floor( + namedParamNat8s.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnNat8.value.agentResponseValue + ) / count + ); + const paramValues = namedParamNat8s.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `nat8 ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/nat8/test/test.ts b/tests/property/candid_rpc/class_api/nat8/test/test.ts new file mode 100644 index 0000000000..5b8e8d9aed --- /dev/null +++ b/tests/property/candid_rpc/class_api/nat8/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Nat8Arb } from 'azle/test/property/arbitraries/candid/primitive/nats/nat8_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllNat8sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Nat8Arb(context)), + Nat8Arb(context) +); + +const CanisterConfigArb = fc + .array(AllNat8sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/nat8/tsconfig.json b/tests/property/candid_rpc/class_api/nat8/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/nat8/tsconfig.json rename to tests/property/candid_rpc/class_api/nat8/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/null/dfx.json b/tests/property/candid_rpc/class_api/null/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/null/dfx.json rename to tests/property/candid_rpc/class_api/null/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/null/package-lock.json b/tests/property/candid_rpc/class_api/null/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/null/package-lock.json rename to tests/property/candid_rpc/class_api/null/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/null/package.json b/tests/property/candid_rpc/class_api/null/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/null/package.json rename to tests/property/candid_rpc/class_api/null/package.json diff --git a/tests/property/candid_rpc/class_api/null/test/generate_body.ts b/tests/property/candid_rpc/class_api/null/test/generate_body.ts new file mode 100644 index 0000000000..4f492c6131 --- /dev/null +++ b/tests/property/candid_rpc/class_api/null/test/generate_body.ts @@ -0,0 +1,19 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; + +export function generateBody( + namedParamNulls: Named>[], + returnNull: CandidValueAndMeta +): string { + const areAllNull = namedParamNulls.reduce((acc, { name }) => { + return `${acc} && ${name} === null`; + }, 'true'); + + const allNullCheck = `if (!(${areAllNull})) throw new Error("Not all of the values were null")`; + + return ` + ${allNullCheck} + + return ${returnNull.src.valueLiteral}; + `; +} diff --git a/tests/property/candid_rpc/class_api/null/test/generate_tests.ts b/tests/property/candid_rpc/class_api/null/test/generate_tests.ts new file mode 100644 index 0000000000..b768bdc13a --- /dev/null +++ b/tests/property/candid_rpc/class_api/null/test/generate_tests.ts @@ -0,0 +1,28 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamNulls: Named>[], + _returnNull: CandidValueAndMeta +): Test[][] { + return [ + [ + { + name: `test ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + ...namedParamNulls.map( + (param) => param.value.value.agentArgumentValue + ) + ); + + return testEquality(result, null); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/null/test/test.ts b/tests/property/candid_rpc/class_api/null/test/test.ts new file mode 100644 index 0000000000..4984d7a93b --- /dev/null +++ b/tests/property/candid_rpc/class_api/null/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { NullArb } from 'azle/test/property/arbitraries/candid/primitive/null'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllNullsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(NullArb(context)), + NullArb(context) +); + +const CanisterConfigArb = fc + .array(AllNullsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/null/tsconfig.json b/tests/property/candid_rpc/class_api/null/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/null/tsconfig.json rename to tests/property/candid_rpc/class_api/null/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/opt/dfx.json b/tests/property/candid_rpc/class_api/opt/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/opt/dfx.json rename to tests/property/candid_rpc/class_api/opt/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/opt/package-lock.json b/tests/property/candid_rpc/class_api/opt/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/opt/package-lock.json rename to tests/property/candid_rpc/class_api/opt/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/opt/package.json b/tests/property/candid_rpc/class_api/opt/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/opt/package.json rename to tests/property/candid_rpc/class_api/opt/package.json diff --git a/tests/property/candid_rpc/class_api/opt/test/generate_body.ts b/tests/property/candid_rpc/class_api/opt/test/generate_body.ts new file mode 100644 index 0000000000..28ee636af1 --- /dev/null +++ b/tests/property/candid_rpc/class_api/opt/test/generate_body.ts @@ -0,0 +1,32 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Opt } from 'azle/test/property/arbitraries/candid/constructed/opt_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamOpts: Named>[], + returnOpt: CandidValueAndMeta +): string { + const areParamsOpts = namedParamOpts + .map((param) => { + return `if (!${isParamOpt(param.name)}) throw new Error('${ + param.name + } must be an Opt');`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamOpts); + + const returnStatement = returnOpt.src.valueLiteral; + + return ` + ${areParamsOpts} + ${paramsCorrectlyOrdered} + + return ${returnStatement}; + `; +} + +function isParamOpt(paramName: string): string { + return `(Array.isArray(${paramName}) && (${paramName}.length === 1 || ${paramName}.length === 0))`; +} diff --git a/tests/property/candid_rpc/class_api/opt/test/generate_tests.ts b/tests/property/candid_rpc/class_api/opt/test/generate_tests.ts new file mode 100644 index 0000000000..8061de7166 --- /dev/null +++ b/tests/property/candid_rpc/class_api/opt/test/generate_tests.ts @@ -0,0 +1,31 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Opt } from 'azle/test/property/arbitraries/candid/constructed/opt_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamOpts: Named>[], + returnOpt: CandidValueAndMeta +): Test[][] { + const expectedResult = returnOpt.value.agentResponseValue; + + return [ + [ + { + name: `opt ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const params = namedParamOpts.map( + (param) => param.value.value.agentArgumentValue + ); + + const result = await actor[functionName](...params); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/opt/test/test.ts b/tests/property/candid_rpc/class_api/opt/test/test.ts new file mode 100644 index 0000000000..38b324f112 --- /dev/null +++ b/tests/property/candid_rpc/class_api/opt/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { OptArb } from 'azle/test/property/arbitraries/candid/constructed/opt_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllOptsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(OptArb(context)), + OptArb(context) +); + +const CanisterConfigArb = fc + .array(AllOptsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/opt/tsconfig.json b/tests/property/candid_rpc/class_api/opt/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/opt/tsconfig.json rename to tests/property/candid_rpc/class_api/opt/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/principal/dfx.json b/tests/property/candid_rpc/class_api/principal/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/principal/dfx.json rename to tests/property/candid_rpc/class_api/principal/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/principal/package-lock.json b/tests/property/candid_rpc/class_api/principal/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/principal/package-lock.json rename to tests/property/candid_rpc/class_api/principal/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/principal/package.json b/tests/property/candid_rpc/class_api/principal/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/principal/package.json rename to tests/property/candid_rpc/class_api/principal/package.json diff --git a/tests/property/candid_rpc/class_api/principal/test/generate_body.ts b/tests/property/candid_rpc/class_api/principal/test/generate_body.ts new file mode 100644 index 0000000000..a43d5e00c2 --- /dev/null +++ b/tests/property/candid_rpc/class_api/principal/test/generate_body.ts @@ -0,0 +1,31 @@ +import { Principal } from '@dfinity/principal'; +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamPrincipals: Named>[], + returnPrincipal: CandidValueAndMeta +): string { + const paramsArePrincipals = namedParamPrincipals + .map((param) => { + return `if (${param.name}._isPrincipal !== true) throw new Error('${param.name} must be a Principal');`; + }) + .join('\n'); + + const returnStatement = + namedParamPrincipals.length > 0 + ? namedParamPrincipals[0].name + : returnPrincipal.src.valueLiteral; + + const paramsCorrectlyOrdered = + areParamsCorrectlyOrdered(namedParamPrincipals); + + return ` + ${paramsArePrincipals} + + ${paramsCorrectlyOrdered} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/class_api/principal/test/generate_tests.ts b/tests/property/candid_rpc/class_api/principal/test/generate_tests.ts new file mode 100644 index 0000000000..fad105f8fb --- /dev/null +++ b/tests/property/candid_rpc/class_api/principal/test/generate_tests.ts @@ -0,0 +1,33 @@ +import { Principal } from '@dfinity/principal'; +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamPrincipals: Named>[], + returnPrincipal: CandidValueAndMeta +): Test[][] { + const expectedResult = + namedParamPrincipals.length > 0 + ? namedParamPrincipals[0].value.value.agentResponseValue + : returnPrincipal.value.agentResponseValue; + + return [ + [ + { + name: `principal ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + const result = await actor[functionName]( + ...namedParamPrincipals.map( + (param) => param.value.value.agentArgumentValue + ) + ); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/principal/test/test.ts b/tests/property/candid_rpc/class_api/principal/test/test.ts new file mode 100644 index 0000000000..c29b1dc675 --- /dev/null +++ b/tests/property/candid_rpc/class_api/principal/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { PrincipalArb } from 'azle/test/property/arbitraries/candid/reference/principal_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllPrincipalsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(PrincipalArb(context)), + PrincipalArb(context) +); + +const CanisterConfigArb = fc + .array(AllPrincipalsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/principal/tsconfig.json b/tests/property/candid_rpc/class_api/principal/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/principal/tsconfig.json rename to tests/property/candid_rpc/class_api/principal/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/record/dfx.json b/tests/property/candid_rpc/class_api/record/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/record/dfx.json rename to tests/property/candid_rpc/class_api/record/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/record/package-lock.json b/tests/property/candid_rpc/class_api/record/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/record/package-lock.json rename to tests/property/candid_rpc/class_api/record/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/record/package.json b/tests/property/candid_rpc/class_api/record/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/record/package.json rename to tests/property/candid_rpc/class_api/record/package.json diff --git a/tests/property/candid_rpc/class_api/record/test/generate_body.ts b/tests/property/candid_rpc/class_api/record/test/generate_body.ts new file mode 100644 index 0000000000..503fb61421 --- /dev/null +++ b/tests/property/candid_rpc/class_api/record/test/generate_body.ts @@ -0,0 +1,35 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Record } from 'azle/test/property/arbitraries/candid/constructed/record_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamRecords: Named>[], + returnRecord: CandidValueAndMeta +): string { + const paramsAreRecords = namedParamRecords + .map((param) => { + const fieldsCount = Object.keys( + param.value.value.agentArgumentValue + ).length; + + const paramIsObject = `typeof ${param.name} === 'object'`; + const paramHasCorrectNumberOfFields = `Object.keys(${param.name}).length === ${fieldsCount}`; + const throwError = `throw new Error('${param.name} must be a Record');`; + + return `if (!(${paramIsObject} && ${paramHasCorrectNumberOfFields})) ${throwError}`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamRecords); + + const returnStatement = returnRecord.src.valueLiteral; + + return ` + ${paramsAreRecords} + + ${paramsCorrectlyOrdered} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/class_api/record/test/generate_tests.ts b/tests/property/candid_rpc/class_api/record/test/generate_tests.ts new file mode 100644 index 0000000000..dbcbc2348a --- /dev/null +++ b/tests/property/candid_rpc/class_api/record/test/generate_tests.ts @@ -0,0 +1,32 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Record } from 'azle/test/property/arbitraries/candid/constructed/record_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamRecords: Named>[], + returnRecord: CandidValueAndMeta +): Test[][] { + return [ + [ + { + name: `record ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + ...namedParamRecords.map( + (param) => param.value.value.agentArgumentValue + ) + ); + + return testEquality( + result, + returnRecord.value.agentResponseValue + ); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/record/test/test.ts b/tests/property/candid_rpc/class_api/record/test/test.ts new file mode 100644 index 0000000000..67b6c0d3b7 --- /dev/null +++ b/tests/property/candid_rpc/class_api/record/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { RecordArb } from 'azle/test/property/arbitraries/candid/constructed/record_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllRecordsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(RecordArb(context)), + RecordArb(context) +); + +const CanisterConfigArb = fc + .array(AllRecordsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/record/tsconfig.json b/tests/property/candid_rpc/class_api/record/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/record/tsconfig.json rename to tests/property/candid_rpc/class_api/record/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/recursive/dfx.json b/tests/property/candid_rpc/class_api/recursive/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/recursive/dfx.json rename to tests/property/candid_rpc/class_api/recursive/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/recursive/package-lock.json b/tests/property/candid_rpc/class_api/recursive/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/recursive/package-lock.json rename to tests/property/candid_rpc/class_api/recursive/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/recursive/package.json b/tests/property/candid_rpc/class_api/recursive/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/recursive/package.json rename to tests/property/candid_rpc/class_api/recursive/package.json diff --git a/tests/property/candid_rpc/class_api/recursive/test/generate_body.ts b/tests/property/candid_rpc/class_api/recursive/test/generate_body.ts new file mode 100644 index 0000000000..fc82049805 --- /dev/null +++ b/tests/property/candid_rpc/class_api/recursive/test/generate_body.ts @@ -0,0 +1,20 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Recursive } from 'azle/test/property/arbitraries/candid/recursive'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamRecursive: Named>[], + returnRecursive: CandidValueAndMeta +): string { + const paramsCorrectlyOrdered = + areParamsCorrectlyOrdered(namedParamRecursive); + + const returnStatement = returnRecursive.src.valueLiteral; + + return ` + ${paramsCorrectlyOrdered} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/class_api/recursive/test/generate_tests.ts b/tests/property/candid_rpc/class_api/recursive/test/generate_tests.ts new file mode 100644 index 0000000000..f051ae2125 --- /dev/null +++ b/tests/property/candid_rpc/class_api/recursive/test/generate_tests.ts @@ -0,0 +1,32 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Recursive } from 'azle/test/property/arbitraries/candid/recursive'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamRecursive: Named>[], + returnRecursive: CandidValueAndMeta +): Test[][] { + return [ + [ + { + name: `recursive ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const params = namedParamRecursive.map( + (param) => param.value.value.agentArgumentValue + ); + + const result = await actor[functionName](...params); + + return testEquality( + result, + returnRecursive.value.agentResponseValue + ); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/recursive/test/test.ts b/tests/property/candid_rpc/class_api/recursive/test/test.ts new file mode 100644 index 0000000000..4e39b52dbe --- /dev/null +++ b/tests/property/candid_rpc/class_api/recursive/test/test.ts @@ -0,0 +1,49 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { RecursiveArb } from 'azle/test/property/arbitraries/candid/recursive'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { UpdateMethodArb } from 'azle/test/property/arbitraries/canister_methods/update_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllRecursiveQueryMethodArb = fc.oneof( + QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(RecursiveArb(context)), + RecursiveArb(context) + ), + UpdateMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(RecursiveArb(context)), + RecursiveArb(context) + ) +); + +const CanisterConfigArb = fc + .array(AllRecursiveQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb), true); diff --git a/tests/property/candid_rpc/class_syntax/recursive/tsconfig.json b/tests/property/candid_rpc/class_api/recursive/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/recursive/tsconfig.json rename to tests/property/candid_rpc/class_api/recursive/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/service/dfx.json b/tests/property/candid_rpc/class_api/service/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/service/dfx.json rename to tests/property/candid_rpc/class_api/service/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/service/package-lock.json b/tests/property/candid_rpc/class_api/service/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/service/package-lock.json rename to tests/property/candid_rpc/class_api/service/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/service/package.json b/tests/property/candid_rpc/class_api/service/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/service/package.json rename to tests/property/candid_rpc/class_api/service/package.json diff --git a/tests/property/candid_rpc/class_api/service/test/generate_body.ts b/tests/property/candid_rpc/class_api/service/test/generate_body.ts new file mode 100644 index 0000000000..756cbbde24 --- /dev/null +++ b/tests/property/candid_rpc/class_api/service/test/generate_body.ts @@ -0,0 +1,28 @@ +import { Principal } from '@dfinity/principal'; +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; + +export function generateBody( + namedParamServices: Named>[], + returnService: CandidValueAndMeta +): string { + const paramsAreServices = namedParamServices + .map((param) => { + const paramIsAService = `(${ + param.name + } as any).toText() === "${param.value.value.agentArgumentValue.toText()}"`; + + const throwError = `throw new Error('${param.name} must be a Service');`; + + return `if (!(${paramIsAService})) ${throwError}`; + }) + .join('\n'); + + const returnStatement = returnService.src.valueLiteral; + + return ` + ${paramsAreServices} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/class_api/service/test/generate_tests.ts b/tests/property/candid_rpc/class_api/service/test/generate_tests.ts new file mode 100644 index 0000000000..f1e003ce6e --- /dev/null +++ b/tests/property/candid_rpc/class_api/service/test/generate_tests.ts @@ -0,0 +1,42 @@ +import { Principal } from '@dfinity/principal'; +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import { execSync } from 'child_process'; + +export function generateTests( + functionName: string, + namedParamServices: Named>[], + returnService: CandidValueAndMeta +): Test[][] { + return [ + [ + { + name: `service ${functionName}`, + test: async (): Promise => { + // Using execSync because the JS Agent has a bug expecting services + // to be ordered by hash or something. + // See https://forum.dfinity.org/t/topic/20885/14 + + const paramsString = namedParamServices + .map( + (param) => + `service "${param.value.value.agentArgumentValue.toText()}"` + ) + .join(); + + const result = execSync( + `dfx canister call canister ${functionName} '(${paramsString})'` + ) + .toString() + .trim(); + + return testEquality( + result, + `(service "${returnService.value.agentArgumentValue.toText()}")` + ); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/service/test/test.ts b/tests/property/candid_rpc/class_api/service/test/test.ts new file mode 100644 index 0000000000..1b88464323 --- /dev/null +++ b/tests/property/candid_rpc/class_api/service/test/test.ts @@ -0,0 +1,40 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { ServiceArb } from 'azle/test/property/arbitraries/candid/reference/service_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllServicesQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.uniqueArray(ServiceArb(context), { + selector: (entry) => entry.src.typeAnnotation + }), + ServiceArb(context) +); + +const CanisterConfigArb = fc + .array(AllServicesQueryMethodArb, { + ...defaultArrayConstraints, + maxLength: 30 // If the number of generated services is too large we will run out of space in the wasm custom section. + }) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/service/tsconfig.json b/tests/property/candid_rpc/class_api/service/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/service/tsconfig.json rename to tests/property/candid_rpc/class_api/service/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/dfx.json b/tests/property/candid_rpc/class_api/stable_b_tree_map/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/stable_b_tree_map/dfx.json rename to tests/property/candid_rpc/class_api/stable_b_tree_map/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/package-lock.json b/tests/property/candid_rpc/class_api/stable_b_tree_map/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/stable_b_tree_map/package-lock.json rename to tests/property/candid_rpc/class_api/stable_b_tree_map/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/package.json b/tests/property/candid_rpc/class_api/stable_b_tree_map/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/stable_b_tree_map/package.json rename to tests/property/candid_rpc/class_api/stable_b_tree_map/package.json diff --git a/tests/property/candid_rpc/class_api/stable_b_tree_map/test/contains_key.ts b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/contains_key.ts new file mode 100644 index 0000000000..4d221fc4c0 --- /dev/null +++ b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/contains_key.ts @@ -0,0 +1,121 @@ +import { getActor } from 'azle/test/property'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { StableBTreeMap } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { UniqueIdentifierArb } from 'azle/test/property/arbitraries/unique_identifier_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +export function ContainsKeyTestArb( + stableBTreeMap: StableBTreeMap +): fc.Arbitrary { + return fc + .tuple(UniqueIdentifierArb('canisterProperties')) + .map(([functionName]): QueryMethod => { + const imports = new Set([ + ...stableBTreeMap.imports, + 'IDL', + 'query' + ]); + + const paramTypeObjects = [ + stableBTreeMap.keySample.src.typeObject + ].join(', '); + + const paramName = [ + `param0: ${stableBTreeMap.keySample.src.typeAnnotation}` + ].join(', '); + + const returnTypeObject = 'IDL.Bool'; + const returnTypeAnnotation = 'boolean'; + const body = generateBody(stableBTreeMap.name); + const tests = generateTests( + functionName, + stableBTreeMap.keySample.value.agentArgumentValue + ); + + return { + imports, + globalDeclarations: [], + sourceCode: generateSourceCode( + functionName, + paramName, + body, + paramTypeObjects, + returnTypeObject, + returnTypeAnnotation + ), + tests + }; + }); +} + +function generateSourceCode( + functionName: string, + paramName: string, + body: string, + paramTypeObjects: string, + returnTypeObject: string, + returnTypeAnnotation: string +): string { + return ` + @query([${paramTypeObjects}], ${returnTypeObject}) + ${functionName}(${paramName}): ${returnTypeAnnotation} { + ${body} + }`; +} + +function generateBody(stableBTreeMapName: string): string { + return /*TS*/ ` + return ${stableBTreeMapName}.containsKey(param0); + `; +} + +function generateTests( + functionName: string, + keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'] +): Test[][] { + return [ + [ + { + name: `containsKey after first deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + keySampleAgentArgumentValue + ); + + return testEquality(result, true); + } + } + ], + [ + { + name: `containsKey after second deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + keySampleAgentArgumentValue + ); + + return testEquality(result, true); + } + } + ], + [ + { + name: `containsKey after third deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + keySampleAgentArgumentValue + ); + + return testEquality(result, false); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/stable_b_tree_map/test/get.ts b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/get.ts new file mode 100644 index 0000000000..b7613e01a2 --- /dev/null +++ b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/get.ts @@ -0,0 +1,125 @@ +import { getActor } from 'azle/test/property'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { StableBTreeMap } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { UniqueIdentifierArb } from 'azle/test/property/arbitraries/unique_identifier_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +export function GetTestArb( + stableBTreeMap: StableBTreeMap +): fc.Arbitrary { + return fc + .tuple(UniqueIdentifierArb('canisterProperties')) + .map(([functionName]): QueryMethod => { + const imports = new Set([ + ...stableBTreeMap.imports, + 'query', + 'IDL' + ]); + + const paramTypeObjects = [ + stableBTreeMap.keySample.src.typeObject + ].join(', '); + + const paramNames = [ + `param0: ${stableBTreeMap.keySample.src.typeAnnotation}` + ].join(', '); + + const returnTypeObject = `IDL.Opt(${stableBTreeMap.valueSample.src.typeObject})`; + const returnTypeAnnotation = + stableBTreeMap.valueSample.src.typeAnnotation; + const valueTypeIsNull = + stableBTreeMap.valueSample.src.typeAnnotation === 'null'; + const body = generateBody(stableBTreeMap.name, valueTypeIsNull); + + const tests = generateTests( + functionName, + stableBTreeMap.keySample.value.agentArgumentValue, + stableBTreeMap.valueSample.value.agentArgumentValue + ); + + return { + imports, + globalDeclarations: [], + sourceCode: `@query([${paramTypeObjects}], ${returnTypeObject}) + ${functionName}(${paramNames}): [${returnTypeAnnotation}] | [] { + ${body} + }`, + tests + }; + }); +} + +function generateBody( + stableBTreeMapName: string, + valueTypeIsNull: boolean +): string { + return /*TS*/ ` + const result = ${stableBTreeMapName}.get(param0); + ${ + valueTypeIsNull + ? `const containsKey = ${stableBTreeMapName}.containsKey(param0);` + : '' + } + if (result === null ${valueTypeIsNull ? '&& !containsKey' : ''}) { + return [] + } else { + return [result] + } + `; +} + +function generateTests( + functionName: string, + keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'], + valueSampleAgentArgumentValue: StableBTreeMap['valueSample']['value']['agentArgumentValue'] +): Test[][] { + return [ + [ + { + name: `get after first deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + keySampleAgentArgumentValue + ); + + return testEquality(result, [ + valueSampleAgentArgumentValue + ]); + } + } + ], + [ + { + name: `get after second deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + keySampleAgentArgumentValue + ); + + return testEquality(result, [ + valueSampleAgentArgumentValue + ]); + } + } + ], + [ + { + name: `get after third deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + keySampleAgentArgumentValue + ); + + return testEquality(result, []); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/stable_b_tree_map/test/insert.ts b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/insert.ts new file mode 100644 index 0000000000..8adf201b01 --- /dev/null +++ b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/insert.ts @@ -0,0 +1,85 @@ +import { getActor } from 'azle/test/property'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { StableBTreeMap } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { UniqueIdentifierArb } from 'azle/test/property/arbitraries/unique_identifier_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +export function InsertTestArb( + stableBTreeMap: StableBTreeMap +): fc.Arbitrary { + return fc + .tuple(UniqueIdentifierArb('canisterProperties')) + .map(([functionName]): QueryMethod => { + const imports = new Set([ + ...stableBTreeMap.imports, + 'IDL', + 'update' + ]); + + const paramTypeObjects = [ + stableBTreeMap.keySample.src.typeObject, + stableBTreeMap.valueSample.src.typeObject + ].join(', '); + + const paramNames = [ + `param0: ${stableBTreeMap.keySample.src.typeAnnotation}`, + `param1: ${stableBTreeMap.valueSample.src.typeAnnotation}` + ].join(', '); + + const returnTypeObject = `IDL.Opt(${stableBTreeMap.valueSample.src.typeObject})`; + const returnTypeAnnotation = `[${stableBTreeMap.valueSample.src.typeAnnotation}] | []`; + const body = generateBody(stableBTreeMap.name); + + const tests = generateTests( + functionName, + stableBTreeMap.keySample.value.agentArgumentValue, + stableBTreeMap.valueSample.value.agentArgumentValue + ); + + return { + imports, + globalDeclarations: [], + sourceCode: `@update([${paramTypeObjects}], ${returnTypeObject}) + ${functionName}(${paramNames}): ${returnTypeAnnotation} { + ${body} + }`, + tests + }; + }); +} + +function generateBody(stableBTreeMapName: string): string { + return /*TS*/ ` + const result = ${stableBTreeMapName}.insert(param0, param1); + if (result === null) { + return [] + } else { + return [result] + } + `; +} + +function generateTests( + functionName: string, + keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'], + valueSampleAgentArgumentValue: StableBTreeMap['valueSample']['value']['agentArgumentValue'] +): Test[][] { + return [ + [ + { + name: `insert after first deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + keySampleAgentArgumentValue, + valueSampleAgentArgumentValue + ); + + return testEquality(result, []); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/stable_b_tree_map/test/is_empty.ts b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/is_empty.ts new file mode 100644 index 0000000000..ecd8b33e32 --- /dev/null +++ b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/is_empty.ts @@ -0,0 +1,81 @@ +import { getActor } from 'azle/test/property'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { StableBTreeMap } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { UniqueIdentifierArb } from 'azle/test/property/arbitraries/unique_identifier_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +export function IsEmptyTestArb( + stableBTreeMap: StableBTreeMap +): fc.Arbitrary { + return fc + .tuple(UniqueIdentifierArb('canisterProperties')) + .map(([functionName]): QueryMethod => { + const imports = new Set([ + ...stableBTreeMap.imports, + 'IDL', + 'query' + ]); + + const body = generateBody(stableBTreeMap.name); + + const tests = generateTests(functionName); + + return { + imports, + globalDeclarations: [], + sourceCode: `@query([], IDL.Bool) + ${functionName}(): boolean { + ${body} + }`, + tests + }; + }); +} + +function generateBody(stableBTreeMapName: string): string { + return ` + return ${stableBTreeMapName}.isEmpty(); + `; +} + +function generateTests(functionName: string): Test[][] { + return [ + [ + { + name: `isEmpty after first deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality(result, true); + } + } + ], + [ + { + name: `isEmpty after second deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality(result, false); + } + } + ], + [ + { + name: `isEmpty after third deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality(result, true); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/stable_b_tree_map/test/items.ts b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/items.ts new file mode 100644 index 0000000000..02d8d82f9a --- /dev/null +++ b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/items.ts @@ -0,0 +1,101 @@ +import { getActor } from 'azle/test/property'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { StableBTreeMap } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { UniqueIdentifierArb } from 'azle/test/property/arbitraries/unique_identifier_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +export function ItemsTestArb( + stableBTreeMap: StableBTreeMap +): fc.Arbitrary { + return fc + .tuple(UniqueIdentifierArb('canisterProperties')) + .map(([functionName]): QueryMethod => { + const imports = new Set([ + ...stableBTreeMap.imports, + 'IDL', + 'query' + ]); + + const returnTypeObject = `IDL.Vec(IDL.Tuple(${stableBTreeMap.keySample.src.typeObject}, ${stableBTreeMap.valueSample.src.typeObject}))`; + const returnTypeAnnotation = `[${stableBTreeMap.keySample.src.typeAnnotation}, ${stableBTreeMap.valueSample.src.typeAnnotation}][]`; + const body = generateBody(stableBTreeMap.name); + + const tests = generateTests( + functionName, + stableBTreeMap.keySample.value.agentArgumentValue, + stableBTreeMap.valueSample.value.agentArgumentValue + ); + + return { + imports, + globalDeclarations: [], + sourceCode: `@query([], ${returnTypeObject}) + ${functionName}(): ${returnTypeAnnotation} { + ${body} + }`, + tests + }; + }); +} + +function generateBody(stableBTreeMapName: string): string { + return ` + return ${stableBTreeMapName}.items(); + `; +} + +function generateTests( + functionName: string, + keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'], + valueSampleAgentArgumentValue: StableBTreeMap['valueSample']['value']['agentArgumentValue'] +): Test[][] { + return [ + [ + { + name: `items after first deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality(result, [ + [ + keySampleAgentArgumentValue, + valueSampleAgentArgumentValue + ] + ]); + } + } + ], + [ + { + name: `items after second deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality(result, [ + [ + keySampleAgentArgumentValue, + valueSampleAgentArgumentValue + ] + ]); + } + } + ], + [ + { + name: `items after third deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality(result, []); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/stable_b_tree_map/test/keys.ts b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/keys.ts new file mode 100644 index 0000000000..f3a09dc853 --- /dev/null +++ b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/keys.ts @@ -0,0 +1,124 @@ +import { getActor } from 'azle/test/property'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { StableBTreeMap } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { UniqueIdentifierArb } from 'azle/test/property/arbitraries/unique_identifier_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +import { + getArrayForCandidTypeObject, + getArrayStringForTypeObject, + getArrayTypeAnnotation +} from './utils'; + +export function KeysTestArb( + stableBTreeMap: StableBTreeMap +): fc.Arbitrary { + return fc + .tuple(UniqueIdentifierArb('canisterProperties')) + .map(([functionName]): QueryMethod => { + const imports = new Set([ + ...stableBTreeMap.imports, + 'IDL', + 'query' + ]); + + const returnTypeObject = `IDL.Vec(${stableBTreeMap.keySample.src.typeObject})`; + const returnTypeAnnotation = getArrayTypeAnnotation( + stableBTreeMap.keySample.src.typeObject, + stableBTreeMap.keySample.src.typeAnnotation + ); + const body = generateBody( + stableBTreeMap.name, + stableBTreeMap.keySample.src.typeObject + ); + + const tests = generateTests(functionName, stableBTreeMap.keySample); + + return { + imports, + globalDeclarations: [], + sourceCode: `@query([], ${returnTypeObject}) + ${functionName}(): ${returnTypeAnnotation} { + ${body} + }`, + tests + }; + }); +} + +function generateBody( + stableBTreeMapName: string, + stableBTreeMapKeyTypeObject: string +): string { + return ` + return ${getArrayStringForTypeObject( + stableBTreeMapKeyTypeObject + )}(${stableBTreeMapName}.keys()); + `; +} + +function generateTests( + functionName: string, + keySample: StableBTreeMap['keySample'] +): Test[][] { + return [ + [ + { + name: `keys after first deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality( + getArrayForCandidTypeObject( + keySample.src.typeObject + ).from(result), + getArrayForCandidTypeObject( + keySample.src.typeObject + ).from([keySample.value.agentArgumentValue]) + ); + } + } + ], + [ + { + name: `keys after second deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality( + getArrayForCandidTypeObject( + keySample.src.typeObject + ).from(result), + getArrayForCandidTypeObject( + keySample.src.typeObject + ).from([keySample.value.agentArgumentValue]) + ); + } + } + ], + [ + { + name: `keys after third deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality( + getArrayForCandidTypeObject( + keySample.src.typeObject + ).from(result), + getArrayForCandidTypeObject( + keySample.src.typeObject + ).from([]) + ); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/stable_b_tree_map/test/len.ts b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/len.ts new file mode 100644 index 0000000000..4deaa182b0 --- /dev/null +++ b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/len.ts @@ -0,0 +1,83 @@ +import { getActor } from 'azle/test/property'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { StableBTreeMap } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { UniqueIdentifierArb } from 'azle/test/property/arbitraries/unique_identifier_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +export function LenTestArb( + stableBTreeMap: StableBTreeMap +): fc.Arbitrary { + return fc + .tuple(UniqueIdentifierArb('canisterProperties')) + .map(([functionName]): QueryMethod => { + const imports = new Set([ + ...stableBTreeMap.imports, + 'IDL', + 'query' + ]); + + const returnTypeObject = `IDL.Nat64`; + const returnTypeAnnotation = `bigint`; + const body = generateBody(stableBTreeMap.name); + + const tests = generateTests(functionName); + + return { + imports, + globalDeclarations: [], + sourceCode: `@query([], ${returnTypeObject}) + ${functionName}(): ${returnTypeAnnotation} { + ${body} + }`, + tests + }; + }); +} + +function generateBody(stableBTreeMapName: string): string { + return ` + return ${stableBTreeMapName}.len(); + `; +} + +function generateTests(functionName: string): Test[][] { + return [ + [ + { + name: `len after first deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality(result, 1n); + } + } + ], + [ + { + name: `len after second deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality(result, 1n); + } + } + ], + [ + { + name: `len after third deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality(result, 0n); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/stable_b_tree_map/test/remove.ts b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/remove.ts new file mode 100644 index 0000000000..78958f8cba --- /dev/null +++ b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/remove.ts @@ -0,0 +1,95 @@ +import { getActor } from 'azle/test/property'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { StableBTreeMap } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { UniqueIdentifierArb } from 'azle/test/property/arbitraries/unique_identifier_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +export function RemoveTestArb( + stableBTreeMap: StableBTreeMap +): fc.Arbitrary { + return fc + .tuple(UniqueIdentifierArb('canisterProperties')) + .map(([functionName]): QueryMethod => { + const imports = new Set([ + ...stableBTreeMap.imports, + 'IDL', + 'update' + ]); + + const paramTypeObjects = [ + stableBTreeMap.keySample.src.typeObject + ].join(', '); + + const paramNames = [ + `param0: ${stableBTreeMap.keySample.src.typeAnnotation}` + ].join(', '); + + const returnTypeObject = `IDL.Opt(${stableBTreeMap.valueSample.src.typeObject})`; + const returnTypeAnnotation = `[${stableBTreeMap.valueSample.src.typeAnnotation}] | []`; + const valueTypeIsNull = + stableBTreeMap.valueSample.src.typeAnnotation === 'null'; + const body = generateBody(stableBTreeMap.name, valueTypeIsNull); + + const tests = generateTests( + functionName, + stableBTreeMap.keySample.value.agentArgumentValue, + stableBTreeMap.valueSample.value.agentArgumentValue + ); + + return { + imports, + globalDeclarations: [], + sourceCode: `@update([${paramTypeObjects}], ${returnTypeObject}) + ${functionName}(${paramNames}): ${returnTypeAnnotation} { + ${body} + }`, + tests + }; + }); +} + +function generateBody( + stableBTreeMapName: string, + valueTypeIsNull: boolean +): string { + return /*TS*/ ` + ${ + valueTypeIsNull + ? `const containsKey = ${stableBTreeMapName}.containsKey(param0);` + : '' + } + const result = ${stableBTreeMapName}.remove(param0); + if (result === null ${valueTypeIsNull ? '&& !containsKey' : ''}) { + return [] + } else { + return [result] + } + `; +} + +function generateTests( + functionName: string, + keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'], + valueSampleAgentArgumentValue: StableBTreeMap['valueSample']['value']['agentArgumentValue'] +): Test[][] { + return [ + [], + [ + { + name: `remove after second deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + keySampleAgentArgumentValue + ); + + return testEquality(result, [ + valueSampleAgentArgumentValue + ]); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/stable_b_tree_map/test/test.ts b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/test.ts new file mode 100644 index 0000000000..3298793d8d --- /dev/null +++ b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/test.ts @@ -0,0 +1,95 @@ +import { runPropTests } from 'azle/test/property'; +import { CanisterArb } from 'azle/test/property/arbitraries/canister_arb'; +import { StableBTreeMapArb } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { Context } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { ContainsKeyTestArb } from './contains_key'; +import { GetTestArb } from './get'; +import { InsertTestArb } from './insert'; +import { IsEmptyTestArb } from './is_empty'; +import { ItemsTestArb } from './items'; +import { KeysTestArb } from './keys'; +import { LenTestArb } from './len'; +import { RemoveTestArb } from './remove'; +import { ValuesTestArb } from './values'; + +const context: Context = { api: 'class', constraints: {} }; + +const StableBTreeMapTestArb = fc + .array( + StableBTreeMapArb(context).chain((stableBTreeMap) => { + return fc + .tuple( + IsEmptyTestArb(stableBTreeMap), + InsertTestArb(stableBTreeMap), + ContainsKeyTestArb(stableBTreeMap), + GetTestArb(stableBTreeMap), + ItemsTestArb(stableBTreeMap), + KeysTestArb(stableBTreeMap), + LenTestArb(stableBTreeMap), + ValuesTestArb(stableBTreeMap), + RemoveTestArb(stableBTreeMap) + ) + .map( + ([ + isEmptyTestQueryMethod, + insertTestQueryMethod, + containsKeyTestQueryMethod, + getTestQueryMethod, + itemsTestQueryMethod, + keysTestQueryMethod, + lenTestQueryMethod, + valuesTestQueryMethod, + removeTestQueryMethod + ]) => { + return { + globalDeclarations: [ + ...stableBTreeMap.keySample.src + .variableAliasDeclarations, + ...stableBTreeMap.valueSample.src + .variableAliasDeclarations, + stableBTreeMap.definition + ], + queryMethods: [], + updateMethods: [ + isEmptyTestQueryMethod, + insertTestQueryMethod, + containsKeyTestQueryMethod, + getTestQueryMethod, + itemsTestQueryMethod, + keysTestQueryMethod, + lenTestQueryMethod, + valuesTestQueryMethod, + removeTestQueryMethod + ] + }; + } + ); + }), + { + minLength: 10, + maxLength: 30 + } + ) + .map((canisterConfigs) => { + const globalDeclarations = canisterConfigs.flatMap( + (canisterConfig) => canisterConfig.globalDeclarations + ); + + const queryMethods = canisterConfigs.flatMap( + (canisterConfig) => canisterConfig.queryMethods + ); + + const updateMethods = canisterConfigs.flatMap( + (canisterConfig) => canisterConfig.updateMethods + ); + + return { + globalDeclarations, + queryMethods, + updateMethods + }; + }); + +runPropTests(CanisterArb(context, StableBTreeMapTestArb)); diff --git a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/utils.ts b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/utils.ts similarity index 100% rename from tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/utils.ts rename to tests/property/candid_rpc/class_api/stable_b_tree_map/test/utils.ts diff --git a/tests/property/candid_rpc/class_api/stable_b_tree_map/test/values.ts b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/values.ts new file mode 100644 index 0000000000..ebdf3d3ab5 --- /dev/null +++ b/tests/property/candid_rpc/class_api/stable_b_tree_map/test/values.ts @@ -0,0 +1,127 @@ +import { getActor } from 'azle/test/property'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { StableBTreeMap } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { UniqueIdentifierArb } from 'azle/test/property/arbitraries/unique_identifier_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +import { + getArrayForCandidTypeObject, + getArrayStringForTypeObject, + getArrayTypeAnnotation +} from './utils'; + +export function ValuesTestArb( + stableBTreeMap: StableBTreeMap +): fc.Arbitrary { + return fc + .tuple(UniqueIdentifierArb('canisterProperties')) + .map(([functionName]): QueryMethod => { + const imports = new Set([ + ...stableBTreeMap.imports, + 'IDL', + 'query' + ]); + + const returnTypeObject = `IDL.Vec(${stableBTreeMap.valueSample.src.typeObject})`; + const returnTypeAnnotation = getArrayTypeAnnotation( + stableBTreeMap.valueSample.src.typeObject, + stableBTreeMap.valueSample.src.typeAnnotation + ); + const body = generateBody( + stableBTreeMap.name, + stableBTreeMap.valueSample.src.typeObject + ); + + const tests = generateTests( + functionName, + stableBTreeMap.valueSample + ); + + return { + imports, + globalDeclarations: [], + sourceCode: `@query([], ${returnTypeObject}) + ${functionName}(): ${returnTypeAnnotation} { + ${body} + }`, + tests + }; + }); +} + +function generateBody( + stableBTreeMapName: string, + stableBTreeMapValueTypeObject: string +): string { + return ` + return ${getArrayStringForTypeObject( + stableBTreeMapValueTypeObject + )}(${stableBTreeMapName}.values()); + `; +} + +function generateTests( + functionName: string, + valueSample: StableBTreeMap['valueSample'] +): Test[][] { + return [ + [ + { + name: `values after first deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality( + getArrayForCandidTypeObject( + valueSample.src.typeObject + ).from(result), + getArrayForCandidTypeObject( + valueSample.src.typeObject + ).from([valueSample.value.agentArgumentValue]) + ); + } + } + ], + [ + { + name: `values after second deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality( + getArrayForCandidTypeObject( + valueSample.src.typeObject + ).from(result), + getArrayForCandidTypeObject( + valueSample.src.typeObject + ).from([valueSample.value.agentArgumentValue]) + ); + } + } + ], + [ + { + name: `values after third deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality( + getArrayForCandidTypeObject( + valueSample.src.typeObject + ).from(result), + getArrayForCandidTypeObject( + valueSample.src.typeObject + ).from([]) + ); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/tsconfig.json b/tests/property/candid_rpc/class_api/stable_b_tree_map/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/stable_b_tree_map/tsconfig.json rename to tests/property/candid_rpc/class_api/stable_b_tree_map/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/text/dfx.json b/tests/property/candid_rpc/class_api/text/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/text/dfx.json rename to tests/property/candid_rpc/class_api/text/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/text/package-lock.json b/tests/property/candid_rpc/class_api/text/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/text/package-lock.json rename to tests/property/candid_rpc/class_api/text/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/text/package.json b/tests/property/candid_rpc/class_api/text/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/text/package.json rename to tests/property/candid_rpc/class_api/text/package.json diff --git a/tests/property/candid_rpc/class_api/text/test/generate_body.ts b/tests/property/candid_rpc/class_api/text/test/generate_body.ts new file mode 100644 index 0000000000..12eb7385e2 --- /dev/null +++ b/tests/property/candid_rpc/class_api/text/test/generate_body.ts @@ -0,0 +1,28 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamTexts: Named>[], + returnText: CandidValueAndMeta +): string { + const paramsAreStrings = namedParamTexts + .map((param) => { + return `if (typeof ${param.name} !== 'string') throw new Error('${param.name} must be a string');`; + }) + .join('\n'); + + const returnStatement = namedParamTexts.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnText.src.valueLiteral); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamTexts); + + return ` + ${paramsAreStrings} + + ${paramsCorrectlyOrdered} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/class_api/text/test/generate_tests.ts b/tests/property/candid_rpc/class_api/text/test/generate_tests.ts new file mode 100644 index 0000000000..864fad0251 --- /dev/null +++ b/tests/property/candid_rpc/class_api/text/test/generate_tests.ts @@ -0,0 +1,32 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamTexts: Named>[], + returnTexts: CandidValueAndMeta +): Test[][] { + const expectedResult = namedParamTexts.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnTexts.value.agentResponseValue + ); + const paramValues = namedParamTexts.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `text ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/text/test/test.ts b/tests/property/candid_rpc/class_api/text/test/test.ts new file mode 100644 index 0000000000..2ce2f9e055 --- /dev/null +++ b/tests/property/candid_rpc/class_api/text/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { TextArb } from 'azle/test/property/arbitraries/candid/primitive/text'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllTextsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(TextArb(context)), + TextArb(context) +); + +const CanisterConfigArb = fc + .array(AllTextsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/text/tsconfig.json b/tests/property/candid_rpc/class_api/text/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/text/tsconfig.json rename to tests/property/candid_rpc/class_api/text/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/tuple/dfx.json b/tests/property/candid_rpc/class_api/tuple/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/tuple/dfx.json rename to tests/property/candid_rpc/class_api/tuple/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/tuple/package-lock.json b/tests/property/candid_rpc/class_api/tuple/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/tuple/package-lock.json rename to tests/property/candid_rpc/class_api/tuple/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/tuple/package.json b/tests/property/candid_rpc/class_api/tuple/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/tuple/package.json rename to tests/property/candid_rpc/class_api/tuple/package.json diff --git a/tests/property/candid_rpc/class_api/tuple/test/generate_body.ts b/tests/property/candid_rpc/class_api/tuple/test/generate_body.ts new file mode 100644 index 0000000000..9d15797453 --- /dev/null +++ b/tests/property/candid_rpc/class_api/tuple/test/generate_body.ts @@ -0,0 +1,36 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { + ReturnTuple, + Tuple +} from 'azle/test/property/arbitraries/candid/constructed/tuple_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamTuples: Named>[], + returnTuple: CandidValueAndMeta +): string { + const paramsAreTuples = namedParamTuples + .map((param) => { + const fieldsCount = param.value.value.agentArgumentValue.length; + + const paramIsArray = `Array.isArray(${param.name})`; + const paramHasCorrectNumberOfFields = `${param.name}.length === ${fieldsCount}`; + const throwError = `throw new Error('${param.name} must be a Tuple');`; + + return `if (!(${paramIsArray} && ${paramHasCorrectNumberOfFields})) ${throwError}`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamTuples); + + const returnStatement = returnTuple.src.valueLiteral; + + return ` + ${paramsAreTuples} + + ${paramsCorrectlyOrdered} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/class_api/tuple/test/generate_tests.ts b/tests/property/candid_rpc/class_api/tuple/test/generate_tests.ts new file mode 100644 index 0000000000..387be4ae21 --- /dev/null +++ b/tests/property/candid_rpc/class_api/tuple/test/generate_tests.ts @@ -0,0 +1,34 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { + ReturnTuple, + Tuple +} from 'azle/test/property/arbitraries/candid/constructed/tuple_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamTuples: Named>[], + returnTuple: CandidValueAndMeta +): Test[][] { + const expectedResult = returnTuple.value.agentResponseValue; + + return [ + [ + { + name: `tuple ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + ...namedParamTuples.map( + (param) => param.value.value.agentArgumentValue + ) + ); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/tuple/test/test.ts b/tests/property/candid_rpc/class_api/tuple/test/test.ts new file mode 100644 index 0000000000..bbb535b587 --- /dev/null +++ b/tests/property/candid_rpc/class_api/tuple/test/test.ts @@ -0,0 +1,37 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { TupleArb } from 'azle/test/property/arbitraries/candid/constructed/tuple_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllTuplesQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.uniqueArray(TupleArb(context), { + selector: (entry) => entry.src.typeAnnotation + }), + TupleArb(context) +); + +const CanisterConfigArb = fc + .array(AllTuplesQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/tuple/tsconfig.json b/tests/property/candid_rpc/class_api/tuple/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/tuple/tsconfig.json rename to tests/property/candid_rpc/class_api/tuple/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/variant/dfx.json b/tests/property/candid_rpc/class_api/variant/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/variant/dfx.json rename to tests/property/candid_rpc/class_api/variant/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/variant/package-lock.json b/tests/property/candid_rpc/class_api/variant/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/variant/package-lock.json rename to tests/property/candid_rpc/class_api/variant/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/variant/package.json b/tests/property/candid_rpc/class_api/variant/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/variant/package.json rename to tests/property/candid_rpc/class_api/variant/package.json diff --git a/tests/property/candid_rpc/class_api/variant/test/generate_body.ts b/tests/property/candid_rpc/class_api/variant/test/generate_body.ts new file mode 100644 index 0000000000..74c5ff75b8 --- /dev/null +++ b/tests/property/candid_rpc/class_api/variant/test/generate_body.ts @@ -0,0 +1,28 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Variant } from 'azle/test/property/arbitraries/candid/constructed/variant_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamVariants: Named>[], + returnVariant: CandidValueAndMeta +): string { + const paramsAreVariants = namedParamVariants + .map((param) => { + return `if (typeof ${param.name} !== 'object' || Object.keys(${param.name}).length !== 1) throw new Error('${param.name} must be a Variant');`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = + areParamsCorrectlyOrdered(namedParamVariants); + + const returnStatement = returnVariant.src.valueLiteral; + + return ` + ${paramsCorrectlyOrdered} + + ${paramsAreVariants} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/class_api/variant/test/generate_tests.ts b/tests/property/candid_rpc/class_api/variant/test/generate_tests.ts new file mode 100644 index 0000000000..540ee8ead8 --- /dev/null +++ b/tests/property/candid_rpc/class_api/variant/test/generate_tests.ts @@ -0,0 +1,31 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Variant } from 'azle/test/property/arbitraries/candid/constructed/variant_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamVariants: Named>[], + returnVariant: CandidValueAndMeta +): Test[][] { + const expectedResult = returnVariant.value.agentResponseValue; + + return [ + [ + { + name: `variant ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + ...namedParamVariants.map( + (param) => param.value.value.agentArgumentValue + ) + ); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/variant/test/test.ts b/tests/property/candid_rpc/class_api/variant/test/test.ts new file mode 100644 index 0000000000..2aff295797 --- /dev/null +++ b/tests/property/candid_rpc/class_api/variant/test/test.ts @@ -0,0 +1,37 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { VariantArb } from 'azle/test/property/arbitraries/candid/constructed/variant_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllVariantsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.uniqueArray(VariantArb(context), { + selector: (entry) => entry.src.typeAnnotation + }), + VariantArb(context) +); + +const CanisterConfigArb = fc + .array(AllVariantsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/variant/tsconfig.json b/tests/property/candid_rpc/class_api/variant/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/variant/tsconfig.json rename to tests/property/candid_rpc/class_api/variant/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/vec/dfx.json b/tests/property/candid_rpc/class_api/vec/dfx.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/vec/dfx.json rename to tests/property/candid_rpc/class_api/vec/dfx.json diff --git a/tests/property/candid_rpc/class_syntax/vec/package-lock.json b/tests/property/candid_rpc/class_api/vec/package-lock.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/vec/package-lock.json rename to tests/property/candid_rpc/class_api/vec/package-lock.json diff --git a/tests/property/candid_rpc/class_syntax/vec/package.json b/tests/property/candid_rpc/class_api/vec/package.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/vec/package.json rename to tests/property/candid_rpc/class_api/vec/package.json diff --git a/tests/property/candid_rpc/class_api/vec/test/generate_body.ts b/tests/property/candid_rpc/class_api/vec/test/generate_body.ts new file mode 100644 index 0000000000..512c4d1b63 --- /dev/null +++ b/tests/property/candid_rpc/class_api/vec/test/generate_body.ts @@ -0,0 +1,26 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamVecs: Named>[], + returnVec: CandidValueAndMeta +): string { + const paramsAreArrays = namedParamVecs + .map((param) => { + return `if (!Array.isArray(${param.name}) && !ArrayBuffer.isView(${param.name})) throw new Error('${param.name} must be an array');`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamVecs); + + const returnValue = returnVec.src.valueLiteral; + + return ` + ${paramsAreArrays} + + ${paramsCorrectlyOrdered} + + return ${returnValue}; + `; +} diff --git a/tests/property/candid_rpc/class_api/vec/test/generate_tests.ts b/tests/property/candid_rpc/class_api/vec/test/generate_tests.ts new file mode 100644 index 0000000000..682face3fd --- /dev/null +++ b/tests/property/candid_rpc/class_api/vec/test/generate_tests.ts @@ -0,0 +1,29 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamVecs: Named>[], + returnVec: CandidValueAndMeta +): Test[][] { + const expectedResult = returnVec.value.agentResponseValue; + + return [ + [ + { + name: `vec ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const params = namedParamVecs.map( + (param) => param.value.value.agentArgumentValue + ); + const result = await actor[functionName](...params); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/class_api/vec/test/test.ts b/tests/property/candid_rpc/class_api/vec/test/test.ts new file mode 100644 index 0000000000..bc0c4c7665 --- /dev/null +++ b/tests/property/candid_rpc/class_api/vec/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { VecArb } from 'azle/test/property/arbitraries/candid/constructed/vec_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'class'; +const context = { api, constraints: {} }; + +const AllVecsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(VecArb(context)), + VecArb(context) +); + +const CanisterConfigArb = fc + .array(AllVecsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/vec/tsconfig.json b/tests/property/candid_rpc/class_api/vec/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/class_syntax/vec/tsconfig.json rename to tests/property/candid_rpc/class_api/vec/tsconfig.json diff --git a/tests/property/candid_rpc/class_syntax/blob/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/blob/test/generate_body.ts deleted file mode 100644 index a4b13c01e7..0000000000 --- a/tests/property/candid_rpc/class_syntax/blob/test/generate_body.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamBlobs: Named>[], - returnBlob: CandidValueAndMeta -): string { - // TODO these checks should be much more precise probably, imagine checking the elements inside of the arrays - const paramsAreUint8Arrays = namedParamBlobs - .map((param) => { - return `if (!(${param.name} instanceof Uint8Array)) throw new Error('${param.name} must be a Uint8Array');`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamBlobs); - - const returnValue = returnBlob.value.agentArgumentValue; - - const returnStatement = `Uint8Array.from([${[...returnValue]} ${ - returnValue.length > 0 ? ',' : '' - } ${namedParamBlobs.map((param) => `...${param.name}`).join(', ')}])`; - - return ` - ${paramsAreUint8Arrays} - - ${paramsCorrectlyOrdered} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/blob/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/blob/test/generate_tests.ts deleted file mode 100644 index 7a40235d34..0000000000 --- a/tests/property/candid_rpc/class_syntax/blob/test/generate_tests.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - paramBlobs: Named>[], - returnBlob: CandidValueAndMeta -): Test[][] { - const expectedResult = Uint8Array.from( - paramBlobs - .map((blob) => blob.value.value.agentResponseValue) - .reduce( - (acc, blob) => [...acc, ...blob], - [...returnBlob.value.agentResponseValue] - ) - ); - - return [ - [ - { - name: `blob ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - ...paramBlobs.map( - (blob) => blob.value.value.agentArgumentValue - ) - ); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/blob/test/test.ts b/tests/property/candid_rpc/class_syntax/blob/test/test.ts deleted file mode 100644 index a133606328..0000000000 --- a/tests/property/candid_rpc/class_syntax/blob/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { BlobArb } from 'azle/property_tests/arbitraries/candid/constructed/blob_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllBlobsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(BlobArb(context)), - BlobArb(context) -); - -const CanisterConfigArb = fc - .array(AllBlobsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/bool/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/bool/test/generate_body.ts deleted file mode 100644 index 563aed3275..0000000000 --- a/tests/property/candid_rpc/class_syntax/bool/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamBools: Named>[], - returnBool: CandidValueAndMeta -): string { - // TODO do we want to encapsulate 'boolean' in the CandidArb? Like an agentType instead of a candidType, like azleValue and agentValue? - // TODO or will this not matter anymore once we start using a deep equal library - const paramsAreBooleans = namedParamBools - .map((param) => { - return `if (typeof ${param.name} !== 'boolean') throw new Error('${param.name} must be a boolean');`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamBools); - - const returnStatement = namedParamBools.reduce((acc, { name }) => { - return `${acc} && ${name}`; - }, returnBool.src.valueLiteral); - - return ` - ${paramsAreBooleans} - - ${paramsCorrectlyOrdered} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/bool/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/bool/test/generate_tests.ts deleted file mode 100644 index a91e7cc3b6..0000000000 --- a/tests/property/candid_rpc/class_syntax/bool/test/generate_tests.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamBools: Named>[], - returnBool: CandidValueAndMeta -): Test[][] { - const expectedResult = namedParamBools.reduce( - (acc, param) => acc && param.value.value.agentResponseValue, - returnBool.value.agentResponseValue - ); - const paramValues = namedParamBools.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `bool ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/bool/test/test.ts b/tests/property/candid_rpc/class_syntax/bool/test/test.ts deleted file mode 100644 index e2ef87d7af..0000000000 --- a/tests/property/candid_rpc/class_syntax/bool/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { BoolArb } from 'azle/property_tests/arbitraries/candid/primitive/bool'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllBoolsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(BoolArb(context)), - BoolArb(context) -); - -const CanisterConfigArb = fc - .array(AllBoolsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/http_request/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/canister_methods/http_request/test/generate_body.ts deleted file mode 100644 index 1ac9d67ced..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/http_request/test/generate_body.ts +++ /dev/null @@ -1,137 +0,0 @@ -import { HttpRequest } from 'azle/experimental'; -import { Named } from 'azle/property_tests'; -import { CandidReturnType } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; - -export function generateBody( - namedParams: Named>[], - returnType: CandidValueAndMeta -): string { - const { name: requestParamName, value: requestValueObject } = - namedParams[0]; - const request = requestValueObject.value.agentArgumentValue; - - const httpMethodCheck = generateHttpMethodCheck( - request.method, - requestParamName - ); - const urlCheck = generateUrlCheck(request.url, requestParamName); - const headersMap = generateHeadersMap(request.headers, requestParamName); - const headerChecks = generateHeaderChecks(request.headers); - const bodyCheck = generateBodyCheck(request.body, requestParamName); - - return ` - // Body check has to happen before method check or else type checks might fail - ${bodyCheck} - ${httpMethodCheck} - ${urlCheck} - ${headersMap} - ${headerChecks} - - return ${returnType.src.valueLiteral}; - `; -} - -function generateHttpMethodCheck( - method: string, - requestParamName: string -): string { - return ` - if (${requestParamName}.method !== '${method}') { - throw new Error( - \`Unexpected req.method. Expected ${method} but received \${${requestParamName}.method}\` - ); - } - `; -} - -function generateUrlCheck(url: string, requestParamName: string): string { - return ` - if (decodeURIComponent(${requestParamName}.url) !== decodeURIComponent('${escape( - url - )}')) { - throw new Error( - \`Unexpected req.url. Expected '${escape( - url - )}' but received \${${requestParamName}.url}\` - ); - } - `; -} - -function generateHeadersMap( - headers: [string, string][], - requestParamName: string -): string { - return headers.length === 0 - ? '' - : ` - const headers = (${requestParamName}.headers as [string, string][]).reduce<{ - [key: string]: string} - >((prev, [name, value]) => ({[name]: value, ...prev}), {}); - `; -} - -function generateHeaderChecks(headers: [string, string][]): string { - return headers - .map(([name, value]) => { - if (value === '') { - return generateEmptyHeaderCheck(name); - } - return generateNonEmptyHeaderCheck(name, value); - }) - .join('\n'); -} - -function generateEmptyHeaderCheck(name: string): string { - return `if (headers['${escape( - name - ).toLowerCase()}'] !== undefined && headers['${escape( - name - ).toLowerCase()}'] !== '') { - throw new Error( - \`Unexpected value for header '${escape( - name - )}'. Expected undefined but received '\${headers['${escape( - name - ).toLowerCase()}']}'\` - ); - } - `; -} - -function generateNonEmptyHeaderCheck(name: string, value: string): string { - return `if (headers['${escape(name).toLowerCase()}'] !== '${escape( - value - )}') { - throw new Error( - \`Unexpected value for header '${escape( - name - )}'. Expected '${escape( - value - )}' but received '\${headers['${escape( - name - ).toLowerCase()}']}'\` - ); - } - `; -} - -function generateBodyCheck(body: Uint8Array, requestParamName: string): string { - return `if (${requestParamName}.method !== 'GET' && ${requestParamName}.body !== undefined) { - const requestBody = new TextDecoder().decode(${requestParamName}.body); - const expectedBody = "${escape(Buffer.from(body).toString('utf-8'))}" - if (requestBody !== expectedBody) { - throw new Error(\`Unexpected value for body. Expected \${expectedBody}, but received \${requestBody}\`) - } - }`; -} - -function escape(input: string): string { - return input - .replace(/\\/g, '\\\\') // Escape backslashes - .replace(/\$\{/g, '\\${') // Escape interpolation starts - .replace(/`/g, '\\`') // Escape backticks - .replace(/'/g, "\\'") // Escape single quotes - .replace(/"/g, '\\"'); // Escape double quotes -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/http_request/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/canister_methods/http_request/test/generate_tests.ts deleted file mode 100644 index cc66fcf5ca..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/http_request/test/generate_tests.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { HttpRequest, HttpResponse } from 'azle/experimental'; -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { HttpResponseAgentResponseValue } from 'azle/property_tests/arbitraries/http/response_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -import { fletch } from './fletch'; - -export function generateTests( - functionName: string, - params: Named>[], - returnType: CandidValueAndMeta< - HttpResponse, - HttpResponseAgentResponseValue - > -): Test[][] { - const request = params[0].value.value.agentArgumentValue; - const expectedResponse = returnType.value.agentResponseValue; - - return [ - [ - { - name: functionName, - test: async (): Promise => { - const response = await fletch('canister', request); - const filteredHeaders = response.headers - .filter( - ([name]) => - name !== 'x-ic-streaming-response' && - name !== 'content-length' && - name !== 'date' - ) - .sort(); - const processedResponse = { - status: response.status, - headers: filteredHeaders, - body: response.body - }; - const sortedExpectedHeaders = - expectedResponse.headers.sort(); - const processedExpectedResponse = { - ...expectedResponse, - headers: sortedExpectedHeaders - }; - - return testEquality( - processedResponse, - processedExpectedResponse - ); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/http_request/test/test.ts b/tests/property/candid_rpc/class_syntax/canister_methods/http_request/test/test.ts deleted file mode 100644 index f0f5a3f229..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/http_request/test/test.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { HttpRequest } from 'azle/experimental'; -import { runPropTests } from 'azle/property_tests'; -import { RecordArb } from 'azle/property_tests/arbitraries/candid/constructed/record_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { HttpRequestArb } from 'azle/property_tests/arbitraries/http/request_arb'; -import { HttpResponseArb } from 'azle/property_tests/arbitraries/http/response_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const CanisterConfigArb = RecordArb(context) - .chain((record) => { - const HttpRequestMethodArb = QueryMethodArb( - { - api, - constraints: { - name: 'http_request', - generateBody, - generateTests - } - }, - fc.tuple(HttpRequestArb(context)), - HttpResponseArb(context, record) - ); - - return HttpRequestMethodArb; - }) - .map((httpRequestMethod): CanisterConfig => { - return { - queryMethods: [httpRequestMethod] - }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/test/generate_body.ts deleted file mode 100644 index 1157342cb0..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/test/generate_body.ts +++ /dev/null @@ -1,139 +0,0 @@ -import { HttpRequest } from 'azle/experimental'; -import { Named } from 'azle/property_tests'; -import { CandidReturnType } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; - -export function generateBody( - namedParams: Named>[], - returnType: CandidValueAndMeta -): string { - const { name: requestParamName, value: requestValueObject } = - namedParams[0]; - const request = requestValueObject.value.agentArgumentValue; - - const httpMethodCheck = generateHttpMethodCheck( - request.method, - requestParamName - ); - const urlCheck = generateUrlCheck(request.url, requestParamName); - const headersMap = generateHeadersMap(request.headers, requestParamName); - const headerChecks = generateHeaderChecks(request.headers); - const bodyCheck = generateBodyCheck(request.body, requestParamName); - - return ` - state++; - - // Body check has to happen before method check or else type checks might fail - ${bodyCheck} - ${httpMethodCheck} - ${urlCheck} - ${headersMap} - ${headerChecks} - - return ${returnType.src.valueLiteral}; - `; -} - -function generateHttpMethodCheck( - method: string, - requestParamName: string -): string { - return ` - if (${requestParamName}.method !== '${method}') { - throw new Error( - \`Unexpected req.method. Expected ${method} but received \${${requestParamName}.method}\` - ); - } - `; -} - -function generateUrlCheck(url: string, requestParamName: string): string { - return ` - if (decodeURIComponent(${requestParamName}.url) !== decodeURIComponent('${escape( - url - )}')) { - throw new Error( - \`Unexpected req.url. Expected '${escape( - url - )}' but received \${${requestParamName}.url}\` - ); - } - `; -} - -function generateHeadersMap( - headers: [string, string][], - requestParamName: string -): string { - return headers.length === 0 - ? '' - : ` - const headers = (${requestParamName}.headers as [string, string][]).reduce<{ - [key: string]: string} - >((prev, [name, value]) => ({[name]: value, ...prev}), {}); - `; -} - -function generateHeaderChecks(headers: [string, string][]): string { - return headers - .map(([name, value]) => { - if (value === '') { - return generateEmptyHeaderCheck(name); - } - return generateNonEmptyHeaderCheck(name, value); - }) - .join('\n'); -} - -function generateEmptyHeaderCheck(name: string): string { - return `if (headers['${escape( - name - ).toLowerCase()}'] !== undefined && headers['${escape( - name - ).toLowerCase()}'] !== '') { - throw new Error( - \`Unexpected value for header '${escape( - name - )}'. Expected undefined but received '\${headers['${escape( - name - ).toLowerCase()}']}'\` - ); - } - `; -} - -function generateNonEmptyHeaderCheck(name: string, value: string): string { - return `if (headers['${escape(name).toLowerCase()}'] !== '${escape( - value - )}') { - throw new Error( - \`Unexpected value for header '${escape( - name - )}'. Expected '${escape( - value - )}' but received '\${headers['${escape( - name - ).toLowerCase()}']}'\` - ); - } - `; -} - -function generateBodyCheck(body: Uint8Array, requestParamName: string): string { - return `if (${requestParamName}.method !== 'GET' && ${requestParamName}.body !== undefined) { - const requestBody = new TextDecoder().decode(${requestParamName}.body); - const expectedBody = "${escape(Buffer.from(body).toString('utf-8'))}" - if (requestBody !== expectedBody) { - throw new Error(\`Unexpected value for body. Expected \${expectedBody}, but received \${requestBody}\`) - } - }`; -} - -function escape(input: string): string { - return input - .replace(/\\/g, '\\\\') // Escape backslashes - .replace(/\$\{/g, '\\${') // Escape interpolation starts - .replace(/`/g, '\\`') // Escape backticks - .replace(/'/g, "\\'") // Escape single quotes - .replace(/"/g, '\\"'); // Escape double quotes -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/test/generate_tests.ts deleted file mode 100644 index edbe45fb6e..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/test/generate_tests.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { HttpRequest, HttpResponse } from 'azle/experimental'; -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { HttpResponseAgentResponseValue } from 'azle/property_tests/arbitraries/http/response_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -import { fletch } from './fletch'; - -export function generateTests( - functionName: string, - params: Named>[], - returnType: CandidValueAndMeta< - HttpResponse, - HttpResponseAgentResponseValue - > -): Test[][] { - const request = params[0].value.value.agentArgumentValue; - const expectedResponse = returnType.value.agentResponseValue; - - return [ - [ - { - name: 'get state before calling http_request', - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor['get_state'](); - - return testEquality(result, 0); - } - }, - { - name: functionName, - test: async (): Promise => { - const response = await fletch('canister', request); - const filteredHeaders = response.headers - .filter( - ([name]) => - name !== 'x-ic-streaming-response' && - name !== 'content-length' && - name !== 'date' - ) - .sort(); - const processedResponse = { - status: response.status, - headers: filteredHeaders, - body: response.body - }; - const sortedExpectedHeaders = - expectedResponse.headers.sort(); - const processedExpectedResponse = { - ...expectedResponse, - headers: sortedExpectedHeaders - }; - - return testEquality( - processedResponse, - processedExpectedResponse - ); - } - }, - { - name: 'get state after calling http_request', - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor['get_state'](); - - return testEquality(result, 1); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/test/test.ts b/tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/test/test.ts deleted file mode 100644 index a75daf39de..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/http_request_update/test/test.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { HttpRequest } from 'azle/experimental'; -import { runPropTests } from 'azle/property_tests'; -import { RecordArb } from 'azle/property_tests/arbitraries/candid/constructed/record_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { UpdateMethodArb } from 'azle/property_tests/arbitraries/canister_methods/update_method_arb'; -import { HttpRequestArb } from 'azle/property_tests/arbitraries/http/request_arb'; -import { HttpResponseArb } from 'azle/property_tests/arbitraries/http/response_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const HttpRequestUpdateMethodArb = RecordArb(context).chain((record) => { - const HttpRequestMethodArb = UpdateMethodArb( - { - api, - constraints: { - name: 'http_request_update', - generateBody, - generateTests - } - }, - fc.tuple(HttpRequestArb(context)), - HttpResponseArb(context, record) - ); - - return HttpRequestMethodArb; -}); - -const CanisterConfigArb = HttpRequestUpdateMethodArb.map( - (httpRequestUpdateMethod): CanisterConfig => { - const httpRequestMethod = generateHttpRequestMethod(); - const getStateMethod = generateGetStateMethod(); - - return { - queryMethods: [httpRequestMethod, getStateMethod], - updateMethods: [httpRequestUpdateMethod] - }; - } -); - -runPropTests(CanisterArb(context, CanisterConfigArb)); - -function generateHttpRequestMethod(): QueryMethod { - return { - imports: new Set(['query']), - globalDeclarations: [], - sourceCode: /*TS*/ ` - @query([HttpRequest], HttpResponse) - http_request() { - return { - status_code: 204, - headers: [], - body: new Uint8Array(), - streaming_strategy: [], - upgrade: [true] - }; - }`, - tests: [] - }; -} - -function generateGetStateMethod(): QueryMethod { - return { - imports: new Set(['query', 'IDL']), - globalDeclarations: ['let state: number = 0;'], - sourceCode: /*TS*/ ` - @query([], IDL.Nat8) - get_state(){ - return state; - }`, - tests: [] - }; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/init/test/generate_callable_method_body.ts b/tests/property/candid_rpc/class_syntax/canister_methods/init/test/generate_callable_method_body.ts deleted file mode 100644 index 27359495a0..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/init/test/generate_callable_method_body.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; - -export function generateBody( - namedParams: Named>[], - returnType: CandidValueAndMeta -): string { - // Print out params to avoid unused parameter warnings - const printParams = namedParams.map( - (param) => `console.log(${param.name})` - ); - return /*TS*/ ` - ${printParams.join('\n')} - return ${returnType.src.valueLiteral} - `; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/init/test/generate_init_body.ts b/tests/property/candid_rpc/class_syntax/canister_methods/init/test/generate_init_body.ts deleted file mode 100644 index d05ca5d40d..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/init/test/generate_init_body.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParams: Named>[] -): string { - const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); - - const storeVariablesGlobally = namedParams - .map((param, i) => `initParam${i} = ${param.name};`) - .join('\n'); - - return ` - initialized = true; - - ${paramsAreCorrectlyOrdered} - - ${storeVariablesGlobally} - `; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/init/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/canister_methods/init/test/generate_tests.ts deleted file mode 100644 index 3d2c072716..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/init/test/generate_tests.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - _functionName: string, - params: Named>[] -): Test[][] { - const expectedResult = [ - true, - ...params.map((param) => param.value.value.agentResponseValue) - ]; - - return [ - [ - { - name: `init method`, - test: async (): Promise => { - const actor = getActor(__dirname); - const result = await actor.getInitValues(); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/init/test/test.ts b/tests/property/candid_rpc/class_syntax/canister_methods/init/test/test.ts deleted file mode 100644 index b6f3e9c016..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/init/test/test.ts +++ /dev/null @@ -1,140 +0,0 @@ -import { runPropTests } from 'azle/property_tests'; -import { CandidReturnTypeArb } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMetaArb } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { InitMethodArb } from 'azle/property_tests/arbitraries/canister_methods/init_method_arb'; -import { - QueryMethod, - QueryMethodArb -} from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { UpdateMethodArb } from 'azle/property_tests/arbitraries/canister_methods/update_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody as callableMethodBodyGenerator } from './generate_callable_method_body'; -import { generateBody as initBodyGenerator } from './generate_init_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -// TODO multiplying by zero is to remove -0 -// TODO we should open an issue with agent-js -// TODO the agent should encode and decode -0 correctly -// https://github.com/demergent-labs/azle/issues/1511 -// TODO Infinity and NaN can't be used in this context -// https://github.com/dfinity/candid/issues/499 -const valueConstraints = { - noDefaultInfinity: true, - noNaN: true, - noNegativeZero: true -}; -const SimpleInitMethodArb = InitMethodArb( - { - api, - constraints: { - generateBody: initBodyGenerator, - generateTests - } - }, - fc.array(CandidValueAndMetaArb({ api, constraints: valueConstraints })) -); - -const HeterogeneousQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody: callableMethodBodyGenerator, - generateTests: () => [] - } - }, - fc.array(CandidValueAndMetaArb({ api, constraints: {} })), - CandidReturnTypeArb({ api, constraints: {} }) -); - -const HeterogeneousUpdateMethodArb = UpdateMethodArb( - { - api, - constraints: { - generateBody: callableMethodBodyGenerator, - generateTests: () => [] - } - }, - fc.array(CandidValueAndMetaArb({ api, constraints: {} })), - CandidReturnTypeArb({ api, constraints: {} }) -); - -const small = { - minLength: 0, - maxLength: 20 -}; - -const CanisterConfigArb = fc - .tuple( - SimpleInitMethodArb, - fc.array(HeterogeneousQueryMethodArb, small), - fc.array(HeterogeneousUpdateMethodArb, small) - ) - .map( - ([initMethod, queryMethods, updateMethods]): CanisterConfig< - CorrespondingJSType, - CorrespondingJSType - > => { - const initParamTypeObjects = initMethod.params.map( - (param) => param.value.src.typeObject - ); - const initParamTypeAnnotations = initMethod.params.map( - (param) => param.value.src.typeAnnotation - ); - - const globalInitVariableNames = initMethod.params.map( - (_, i) => `initParam${i}` - ); - const globalInitVariableDeclarations = initMethod.params.map( - (param, i) => - `let initParam${i}: ${param.value.src.typeAnnotation};` - ); - - const globalDeclarations = [ - 'let initialized: boolean = false;', - ...globalInitVariableDeclarations - ]; - - const getInitValues = generateGetInitValuesCanisterMethod( - initParamTypeObjects, - initParamTypeAnnotations, - globalInitVariableNames - ); - - return { - initMethod, - globalDeclarations, - queryMethods: [getInitValues, ...queryMethods], - updateMethods - }; - } - ); - -runPropTests(CanisterArb(context, CanisterConfigArb)); - -function generateGetInitValuesCanisterMethod( - paramTypeObjects: string[], - paramTypeAnnotations: string[], - globalInitVariableNames: string[] -): QueryMethod { - return { - imports: new Set(['IDL', 'query']), - globalDeclarations: [], - sourceCode: /*TS*/ ` - @query([], IDL.Tuple(IDL.Bool, ${paramTypeObjects.join()})) - getInitValues(): [boolean, ${paramTypeAnnotations.join()}] { - return [initialized, ${globalInitVariableNames.join()}] - } - `, - tests: [] - }; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/inspect_message/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/canister_methods/inspect_message/test/generate_tests.ts deleted file mode 100644 index aa93ddd6af..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/inspect_message/test/generate_tests.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { Agent } from '@dfinity/agent'; -import { getActor, Named } from 'azle/property_tests'; -import { CandidReturnType } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -import { InspectMessageBehavior } from './test'; - -export function generateTests( - functionName: string, - params: Named>[], - returnType: CandidValueAndMeta, - agentAndBehaviors: [Agent, InspectMessageBehavior][] -): Test[][] { - const paramValues = params.map( - (param) => param.value.value.agentArgumentValue - ); - - const expectedResult = returnType.value.agentResponseValue; - - return [ - agentAndBehaviors.map(([agent, behavior]) => { - return generateTest( - agent, - functionName, - paramValues, - expectedResult, - behavior - ); - }) - ]; -} - -function generateTest( - agent: Agent, - functionName: string, - paramValues: CorrespondingJSType[], - expectedResult: CorrespondingJSType, - behavior: InspectMessageBehavior -): Test { - return { - name: `method "${functionName}" expected ${behavior}`, - test: async (): Promise => { - await agent.fetchRootKey(); - const actor = getActor(__dirname, agent); - try { - const result = await actor[functionName](...paramValues); - - if (behavior === 'ACCEPT') { - return testEquality(result, expectedResult); - } - - return { - Err: 'Expected canister method to throw but it did not' - }; - } catch (error: any) { - if (behavior === 'RETURN') { - return testEquality( - error.message.includes('rejected the message'), - true - ); - } - - if (behavior === 'THROW') { - const expectedError = `Method \\"${functionName}\\" not allowed`; - return testEquality( - error.message.includes(expectedError), - true - ); - } - - throw error; - } - } - }; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/inspect_message/test/test.ts b/tests/property/candid_rpc/class_syntax/canister_methods/inspect_message/test/test.ts deleted file mode 100644 index 59c983c639..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/inspect_message/test/test.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { Agent } from '@dfinity/agent'; -import { createAuthenticatedAgentSync, getPrincipal } from 'azle/dfx'; -import { runPropTests } from 'azle/property_tests'; -import { CandidReturnTypeArb } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMetaArb } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { InspectMessageMethodArb } from 'azle/property_tests/arbitraries/canister_methods/inspect_message_method_arb'; -import { UpdateMethodArb } from 'azle/property_tests/arbitraries/canister_methods/update_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; -import { v4 } from 'uuid'; - -import { generateTests } from './generate_tests'; - -export type InspectMessageBehavior = 'ACCEPT' | 'RETURN' | 'THROW'; - -const AZLE_ACCEPT_IDENTITY_NAME = `_prop_test_azle_accept_identity_${v4()}`; -const AZLE_RETURN_IDENTITY_NAME = `_prop_test_azle_return_identity_${v4()}`; -const AZLE_THROW_IDENTITY_NAME = `_prop_test_azle_throw_identity_${v4()}`; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -// TODO make this function's return type explicit https://github.com/demergent-labs/azle/issues/1860 -// eslint-disable-next-line @typescript-eslint/explicit-function-return-type -function CanisterConfigArb() { - const agents: [Agent, InspectMessageBehavior][] = [ - [ - createAuthenticatedAgentSync(AZLE_ACCEPT_IDENTITY_NAME, true), - 'ACCEPT' - ], - [ - createAuthenticatedAgentSync(AZLE_RETURN_IDENTITY_NAME, true), - 'RETURN' - ], - [createAuthenticatedAgentSync(AZLE_THROW_IDENTITY_NAME, true), 'THROW'] - ]; - - const InspectMessageArb = InspectMessageMethodArb({ - api, - constraints: { - generateBody: () => generateInspectMessageMethodBody(), - generateTests: () => [] - } - }); - - const HeterogeneousUpdateMethodArb = UpdateMethodArb( - { - api, - constraints: { - generateBody: (_, returnType) => - `return ${returnType.src.valueLiteral}`, - generateTests: (...args) => generateTests(...args, agents) - } - }, - fc.array(CandidValueAndMetaArb(context)), - CandidReturnTypeArb(context) - ); - - const small = { - minLength: 0, - maxLength: 20 - }; - - return fc - .tuple(InspectMessageArb, fc.array(HeterogeneousUpdateMethodArb, small)) - .map( - ([inspectMessageMethod, updateMethods]): CanisterConfig< - CorrespondingJSType, - CorrespondingJSType - > => { - return { - inspectMessageMethod, - updateMethods - }; - } - ); -} - -runPropTests(CanisterArb(context, CanisterConfigArb())); - -function generateInspectMessageMethodBody(): string { - const acceptPrincipal = getPrincipal(AZLE_ACCEPT_IDENTITY_NAME); - const returnPrincipal = getPrincipal(AZLE_RETURN_IDENTITY_NAME); - const throwPrincipal = getPrincipal(AZLE_THROW_IDENTITY_NAME); - return ` - if (caller().toText() === "${acceptPrincipal}") { - acceptMessage(); - return; - } - if (caller().toText() === "${returnPrincipal}") { - return; - } - if (caller().toText() === "${throwPrincipal}") { - throw new Error(\`Method "$\{methodName()}" not allowed\`); - } - throw new Error("Unexpected caller"); - `; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/generate_callable_method_body.ts b/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/generate_callable_method_body.ts deleted file mode 100644 index d52e92001a..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/generate_callable_method_body.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; - -export function generateBody( - _namedParams: Named>[], - returnType: CandidValueAndMeta -): string { - return `return ${returnType.src.valueLiteral}`; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/generate_init_method_body.ts b/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/generate_init_method_body.ts deleted file mode 100644 index 11ca50e9ac..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/generate_init_method_body.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -import { globalInitVarName } from './global_var_name'; - -export function generateBody( - namedParams: Named>[] -): string { - const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); - - const storeVariablesGlobally = namedParams - .map((param, i) => `${globalInitVarName(i)} = ${param.name};`) - .join('\n'); - - return ` - initExecuted = true; - - ${paramsAreCorrectlyOrdered} - - ${storeVariablesGlobally} - `; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/generate_init_tests.ts b/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/generate_init_tests.ts deleted file mode 100644 index c6633d557b..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/generate_init_tests.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - _functionName: string, - params: Named>[] -): Test[][] { - const expectedResult = [ - true, - ...params.map((param) => param.value.value.agentResponseValue) - ]; - - return [ - [ - { - name: `init method`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const initValues = await actor.getInitValues(); - const isPostUpgradeCalled = - await actor.isPostUpgradeCalled(); - - return testEquality( - [initValues, isPostUpgradeCalled], - [expectedResult, false] - ); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/generate_post_upgrade_method_body.ts b/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/generate_post_upgrade_method_body.ts deleted file mode 100644 index 53e2b3d832..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/generate_post_upgrade_method_body.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -import { globalPostUpgradeVarName } from './global_var_name'; - -export function generateBody( - namedParams: Named>[] -): string { - const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); - - const storeVariablesGlobally = namedParams - .map((param, i) => `${globalPostUpgradeVarName(i)} = ${param.name};`) - .join('\n'); - - return ` - postUpgradeExecuted = true; - - ${paramsAreCorrectlyOrdered} - - ${storeVariablesGlobally} - `; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/generate_post_upgrade_tests.ts b/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/generate_post_upgrade_tests.ts deleted file mode 100644 index cafe9558b7..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/generate_post_upgrade_tests.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - _functionName: string, - params: Named>[] -): Test[][] { - const expectedResult = [ - true, - ...params.map((param) => param.value.value.agentResponseValue) - ]; - - return [ - [], // Don't test on the first deploy, test after a re-deploy - [ - { - name: `post upgrade method`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const postUpgradeValues = - await actor.getPostUpgradeValues(); - const isInitCalled = await actor.isInitCalled(); - - return testEquality( - [postUpgradeValues, isInitCalled], - [expectedResult, false] - ); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/test.ts b/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/test.ts deleted file mode 100644 index 6cb4491d7e..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/post_upgrade/test/test.ts +++ /dev/null @@ -1,312 +0,0 @@ -import { runPropTests } from 'azle/property_tests'; -import { candidDefinitionArb } from 'azle/property_tests/arbitraries/candid/candid_definition_arb'; -import { - CandidDefinition, - WithShapes -} from 'azle/property_tests/arbitraries/candid/candid_definition_arb/types'; -import { CandidReturnTypeArb } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { - CandidValueAndMeta, - CandidValueAndMetaArb -} from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { definitionAndValueToValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb_generator'; -import { CandidValueArb } from 'azle/property_tests/arbitraries/candid/candid_values_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { InitMethodArb } from 'azle/property_tests/arbitraries/canister_methods/init_method_arb'; -import { PostUpgradeMethodArb } from 'azle/property_tests/arbitraries/canister_methods/post_upgrade_arb'; -import { - QueryMethod, - QueryMethodArb -} from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { UpdateMethodArb } from 'azle/property_tests/arbitraries/canister_methods/update_method_arb'; -import { DEFAULT_VALUE_MAX_DEPTH } from 'azle/property_tests/arbitraries/config'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody as callableMethodBodyGenerator } from './generate_callable_method_body'; -import { generateBody as initMethodBodyGenerator } from './generate_init_method_body'; -import { generateTests as generateInitTests } from './generate_init_tests'; -import { generateBody as postUpgradeMethodBodyGenerator } from './generate_post_upgrade_method_body'; -import { generateTests as generatePostUpgradeTests } from './generate_post_upgrade_tests'; -import { globalInitVarName, globalPostUpgradeVarName } from './global_var_name'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const CanisterConfigArb = fc - .array(candidDefinitionArb(context, {})) - .chain((paramDefinitionsWithShapes) => { - const initParamValues = definitionsToValueAndMetaArb( - paramDefinitionsWithShapes - ); - const postUpgradeParamValues = definitionsToValueAndMetaArb( - paramDefinitionsWithShapes - ); - return fc.tuple(initParamValues, postUpgradeParamValues); - }) - .chain(([initParams, postUpgradeParams]) => { - const initDeployParamsArb = fc.constant(initParams); - const postUpgradeParamsArb = fc.constant(postUpgradeParams); - - const SimpleInitMethodArb = InitMethodArb( - { - api, - constraints: { - generateBody: initMethodBodyGenerator, - generateTests: generateInitTests - } - }, - initDeployParamsArb - ); - - const SimplePostUpgradeMethodArb = PostUpgradeMethodArb( - { - api, - constraints: { - generateBody: postUpgradeMethodBodyGenerator, - generateTests: generatePostUpgradeTests - } - }, - postUpgradeParamsArb - ); - - const HeterogeneousQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody: callableMethodBodyGenerator, - generateTests: () => [] - } - }, - fc.array(CandidValueAndMetaArb(context)), - CandidReturnTypeArb(context) - ); - - const HeterogeneousUpdateMethodArb = UpdateMethodArb( - { - api, - constraints: { - generateBody: callableMethodBodyGenerator, - generateTests: () => [] - } - }, - fc.array(CandidValueAndMetaArb(context)), - CandidReturnTypeArb(context) - ); - - const small = { - minLength: 0, - maxLength: 20 - }; - - return fc.tuple( - initDeployParamsArb, - postUpgradeParamsArb, - SimpleInitMethodArb, - SimplePostUpgradeMethodArb, - fc.array(HeterogeneousQueryMethodArb, small), - fc.array(HeterogeneousUpdateMethodArb, small) - ); - }) - .map( - ([ - initParams, - postUpgradeParams, - initMethod, - postUpgradeMethod, - queryMethods, - updateMethods - ]): CanisterConfig => { - const paramTypeObjects = postUpgradeParams.map( - // The typeObjects ought to be the same so it doesn't mater which we use to generate this list - (param) => param.src.typeObject - ); - - const globalInitVariableNames = initParams.map((_, i) => - globalInitVarName(i) - ); - const globalPostUpgradeVariableNames = postUpgradeParams.map( - (_, i) => globalPostUpgradeVarName(i) - ); - const globalInitVariableDeclarations = initParams.map( - (param, i) => - `let ${globalInitVarName(i)}: ${param.src.typeAnnotation};` - ); - const globalPostUpgradeVariableDeclarations = postUpgradeParams.map( - (param, i) => - `let ${globalPostUpgradeVarName(i)}: ${ - param.src.typeAnnotation - };` - ); - - const globalDeclarations = [ - 'let postUpgradeExecuted: boolean = false;', - 'let initExecuted: boolean = false;', - ...globalInitVariableDeclarations, - ...globalPostUpgradeVariableDeclarations - ]; - - const getPostUpgradeValues = - generateGetPostUpgradeValuesCanisterMethod( - paramTypeObjects, - globalPostUpgradeVariableNames - ); - - const getInitValues = generateGetInitValuesCanisterMethod( - paramTypeObjects, - globalInitVariableNames - ); - - const isPostUpgradeCalled = generateIsPostUpgradeCalled( - globalPostUpgradeVariableNames - ); - - const isInitCalled = generateIsInitCalled(globalInitVariableNames); - - return { - globalDeclarations, - initMethod, - postUpgradeMethod, - queryMethods: [ - getInitValues, - getPostUpgradeValues, - isPostUpgradeCalled, - isInitCalled, - ...queryMethods - ], - updateMethods - }; - } - ); - -function generateGetPostUpgradeValuesCanisterMethod( - paramTypeObjects: string[], - globalVariableNames: string[] -): QueryMethod { - return { - imports: new Set(['IDL', 'query']), - globalDeclarations: [], - sourceCode: /*TS*/ ` - @query([], IDL.Tuple(IDL.Bool, ${paramTypeObjects.join()})) - getPostUpgradeValues(){ - return [postUpgradeExecuted, ${globalVariableNames.join()}] - }`, - tests: [] - }; -} - -function generateGetInitValuesCanisterMethod( - paramTypeObjects: string[], - globalVariableNames: string[] -): QueryMethod { - return { - imports: new Set(['IDL', 'query']), - globalDeclarations: [], - sourceCode: /*TS*/ ` - @query([], IDL.Tuple(IDL.Bool, ${paramTypeObjects.join()})) - getInitValues(){ - return [initExecuted, ${globalVariableNames.join()}] - }`, - tests: [] - }; -} - -function generateIsInitCalled(globalVariableNames: string[]): QueryMethod { - const areAllParamsUndefined = globalVariableNames - .map((name) => `${name} === undefined`) - .join(' && '); - const isInitCalled = `return initExecuted${ - globalVariableNames.length === 0 - ? '' - : ` || !(${areAllParamsUndefined})` - }`; - return { - imports: new Set(['IDL', 'query']), - globalDeclarations: [], - sourceCode: /*TS*/ ` - @query([], IDL.Bool) - isInitCalled(){${isInitCalled}}`, - tests: [] - }; -} - -function generateIsPostUpgradeCalled( - globalVariableNames: string[] -): QueryMethod { - const areAllParamsUndefined = globalVariableNames - .map((name) => `${name} === undefined`) - .join(' && '); - const isPostUpgradeCalled = `return postUpgradeExecuted${ - globalVariableNames.length === 0 - ? '' - : ` || !(${areAllParamsUndefined})` - }`; - return { - imports: new Set(['IDL', 'query']), - globalDeclarations: [], - sourceCode: /*TS*/ ` - @query([], IDL.Bool) - isPostUpgradeCalled(){${isPostUpgradeCalled}}`, - tests: [] - }; -} - -function definitionsToValueAndMetaArb( - definitionsWithShapes: WithShapes[] -): fc.Arbitrary[]> { - const definitions = definitionsWithShapes.map( - (definitionWithShapes) => definitionWithShapes.definition - ); - const recursiveShapes = definitionsWithShapes.reduce( - (acc, definitionsWithShapes) => { - return { ...acc, ...definitionsWithShapes.recursiveShapes }; - }, - {} - ); - return fc - .tuple( - fc.constant(definitions), - fc.tuple( - ...definitions.map((definition) => - // TODO multiplying by zero is to remove -0 - // TODO we should open an issue with agent-js - // TODO the agent should encode and decode -0 correctly - // https://github.com/demergent-labs/azle/issues/1511 - // TODO Infinity and NaN can't be used in this context - // https://github.com/dfinity/candid/issues/499 - CandidValueArb( - { - api, - constraints: { - noDefaultInfinity: true, - noNaN: true, - noNegativeZero: true, - depthLevel: DEFAULT_VALUE_MAX_DEPTH - } - }, - definition, - recursiveShapes - ) - ) - ) - ) - .map( - ([ - definitions, - values - ]): CandidValueAndMeta[] => { - return values.map((value, index) => { - return definitionAndValueToValueAndMeta( - definitions[index], - value - ); - }); - } - ); -} - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/pre_upgrade/test/test.ts b/tests/property/candid_rpc/class_syntax/canister_methods/pre_upgrade/test/test.ts deleted file mode 100644 index c4e575bdab..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/pre_upgrade/test/test.ts +++ /dev/null @@ -1,136 +0,0 @@ -import { getActor, runPropTests } from 'azle/property_tests'; -import { CandidReturnTypeArb } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMetaArb } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { PreUpgradeMethodArb } from 'azle/property_tests/arbitraries/canister_methods/pre_upgrade_method_arb'; -import { - QueryMethod, - QueryMethodArb -} from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { UpdateMethodArb } from 'azle/property_tests/arbitraries/canister_methods/update_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import { AzleResult, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const SimplePreUpgradeArb = PreUpgradeMethodArb({ - api, - constraints: { - generateBody: () => - /*TS*/ `stable.insert(PRE_UPGRADE_HOOK_EXECUTED, true);`, - generateTests: () => [] - } -}); - -const HeterogeneousQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody: (_, returnType) => - `return ${returnType.src.valueLiteral}`, - generateTests: () => [] - } - }, - fc.array(CandidValueAndMetaArb(context)), - CandidReturnTypeArb(context) -); - -const HeterogeneousUpdateMethodArb = UpdateMethodArb( - { - api, - constraints: { - generateBody: (_, returnType) => - `return ${returnType.src.valueLiteral}`, - generateTests: () => [] - } - }, - fc.array(CandidValueAndMetaArb(context)), - CandidReturnTypeArb(context) -); - -const small = { - minLength: 0, - maxLength: 20 -}; - -const CanisterConfigArb = fc - .tuple( - SimplePreUpgradeArb, - fc - .array(HeterogeneousQueryMethodArb, small) - .chain((queryMethods) => - fc.constant([ - generateGetPreUpgradeExecutedCanisterMethod(), - ...queryMethods - ]) - ), - fc.array(HeterogeneousUpdateMethodArb, small) - ) - - .map( - ([preUpgradeMethod, queryMethods, updateMethods]): CanisterConfig< - CorrespondingJSType, - CorrespondingJSType - > => { - const globalDeclarations = [ - /*TS*/ `const PRE_UPGRADE_HOOK_EXECUTED = 'PRE_UPGRADE_HOOK_EXECUTED';`, - /*TS*/ `let stable = StableBTreeMap(0);` - ]; - - return { - globalDeclarations, - preUpgradeMethod, - queryMethods, - updateMethods - }; - } - ); - -runPropTests(CanisterArb(context, CanisterConfigArb)); - -function generateGetPreUpgradeExecutedCanisterMethod(): QueryMethod { - return { - imports: new Set(['query', 'StableBTreeMap', 'IDL']), - globalDeclarations: [], - sourceCode: /*TS*/ ` - @query([], IDL.Opt(IDL.Bool)) - getPreUpgradeExecuted(){ - const result = stable.get(PRE_UPGRADE_HOOK_EXECUTED) - if (result === null) { - return [] - } else { - return [result] - } - }`, - tests: [ - [ - { - name: `pre upgrade was not called after first deploy`, - test: async (): Promise => { - const actor = getActor(__dirname); - const result = await actor.getPreUpgradeExecuted(); - - return testEquality(result, []); - } - } - ], - [ - { - name: `pre upgrade was called after second deploy`, - test: async (): Promise => { - const actor = getActor(__dirname); - const result = await actor.getPreUpgradeExecuted(); - - return testEquality(result, [true]); - } - } - ] - ] - }; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/query/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/canister_methods/query/test/generate_body.ts deleted file mode 100644 index 0a78fed29d..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/query/test/generate_body.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidReturnType } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParams: Named>[], - returnType: CandidValueAndMeta -): string { - const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); - - return ` - ${paramsAreCorrectlyOrdered} - - return ${returnType.src.valueLiteral} - `; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/query/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/canister_methods/query/test/generate_tests.ts deleted file mode 100644 index 3b11b5427c..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/query/test/generate_tests.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidReturnType } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - params: Named>[], - returnType: CandidValueAndMeta -): Test[][] { - const paramValues = params.map( - (param) => param.value.value.agentArgumentValue - ); - const expectedResult = returnType.value.agentResponseValue; - - return [ - [ - { - name: `query method "${functionName}"`, - test: async (): Promise => { - const actor = getActor(__dirname); - const result = await actor[functionName](...paramValues); - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/query/test/test.ts b/tests/property/candid_rpc/class_syntax/canister_methods/query/test/test.ts deleted file mode 100644 index 01da509c4b..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/query/test/test.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { CandidReturnTypeArb } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMetaArb } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -// TODO Canister -// TODO Record -// TODO text -// TODO nat -// TODO update methods - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const HeterogeneousQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(CandidValueAndMetaArb(context)), - CandidReturnTypeArb(context) -); - -const CanisterConfigArb = fc - .array(HeterogeneousQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/update/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/canister_methods/update/test/generate_body.ts deleted file mode 100644 index 0a78fed29d..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/update/test/generate_body.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidReturnType } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParams: Named>[], - returnType: CandidValueAndMeta -): string { - const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); - - return ` - ${paramsAreCorrectlyOrdered} - - return ${returnType.src.valueLiteral} - `; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/update/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/canister_methods/update/test/generate_tests.ts deleted file mode 100644 index b922deb88a..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/update/test/generate_tests.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidReturnType } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - params: Named>[], - returnType: CandidValueAndMeta -): Test[][] { - const paramValues = params.map( - (param) => param.value.value.agentArgumentValue - ); - const expectedResult = returnType.value.agentResponseValue; - - return [ - [ - { - name: `update method "${functionName}"`, - test: async (): Promise => { - const actor = getActor(__dirname); - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/canister_methods/update/test/test.ts b/tests/property/candid_rpc/class_syntax/canister_methods/update/test/test.ts deleted file mode 100644 index 4d20b54251..0000000000 --- a/tests/property/candid_rpc/class_syntax/canister_methods/update/test/test.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { CandidReturnTypeArb } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMetaArb } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { UpdateMethodArb } from 'azle/property_tests/arbitraries/canister_methods/update_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const HeterogeneousUpdateMethodArb = UpdateMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(CandidValueAndMetaArb(context)), - CandidReturnTypeArb(context) -); - -const CanisterConfigArb = fc - .array(HeterogeneousUpdateMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/float32/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/float32/test/generate_body.ts deleted file mode 100644 index be4f256104..0000000000 --- a/tests/property/candid_rpc/class_syntax/float32/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamFloat32s: Named>[], - returnFloat32: CandidValueAndMeta -): string { - const paramsAreNumbers = namedParamFloat32s - .map((param) => { - return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = - areParamsCorrectlyOrdered(namedParamFloat32s); - - const returnStatement = - namedParamFloat32s.length === 0 - ? returnFloat32.src.valueLiteral - : namedParamFloat32s[0].name; - - return ` - ${paramsCorrectlyOrdered} - - ${paramsAreNumbers} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/float32/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/float32/test/generate_tests.ts deleted file mode 100644 index 44bbc97595..0000000000 --- a/tests/property/candid_rpc/class_syntax/float32/test/generate_tests.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamFloat32s: Named>[], - returnFloat32: CandidValueAndMeta -): Test[][] { - const expectedResult = - namedParamFloat32s.length === 0 - ? returnFloat32.value.agentResponseValue - : namedParamFloat32s[0].value.value.agentResponseValue; - const paramValues = namedParamFloat32s.map( - (paramFloats) => paramFloats.value.value.agentArgumentValue - ); - return [ - [ - { - name: `float32 ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/float32/test/test.ts b/tests/property/candid_rpc/class_syntax/float32/test/test.ts deleted file mode 100644 index aaa105e284..0000000000 --- a/tests/property/candid_rpc/class_syntax/float32/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Float32Arb } from 'azle/property_tests/arbitraries/candid/primitive/floats/float32_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllFloat32sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Float32Arb(context)), - Float32Arb(context) -); - -const CanisterConfigArb = fc - .array(AllFloat32sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/float64/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/float64/test/generate_body.ts deleted file mode 100644 index f3fc35fa4b..0000000000 --- a/tests/property/candid_rpc/class_syntax/float64/test/generate_body.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamFloat64s: Named>[], - returnFloat64: CandidValueAndMeta -): string { - const paramsAreNumbers = namedParamFloat64s - .map((param) => { - return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = - areParamsCorrectlyOrdered(namedParamFloat64s); - - const sum = namedParamFloat64s.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnFloat64.src.valueLiteral); - const count = namedParamFloat64s.length + 1; - const average = `(${sum}) / ${count}`; - - return ` - ${paramsCorrectlyOrdered} - - ${paramsAreNumbers} - - return ${average}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/float64/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/float64/test/generate_tests.ts deleted file mode 100644 index cd5d42f3fe..0000000000 --- a/tests/property/candid_rpc/class_syntax/float64/test/generate_tests.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamFloat64s: Named>[], - returnFloat64: CandidValueAndMeta -): Test[][] { - const count = namedParamFloat64s.length + 1; - const expectedResult = - namedParamFloat64s.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnFloat64.value.agentResponseValue - ) / count; - - const paramValues = namedParamFloat64s.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `float64 ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/float64/test/test.ts b/tests/property/candid_rpc/class_syntax/float64/test/test.ts deleted file mode 100644 index deb3301da4..0000000000 --- a/tests/property/candid_rpc/class_syntax/float64/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Float64Arb } from 'azle/property_tests/arbitraries/candid/primitive/floats/float64_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllFloat64sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Float64Arb(context)), - Float64Arb(context) -); - -const CanisterConfigArb = fc - .array(AllFloat64sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/func/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/func/test/generate_body.ts deleted file mode 100644 index 9311c41d89..0000000000 --- a/tests/property/candid_rpc/class_syntax/func/test/generate_body.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Func } from 'azle/property_tests/arbitraries/candid/reference/func_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamFuncs: Named>[], - returnFunc: CandidValueAndMeta -): string { - const paramsAreFuncs = namedParamFuncs - .map(({ name }) => { - const paramIsArray = `Array.isArray(${name})`; - const paramHas2Fields = `${name}.length === 2`; - const field0IsAPrincipal = `${name}[0]._isPrincipal === true`; - const field1IsAString = `typeof ${name}[1] === 'string'`; - - const paramIsAFunc = [ - paramIsArray, - paramHas2Fields, - field0IsAPrincipal, - field1IsAString - ].join(' && '); - - const throwError = `throw new Error('${name} must be a Func');`; - - return `if (!(${paramIsAFunc})) ${throwError}`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamFuncs); - - const returnStatement = returnFunc.src.valueLiteral; - - return ` - ${paramsAreFuncs} - - ${paramsCorrectlyOrdered} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/func/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/func/test/generate_tests.ts deleted file mode 100644 index 76a9739ccb..0000000000 --- a/tests/property/candid_rpc/class_syntax/func/test/generate_tests.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Func } from 'azle/property_tests/arbitraries/candid/reference/func_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamFuncs: Named>[], - returnFunc: CandidValueAndMeta -): Test[][] { - return [ - [ - { - name: `func ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - ...namedParamFuncs.map( - (param) => param.value.value.agentArgumentValue - ) - ); - - return testEquality( - result, - returnFunc.value.agentResponseValue - ); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/func/test/test.ts b/tests/property/candid_rpc/class_syntax/func/test/test.ts deleted file mode 100644 index 847f8470df..0000000000 --- a/tests/property/candid_rpc/class_syntax/func/test/test.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { FuncArb } from 'azle/property_tests/arbitraries/candid/reference/func_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllFuncsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.uniqueArray(FuncArb(context), { - selector: (entry) => entry.src.typeAnnotation - }), - FuncArb(context) -); - -const CanisterConfigArb = fc - .array(AllFuncsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/int/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/int/test/generate_body.ts deleted file mode 100644 index 213bb0ae99..0000000000 --- a/tests/property/candid_rpc/class_syntax/int/test/generate_body.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamInts: Named>[], - returnInt: CandidValueAndMeta -): string { - const paramsAreBigInts = namedParamInts - .map((param) => { - return `if (typeof ${param.name} !== 'bigint') throw new Error('${param.name} must be a bigint');`; - }) - .join('\n'); - - const sum = namedParamInts.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnInt.src.valueLiteral); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInts); - - return ` - ${paramsAreBigInts} - - ${paramsCorrectlyOrdered} - - return ${sum}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/int/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/int/test/generate_tests.ts deleted file mode 100644 index 4e58696822..0000000000 --- a/tests/property/candid_rpc/class_syntax/int/test/generate_tests.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamInts: Named>[], - returnInt: CandidValueAndMeta -): Test[][] { - const expectedResult = namedParamInts.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnInt.value.agentResponseValue - ); - const paramValues = namedParamInts.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `int ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/int/test/test.ts b/tests/property/candid_rpc/class_syntax/int/test/test.ts deleted file mode 100644 index a100d73a2b..0000000000 --- a/tests/property/candid_rpc/class_syntax/int/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { IntArb } from 'azle/property_tests/arbitraries/candid/primitive/ints/int_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllIntsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(IntArb(context)), - IntArb(context) -); - -const CanisterConfigArb = fc - .array(AllIntsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/int16/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/int16/test/generate_body.ts deleted file mode 100644 index 0f26a55321..0000000000 --- a/tests/property/candid_rpc/class_syntax/int16/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamInt16s: Named>[], - returnInt16: CandidValueAndMeta -): string { - const paramsAreNumbers = namedParamInt16s - .map((param) => { - return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInt16s); - - const sum = namedParamInt16s.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnInt16.src.valueLiteral); - const count = namedParamInt16s.length + 1; - const average = `Math.floor((${sum}) / ${count})`; - - return ` - ${paramsAreNumbers} - - ${paramsCorrectlyOrdered} - - return ${average}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/int16/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/int16/test/generate_tests.ts deleted file mode 100644 index a541579499..0000000000 --- a/tests/property/candid_rpc/class_syntax/int16/test/generate_tests.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamInt16s: Named>[], - returnInt16: CandidValueAndMeta -): Test[][] { - const count = namedParamInt16s.length + 1; - const expectedResult = Math.floor( - namedParamInt16s.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnInt16.value.agentResponseValue - ) / count - ); - const paramValues = namedParamInt16s.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `int16 ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/int16/test/test.ts b/tests/property/candid_rpc/class_syntax/int16/test/test.ts deleted file mode 100644 index 93e27749b7..0000000000 --- a/tests/property/candid_rpc/class_syntax/int16/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Int16Arb } from 'azle/property_tests/arbitraries/candid/primitive/ints/int16_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllInt16sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Int16Arb(context)), - Int16Arb(context) -); - -const CanisterConfigArb = fc - .array(AllInt16sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/int32/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/int32/test/generate_body.ts deleted file mode 100644 index fcac9922a5..0000000000 --- a/tests/property/candid_rpc/class_syntax/int32/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamInt32s: Named>[], - returnInt32: CandidValueAndMeta -): string { - const paramsAreNumbers = namedParamInt32s - .map((param) => { - return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; - }) - .join('\n'); - - const sum = namedParamInt32s.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnInt32.src.valueLiteral); - const count = namedParamInt32s.length + 1; - const average = `Math.floor((${sum}) / ${count})`; - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInt32s); - - return ` - ${paramsAreNumbers} - - ${paramsCorrectlyOrdered} - - return ${average}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/int32/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/int32/test/generate_tests.ts deleted file mode 100644 index 7e273b9729..0000000000 --- a/tests/property/candid_rpc/class_syntax/int32/test/generate_tests.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamInt32s: Named>[], - returnInt32: CandidValueAndMeta -): Test[][] { - const count = namedParamInt32s.length + 1; - const expectedResult = Math.floor( - namedParamInt32s.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnInt32.value.agentResponseValue - ) / count - ); - const paramValues = namedParamInt32s.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `int32 ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/int32/test/test.ts b/tests/property/candid_rpc/class_syntax/int32/test/test.ts deleted file mode 100644 index 21c89bb4e5..0000000000 --- a/tests/property/candid_rpc/class_syntax/int32/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Int32Arb } from 'azle/property_tests/arbitraries/candid/primitive/ints/int32_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllInt32sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Int32Arb(context)), - Int32Arb(context) -); - -const CanisterConfigArb = fc - .array(AllInt32sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/int64/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/int64/test/generate_body.ts deleted file mode 100644 index a176e72b06..0000000000 --- a/tests/property/candid_rpc/class_syntax/int64/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamInt64s: Named>[], - returnInt64: CandidValueAndMeta -): string { - const paramsAreBigInts = namedParamInt64s - .map((param) => { - return `if (typeof ${param.name} !== 'bigint') throw new Error('${param.name} must be a bigint');`; - }) - .join('\n'); - - const sum = namedParamInt64s.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnInt64.src.valueLiteral); - const count = namedParamInt64s.length + 1; - const average = `(${sum}) / ${count}n`; - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInt64s); - - return ` - ${paramsAreBigInts} - - ${paramsCorrectlyOrdered} - - return ${average}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/int64/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/int64/test/generate_tests.ts deleted file mode 100644 index 636992ed67..0000000000 --- a/tests/property/candid_rpc/class_syntax/int64/test/generate_tests.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamInt64s: Named>[], - returnInt64: CandidValueAndMeta -): Test[][] { - const count = namedParamInt64s.length + 1; - const expectedResult = - namedParamInt64s.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnInt64.value.agentResponseValue - ) / BigInt(count); - - const paramValues = namedParamInt64s.map( - (param) => param.value.value.agentArgumentValue - ); - return [ - [ - { - name: `int64 ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/int64/test/test.ts b/tests/property/candid_rpc/class_syntax/int64/test/test.ts deleted file mode 100644 index 880db9af70..0000000000 --- a/tests/property/candid_rpc/class_syntax/int64/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Int64Arb } from 'azle/property_tests/arbitraries/candid/primitive/ints/int64_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllInt64sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Int64Arb(context)), - Int64Arb(context) -); - -const CanisterConfigArb = fc - .array(AllInt64sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/int8/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/int8/test/generate_body.ts deleted file mode 100644 index 030c06a9bc..0000000000 --- a/tests/property/candid_rpc/class_syntax/int8/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamInt8s: Named>[], - returnInt8: CandidValueAndMeta -): string { - const paramsAreNumbers = namedParamInt8s - .map((param) => { - return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; - }) - .join('\n'); - - const sum = namedParamInt8s.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnInt8.src.valueLiteral); - const count = namedParamInt8s.length + 1; - const average = `Math.floor((${sum}) / ${count})`; - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInt8s); - - return ` - ${paramsAreNumbers} - - ${paramsCorrectlyOrdered} - - return ${average}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/int8/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/int8/test/generate_tests.ts deleted file mode 100644 index 947d939c1d..0000000000 --- a/tests/property/candid_rpc/class_syntax/int8/test/generate_tests.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamInt8s: Named>[], - returnInt8: CandidValueAndMeta -): Test[][] { - const count = namedParamInt8s.length + 1; - const expectedResult = Math.floor( - namedParamInt8s.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnInt8.value.agentResponseValue - ) / count - ); - const paramValues = namedParamInt8s.map( - (param) => param.value.value.agentArgumentValue - ); - return [ - [ - { - name: `test ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/int8/test/test.ts b/tests/property/candid_rpc/class_syntax/int8/test/test.ts deleted file mode 100644 index c0a77cacfe..0000000000 --- a/tests/property/candid_rpc/class_syntax/int8/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Int8Arb } from 'azle/property_tests/arbitraries/candid/primitive/ints/int8_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllInt8sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Int8Arb(context)), - Int8Arb(context) -); - -const CanisterConfigArb = fc - .array(AllInt8sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/nat/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/nat/test/generate_body.ts deleted file mode 100644 index ba2e63496a..0000000000 --- a/tests/property/candid_rpc/class_syntax/nat/test/generate_body.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamNats: Named>[], - returnNat: CandidValueAndMeta -): string { - const paramsAreBigInts = namedParamNats - .map((param) => { - return `if (typeof ${param.name} !== 'bigint') throw new Error('${param.name} must be a bigint');`; - }) - .join('\n'); - - const sum = namedParamNats.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnNat.src.valueLiteral); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNats); - - return ` - ${paramsCorrectlyOrdered} - - ${paramsAreBigInts} - - return ${sum}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/nat/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/nat/test/generate_tests.ts deleted file mode 100644 index 7cd446f07d..0000000000 --- a/tests/property/candid_rpc/class_syntax/nat/test/generate_tests.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamNats: Named>[], - returnNat: CandidValueAndMeta -): Test[][] { - const expectedResult = namedParamNats.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnNat.value.agentResponseValue - ); - const paramValues = namedParamNats.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `nat ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/nat/test/test.ts b/tests/property/candid_rpc/class_syntax/nat/test/test.ts deleted file mode 100644 index e34cab8bcf..0000000000 --- a/tests/property/candid_rpc/class_syntax/nat/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { NatArb } from 'azle/property_tests/arbitraries/candid/primitive/nats/nat_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllNatsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(NatArb(context)), - NatArb(context) -); - -const CanisterConfigArb = fc - .array(AllNatsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/nat16/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/nat16/test/generate_body.ts deleted file mode 100644 index 36c5809b54..0000000000 --- a/tests/property/candid_rpc/class_syntax/nat16/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamNat16s: Named>[], - returnNat16: CandidValueAndMeta -): string { - const paramsAreNumbers = namedParamNat16s - .map((param) => { - return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; - }) - .join('\n'); - - const sum = namedParamNat16s.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnNat16.src.valueLiteral); - const count = namedParamNat16s.length + 1; - const average = `Math.floor((${sum}) / ${count})`; - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNat16s); - - return ` - ${paramsAreNumbers} - - ${paramsCorrectlyOrdered} - - return ${average}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/nat16/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/nat16/test/generate_tests.ts deleted file mode 100644 index 712cfd11df..0000000000 --- a/tests/property/candid_rpc/class_syntax/nat16/test/generate_tests.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamNat16s: Named>[], - returnNat16: CandidValueAndMeta -): Test[][] { - const count = namedParamNat16s.length + 1; - const expectedResult = Math.floor( - namedParamNat16s.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnNat16.value.agentResponseValue - ) / count - ); - const paramValues = namedParamNat16s.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `nat16 ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/nat16/test/test.ts b/tests/property/candid_rpc/class_syntax/nat16/test/test.ts deleted file mode 100644 index 50f4601500..0000000000 --- a/tests/property/candid_rpc/class_syntax/nat16/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Nat16Arb } from 'azle/property_tests/arbitraries/candid/primitive/nats/nat16_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllNat16sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Nat16Arb(context)), - Nat16Arb(context) -); - -const CanisterConfigArb = fc - .array(AllNat16sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/nat32/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/nat32/test/generate_body.ts deleted file mode 100644 index 3ead7aca94..0000000000 --- a/tests/property/candid_rpc/class_syntax/nat32/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamNat32s: Named>[], - returnNat32: CandidValueAndMeta -): string { - const paramsAreNumbers = namedParamNat32s - .map((param) => { - return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; - }) - .join('\n'); - - const sum = namedParamNat32s.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnNat32.src.valueLiteral); - const count = namedParamNat32s.length + 1; - const average = `Math.floor((${sum}) / ${count})`; - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNat32s); - - return ` - ${paramsAreNumbers} - - ${paramsCorrectlyOrdered} - - return ${average}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/nat32/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/nat32/test/generate_tests.ts deleted file mode 100644 index 9b67e1291b..0000000000 --- a/tests/property/candid_rpc/class_syntax/nat32/test/generate_tests.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamNat32s: Named>[], - returnNat32: CandidValueAndMeta -): Test[][] { - const count = namedParamNat32s.length + 1; - const expectedResult = Math.floor( - namedParamNat32s.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnNat32.value.agentResponseValue - ) / count - ); - const paramValues = namedParamNat32s.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `nat32 ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/nat32/test/test.ts b/tests/property/candid_rpc/class_syntax/nat32/test/test.ts deleted file mode 100644 index 24c08958ac..0000000000 --- a/tests/property/candid_rpc/class_syntax/nat32/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Nat32Arb } from 'azle/property_tests/arbitraries/candid/primitive/nats/nat32_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllNat32sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Nat32Arb(context)), - Nat32Arb(context) -); - -const CanisterConfigArb = fc - .array(AllNat32sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/nat64/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/nat64/test/generate_body.ts deleted file mode 100644 index 423f9a0013..0000000000 --- a/tests/property/candid_rpc/class_syntax/nat64/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamNat64s: Named>[], - returnNat64: CandidValueAndMeta -): string { - const paramsAreBigInts = namedParamNat64s - .map((param) => { - return `if (typeof ${param.name} !== 'bigint') throw new Error('${param.name} must be a bigint');`; - }) - .join('\n'); - - const sum = namedParamNat64s.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnNat64.src.valueLiteral); - const count = namedParamNat64s.length + 1; - const average = `(${sum}) / ${count}n`; - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNat64s); - - return ` - ${paramsAreBigInts} - - ${paramsCorrectlyOrdered} - - return ${average}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/nat64/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/nat64/test/generate_tests.ts deleted file mode 100644 index 1bf97bf853..0000000000 --- a/tests/property/candid_rpc/class_syntax/nat64/test/generate_tests.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamNat64s: Named>[], - returnNat64: CandidValueAndMeta -): Test[][] { - const count = namedParamNat64s.length + 1; - const expectedResult = - namedParamNat64s.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnNat64.value.agentResponseValue - ) / BigInt(count); - const paramValues = namedParamNat64s.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `nat64 ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/nat64/test/test.ts b/tests/property/candid_rpc/class_syntax/nat64/test/test.ts deleted file mode 100644 index 5512fa0b54..0000000000 --- a/tests/property/candid_rpc/class_syntax/nat64/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Nat64Arb } from 'azle/property_tests/arbitraries/candid/primitive/nats/nat64_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllNat64sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Nat64Arb(context)), - Nat64Arb(context) -); - -const CanisterConfigArb = fc - .array(AllNat64sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/nat8/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/nat8/test/generate_body.ts deleted file mode 100644 index 1a06f4ec48..0000000000 --- a/tests/property/candid_rpc/class_syntax/nat8/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamNat8s: Named>[], - returnNat8: CandidValueAndMeta -): string { - const paramsAreNumbers = namedParamNat8s - .map((param) => { - return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; - }) - .join('\n'); - - const sum = namedParamNat8s.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnNat8.src.valueLiteral); - const count = namedParamNat8s.length + 1; - const average = `Math.floor((${sum}) / ${count})`; - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNat8s); - - return ` - ${paramsAreNumbers} - - ${paramsCorrectlyOrdered} - - return ${average}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/nat8/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/nat8/test/generate_tests.ts deleted file mode 100644 index 10e8bc18a4..0000000000 --- a/tests/property/candid_rpc/class_syntax/nat8/test/generate_tests.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamNat8s: Named>[], - returnNat8: CandidValueAndMeta -): Test[][] { - const count = namedParamNat8s.length + 1; - const expectedResult = Math.floor( - namedParamNat8s.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnNat8.value.agentResponseValue - ) / count - ); - const paramValues = namedParamNat8s.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `nat8 ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/nat8/test/test.ts b/tests/property/candid_rpc/class_syntax/nat8/test/test.ts deleted file mode 100644 index 18a071c4ce..0000000000 --- a/tests/property/candid_rpc/class_syntax/nat8/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Nat8Arb } from 'azle/property_tests/arbitraries/candid/primitive/nats/nat8_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllNat8sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Nat8Arb(context)), - Nat8Arb(context) -); - -const CanisterConfigArb = fc - .array(AllNat8sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/null/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/null/test/generate_body.ts deleted file mode 100644 index 407c964407..0000000000 --- a/tests/property/candid_rpc/class_syntax/null/test/generate_body.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; - -export function generateBody( - namedParamNulls: Named>[], - returnNull: CandidValueAndMeta -): string { - const areAllNull = namedParamNulls.reduce((acc, { name }) => { - return `${acc} && ${name} === null`; - }, 'true'); - - const allNullCheck = `if (!(${areAllNull})) throw new Error("Not all of the values were null")`; - - return ` - ${allNullCheck} - - return ${returnNull.src.valueLiteral}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/null/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/null/test/generate_tests.ts deleted file mode 100644 index ab971a20d4..0000000000 --- a/tests/property/candid_rpc/class_syntax/null/test/generate_tests.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamNulls: Named>[], - _returnNull: CandidValueAndMeta -): Test[][] { - return [ - [ - { - name: `test ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - ...namedParamNulls.map( - (param) => param.value.value.agentArgumentValue - ) - ); - - return testEquality(result, null); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/null/test/test.ts b/tests/property/candid_rpc/class_syntax/null/test/test.ts deleted file mode 100644 index b713255013..0000000000 --- a/tests/property/candid_rpc/class_syntax/null/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { NullArb } from 'azle/property_tests/arbitraries/candid/primitive/null'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllNullsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(NullArb(context)), - NullArb(context) -); - -const CanisterConfigArb = fc - .array(AllNullsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/opt/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/opt/test/generate_body.ts deleted file mode 100644 index 94d8eb245d..0000000000 --- a/tests/property/candid_rpc/class_syntax/opt/test/generate_body.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Opt } from 'azle/property_tests/arbitraries/candid/constructed/opt_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamOpts: Named>[], - returnOpt: CandidValueAndMeta -): string { - const areParamsOpts = namedParamOpts - .map((param) => { - return `if (!${isParamOpt(param.name)}) throw new Error('${ - param.name - } must be an Opt');`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamOpts); - - const returnStatement = returnOpt.src.valueLiteral; - - return ` - ${areParamsOpts} - ${paramsCorrectlyOrdered} - - return ${returnStatement}; - `; -} - -function isParamOpt(paramName: string): string { - return `(Array.isArray(${paramName}) && (${paramName}.length === 1 || ${paramName}.length === 0))`; -} diff --git a/tests/property/candid_rpc/class_syntax/opt/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/opt/test/generate_tests.ts deleted file mode 100644 index 1c6ce71905..0000000000 --- a/tests/property/candid_rpc/class_syntax/opt/test/generate_tests.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Opt } from 'azle/property_tests/arbitraries/candid/constructed/opt_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamOpts: Named>[], - returnOpt: CandidValueAndMeta -): Test[][] { - const expectedResult = returnOpt.value.agentResponseValue; - - return [ - [ - { - name: `opt ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const params = namedParamOpts.map( - (param) => param.value.value.agentArgumentValue - ); - - const result = await actor[functionName](...params); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/opt/test/test.ts b/tests/property/candid_rpc/class_syntax/opt/test/test.ts deleted file mode 100644 index 31f95b56c3..0000000000 --- a/tests/property/candid_rpc/class_syntax/opt/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { OptArb } from 'azle/property_tests/arbitraries/candid/constructed/opt_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllOptsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(OptArb(context)), - OptArb(context) -); - -const CanisterConfigArb = fc - .array(AllOptsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/principal/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/principal/test/generate_body.ts deleted file mode 100644 index 69dc896e1a..0000000000 --- a/tests/property/candid_rpc/class_syntax/principal/test/generate_body.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Principal } from '@dfinity/principal'; -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamPrincipals: Named>[], - returnPrincipal: CandidValueAndMeta -): string { - const paramsArePrincipals = namedParamPrincipals - .map((param) => { - return `if (${param.name}._isPrincipal !== true) throw new Error('${param.name} must be a Principal');`; - }) - .join('\n'); - - const returnStatement = - namedParamPrincipals.length > 0 - ? namedParamPrincipals[0].name - : returnPrincipal.src.valueLiteral; - - const paramsCorrectlyOrdered = - areParamsCorrectlyOrdered(namedParamPrincipals); - - return ` - ${paramsArePrincipals} - - ${paramsCorrectlyOrdered} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/principal/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/principal/test/generate_tests.ts deleted file mode 100644 index 05f59dc620..0000000000 --- a/tests/property/candid_rpc/class_syntax/principal/test/generate_tests.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Principal } from '@dfinity/principal'; -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamPrincipals: Named>[], - returnPrincipal: CandidValueAndMeta -): Test[][] { - const expectedResult = - namedParamPrincipals.length > 0 - ? namedParamPrincipals[0].value.value.agentResponseValue - : returnPrincipal.value.agentResponseValue; - - return [ - [ - { - name: `principal ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - const result = await actor[functionName]( - ...namedParamPrincipals.map( - (param) => param.value.value.agentArgumentValue - ) - ); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/principal/test/test.ts b/tests/property/candid_rpc/class_syntax/principal/test/test.ts deleted file mode 100644 index 735a76a74a..0000000000 --- a/tests/property/candid_rpc/class_syntax/principal/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { PrincipalArb } from 'azle/property_tests/arbitraries/candid/reference/principal_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllPrincipalsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(PrincipalArb(context)), - PrincipalArb(context) -); - -const CanisterConfigArb = fc - .array(AllPrincipalsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/record/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/record/test/generate_body.ts deleted file mode 100644 index 56d5b4a55f..0000000000 --- a/tests/property/candid_rpc/class_syntax/record/test/generate_body.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Record } from 'azle/property_tests/arbitraries/candid/constructed/record_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamRecords: Named>[], - returnRecord: CandidValueAndMeta -): string { - const paramsAreRecords = namedParamRecords - .map((param) => { - const fieldsCount = Object.keys( - param.value.value.agentArgumentValue - ).length; - - const paramIsObject = `typeof ${param.name} === 'object'`; - const paramHasCorrectNumberOfFields = `Object.keys(${param.name}).length === ${fieldsCount}`; - const throwError = `throw new Error('${param.name} must be a Record');`; - - return `if (!(${paramIsObject} && ${paramHasCorrectNumberOfFields})) ${throwError}`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamRecords); - - const returnStatement = returnRecord.src.valueLiteral; - - return ` - ${paramsAreRecords} - - ${paramsCorrectlyOrdered} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/record/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/record/test/generate_tests.ts deleted file mode 100644 index e23fd20329..0000000000 --- a/tests/property/candid_rpc/class_syntax/record/test/generate_tests.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Record } from 'azle/property_tests/arbitraries/candid/constructed/record_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamRecords: Named>[], - returnRecord: CandidValueAndMeta -): Test[][] { - return [ - [ - { - name: `record ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - ...namedParamRecords.map( - (param) => param.value.value.agentArgumentValue - ) - ); - - return testEquality( - result, - returnRecord.value.agentResponseValue - ); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/record/test/test.ts b/tests/property/candid_rpc/class_syntax/record/test/test.ts deleted file mode 100644 index a7fe814258..0000000000 --- a/tests/property/candid_rpc/class_syntax/record/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { RecordArb } from 'azle/property_tests/arbitraries/candid/constructed/record_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllRecordsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(RecordArb(context)), - RecordArb(context) -); - -const CanisterConfigArb = fc - .array(AllRecordsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/recursive/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/recursive/test/generate_body.ts deleted file mode 100644 index 6488fdc42b..0000000000 --- a/tests/property/candid_rpc/class_syntax/recursive/test/generate_body.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Recursive } from 'azle/property_tests/arbitraries/candid/recursive'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamRecursive: Named>[], - returnRecursive: CandidValueAndMeta -): string { - const paramsCorrectlyOrdered = - areParamsCorrectlyOrdered(namedParamRecursive); - - const returnStatement = returnRecursive.src.valueLiteral; - - return ` - ${paramsCorrectlyOrdered} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/recursive/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/recursive/test/generate_tests.ts deleted file mode 100644 index d6459ffb9e..0000000000 --- a/tests/property/candid_rpc/class_syntax/recursive/test/generate_tests.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Recursive } from 'azle/property_tests/arbitraries/candid/recursive'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamRecursive: Named>[], - returnRecursive: CandidValueAndMeta -): Test[][] { - return [ - [ - { - name: `recursive ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const params = namedParamRecursive.map( - (param) => param.value.value.agentArgumentValue - ); - - const result = await actor[functionName](...params); - - return testEquality( - result, - returnRecursive.value.agentResponseValue - ); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/recursive/test/test.ts b/tests/property/candid_rpc/class_syntax/recursive/test/test.ts deleted file mode 100644 index 1b402cf78d..0000000000 --- a/tests/property/candid_rpc/class_syntax/recursive/test/test.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { RecursiveArb } from 'azle/property_tests/arbitraries/candid/recursive'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { UpdateMethodArb } from 'azle/property_tests/arbitraries/canister_methods/update_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllRecursiveQueryMethodArb = fc.oneof( - QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(RecursiveArb(context)), - RecursiveArb(context) - ), - UpdateMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(RecursiveArb(context)), - RecursiveArb(context) - ) -); - -const CanisterConfigArb = fc - .array(AllRecursiveQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb), true); diff --git a/tests/property/candid_rpc/class_syntax/service/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/service/test/generate_body.ts deleted file mode 100644 index b112d22eab..0000000000 --- a/tests/property/candid_rpc/class_syntax/service/test/generate_body.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Principal } from '@dfinity/principal'; -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; - -export function generateBody( - namedParamServices: Named>[], - returnService: CandidValueAndMeta -): string { - const paramsAreServices = namedParamServices - .map((param) => { - const paramIsAService = `(${ - param.name - } as any).toText() === "${param.value.value.agentArgumentValue.toText()}"`; - - const throwError = `throw new Error('${param.name} must be a Service');`; - - return `if (!(${paramIsAService})) ${throwError}`; - }) - .join('\n'); - - const returnStatement = returnService.src.valueLiteral; - - return ` - ${paramsAreServices} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/service/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/service/test/generate_tests.ts deleted file mode 100644 index 0f28d07c9c..0000000000 --- a/tests/property/candid_rpc/class_syntax/service/test/generate_tests.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Principal } from '@dfinity/principal'; -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import { execSync } from 'child_process'; - -export function generateTests( - functionName: string, - namedParamServices: Named>[], - returnService: CandidValueAndMeta -): Test[][] { - return [ - [ - { - name: `service ${functionName}`, - test: async (): Promise => { - // Using execSync because the JS Agent has a bug expecting services - // to be ordered by hash or something. - // See https://forum.dfinity.org/t/topic/20885/14 - - const paramsString = namedParamServices - .map( - (param) => - `service "${param.value.value.agentArgumentValue.toText()}"` - ) - .join(); - - const result = execSync( - `dfx canister call canister ${functionName} '(${paramsString})'` - ) - .toString() - .trim(); - - return testEquality( - result, - `(service "${returnService.value.agentArgumentValue.toText()}")` - ); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/service/test/test.ts b/tests/property/candid_rpc/class_syntax/service/test/test.ts deleted file mode 100644 index d991fab057..0000000000 --- a/tests/property/candid_rpc/class_syntax/service/test/test.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { ServiceArb } from 'azle/property_tests/arbitraries/candid/reference/service_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllServicesQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.uniqueArray(ServiceArb(context), { - selector: (entry) => entry.src.typeAnnotation - }), - ServiceArb(context) -); - -const CanisterConfigArb = fc - .array(AllServicesQueryMethodArb, { - ...defaultArrayConstraints, - maxLength: 30 // If the number of generated services is too large we will run out of space in the wasm custom section. - }) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/contains_key.ts b/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/contains_key.ts deleted file mode 100644 index bf2e9ce3b1..0000000000 --- a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/contains_key.ts +++ /dev/null @@ -1,121 +0,0 @@ -import { getActor } from 'azle/property_tests'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { StableBTreeMap } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { UniqueIdentifierArb } from 'azle/property_tests/arbitraries/unique_identifier_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -export function ContainsKeyTestArb( - stableBTreeMap: StableBTreeMap -): fc.Arbitrary { - return fc - .tuple(UniqueIdentifierArb('canisterProperties')) - .map(([functionName]): QueryMethod => { - const imports = new Set([ - ...stableBTreeMap.imports, - 'IDL', - 'query' - ]); - - const paramTypeObjects = [ - stableBTreeMap.keySample.src.typeObject - ].join(', '); - - const paramName = [ - `param0: ${stableBTreeMap.keySample.src.typeAnnotation}` - ].join(', '); - - const returnTypeObject = 'IDL.Bool'; - const returnTypeAnnotation = 'boolean'; - const body = generateBody(stableBTreeMap.name); - const tests = generateTests( - functionName, - stableBTreeMap.keySample.value.agentArgumentValue - ); - - return { - imports, - globalDeclarations: [], - sourceCode: generateSourceCode( - functionName, - paramName, - body, - paramTypeObjects, - returnTypeObject, - returnTypeAnnotation - ), - tests - }; - }); -} - -function generateSourceCode( - functionName: string, - paramName: string, - body: string, - paramTypeObjects: string, - returnTypeObject: string, - returnTypeAnnotation: string -): string { - return ` - @query([${paramTypeObjects}], ${returnTypeObject}) - ${functionName}(${paramName}): ${returnTypeAnnotation} { - ${body} - }`; -} - -function generateBody(stableBTreeMapName: string): string { - return /*TS*/ ` - return ${stableBTreeMapName}.containsKey(param0); - `; -} - -function generateTests( - functionName: string, - keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'] -): Test[][] { - return [ - [ - { - name: `containsKey after first deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - keySampleAgentArgumentValue - ); - - return testEquality(result, true); - } - } - ], - [ - { - name: `containsKey after second deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - keySampleAgentArgumentValue - ); - - return testEquality(result, true); - } - } - ], - [ - { - name: `containsKey after third deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - keySampleAgentArgumentValue - ); - - return testEquality(result, false); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/get.ts b/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/get.ts deleted file mode 100644 index 75a75a42b9..0000000000 --- a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/get.ts +++ /dev/null @@ -1,125 +0,0 @@ -import { getActor } from 'azle/property_tests'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { StableBTreeMap } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { UniqueIdentifierArb } from 'azle/property_tests/arbitraries/unique_identifier_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -export function GetTestArb( - stableBTreeMap: StableBTreeMap -): fc.Arbitrary { - return fc - .tuple(UniqueIdentifierArb('canisterProperties')) - .map(([functionName]): QueryMethod => { - const imports = new Set([ - ...stableBTreeMap.imports, - 'query', - 'IDL' - ]); - - const paramTypeObjects = [ - stableBTreeMap.keySample.src.typeObject - ].join(', '); - - const paramNames = [ - `param0: ${stableBTreeMap.keySample.src.typeAnnotation}` - ].join(', '); - - const returnTypeObject = `IDL.Opt(${stableBTreeMap.valueSample.src.typeObject})`; - const returnTypeAnnotation = - stableBTreeMap.valueSample.src.typeAnnotation; - const valueTypeIsNull = - stableBTreeMap.valueSample.src.typeAnnotation === 'null'; - const body = generateBody(stableBTreeMap.name, valueTypeIsNull); - - const tests = generateTests( - functionName, - stableBTreeMap.keySample.value.agentArgumentValue, - stableBTreeMap.valueSample.value.agentArgumentValue - ); - - return { - imports, - globalDeclarations: [], - sourceCode: `@query([${paramTypeObjects}], ${returnTypeObject}) - ${functionName}(${paramNames}): [${returnTypeAnnotation}] | [] { - ${body} - }`, - tests - }; - }); -} - -function generateBody( - stableBTreeMapName: string, - valueTypeIsNull: boolean -): string { - return /*TS*/ ` - const result = ${stableBTreeMapName}.get(param0); - ${ - valueTypeIsNull - ? `const containsKey = ${stableBTreeMapName}.containsKey(param0);` - : '' - } - if (result === null ${valueTypeIsNull ? '&& !containsKey' : ''}) { - return [] - } else { - return [result] - } - `; -} - -function generateTests( - functionName: string, - keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'], - valueSampleAgentArgumentValue: StableBTreeMap['valueSample']['value']['agentArgumentValue'] -): Test[][] { - return [ - [ - { - name: `get after first deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - keySampleAgentArgumentValue - ); - - return testEquality(result, [ - valueSampleAgentArgumentValue - ]); - } - } - ], - [ - { - name: `get after second deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - keySampleAgentArgumentValue - ); - - return testEquality(result, [ - valueSampleAgentArgumentValue - ]); - } - } - ], - [ - { - name: `get after third deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - keySampleAgentArgumentValue - ); - - return testEquality(result, []); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/insert.ts b/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/insert.ts deleted file mode 100644 index 6aee258dc3..0000000000 --- a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/insert.ts +++ /dev/null @@ -1,85 +0,0 @@ -import { getActor } from 'azle/property_tests'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { StableBTreeMap } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { UniqueIdentifierArb } from 'azle/property_tests/arbitraries/unique_identifier_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -export function InsertTestArb( - stableBTreeMap: StableBTreeMap -): fc.Arbitrary { - return fc - .tuple(UniqueIdentifierArb('canisterProperties')) - .map(([functionName]): QueryMethod => { - const imports = new Set([ - ...stableBTreeMap.imports, - 'IDL', - 'update' - ]); - - const paramTypeObjects = [ - stableBTreeMap.keySample.src.typeObject, - stableBTreeMap.valueSample.src.typeObject - ].join(', '); - - const paramNames = [ - `param0: ${stableBTreeMap.keySample.src.typeAnnotation}`, - `param1: ${stableBTreeMap.valueSample.src.typeAnnotation}` - ].join(', '); - - const returnTypeObject = `IDL.Opt(${stableBTreeMap.valueSample.src.typeObject})`; - const returnTypeAnnotation = `[${stableBTreeMap.valueSample.src.typeAnnotation}] | []`; - const body = generateBody(stableBTreeMap.name); - - const tests = generateTests( - functionName, - stableBTreeMap.keySample.value.agentArgumentValue, - stableBTreeMap.valueSample.value.agentArgumentValue - ); - - return { - imports, - globalDeclarations: [], - sourceCode: `@update([${paramTypeObjects}], ${returnTypeObject}) - ${functionName}(${paramNames}): ${returnTypeAnnotation} { - ${body} - }`, - tests - }; - }); -} - -function generateBody(stableBTreeMapName: string): string { - return /*TS*/ ` - const result = ${stableBTreeMapName}.insert(param0, param1); - if (result === null) { - return [] - } else { - return [result] - } - `; -} - -function generateTests( - functionName: string, - keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'], - valueSampleAgentArgumentValue: StableBTreeMap['valueSample']['value']['agentArgumentValue'] -): Test[][] { - return [ - [ - { - name: `insert after first deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - keySampleAgentArgumentValue, - valueSampleAgentArgumentValue - ); - - return testEquality(result, []); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/is_empty.ts b/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/is_empty.ts deleted file mode 100644 index bfe53519ac..0000000000 --- a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/is_empty.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { getActor } from 'azle/property_tests'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { StableBTreeMap } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { UniqueIdentifierArb } from 'azle/property_tests/arbitraries/unique_identifier_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -export function IsEmptyTestArb( - stableBTreeMap: StableBTreeMap -): fc.Arbitrary { - return fc - .tuple(UniqueIdentifierArb('canisterProperties')) - .map(([functionName]): QueryMethod => { - const imports = new Set([ - ...stableBTreeMap.imports, - 'IDL', - 'query' - ]); - - const body = generateBody(stableBTreeMap.name); - - const tests = generateTests(functionName); - - return { - imports, - globalDeclarations: [], - sourceCode: `@query([], IDL.Bool) - ${functionName}(): boolean { - ${body} - }`, - tests - }; - }); -} - -function generateBody(stableBTreeMapName: string): string { - return ` - return ${stableBTreeMapName}.isEmpty(); - `; -} - -function generateTests(functionName: string): Test[][] { - return [ - [ - { - name: `isEmpty after first deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality(result, true); - } - } - ], - [ - { - name: `isEmpty after second deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality(result, false); - } - } - ], - [ - { - name: `isEmpty after third deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality(result, true); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/items.ts b/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/items.ts deleted file mode 100644 index 74f262fbce..0000000000 --- a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/items.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { getActor } from 'azle/property_tests'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { StableBTreeMap } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { UniqueIdentifierArb } from 'azle/property_tests/arbitraries/unique_identifier_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -export function ItemsTestArb( - stableBTreeMap: StableBTreeMap -): fc.Arbitrary { - return fc - .tuple(UniqueIdentifierArb('canisterProperties')) - .map(([functionName]): QueryMethod => { - const imports = new Set([ - ...stableBTreeMap.imports, - 'IDL', - 'query' - ]); - - const returnTypeObject = `IDL.Vec(IDL.Tuple(${stableBTreeMap.keySample.src.typeObject}, ${stableBTreeMap.valueSample.src.typeObject}))`; - const returnTypeAnnotation = `[${stableBTreeMap.keySample.src.typeAnnotation}, ${stableBTreeMap.valueSample.src.typeAnnotation}][]`; - const body = generateBody(stableBTreeMap.name); - - const tests = generateTests( - functionName, - stableBTreeMap.keySample.value.agentArgumentValue, - stableBTreeMap.valueSample.value.agentArgumentValue - ); - - return { - imports, - globalDeclarations: [], - sourceCode: `@query([], ${returnTypeObject}) - ${functionName}(): ${returnTypeAnnotation} { - ${body} - }`, - tests - }; - }); -} - -function generateBody(stableBTreeMapName: string): string { - return ` - return ${stableBTreeMapName}.items(); - `; -} - -function generateTests( - functionName: string, - keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'], - valueSampleAgentArgumentValue: StableBTreeMap['valueSample']['value']['agentArgumentValue'] -): Test[][] { - return [ - [ - { - name: `items after first deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality(result, [ - [ - keySampleAgentArgumentValue, - valueSampleAgentArgumentValue - ] - ]); - } - } - ], - [ - { - name: `items after second deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality(result, [ - [ - keySampleAgentArgumentValue, - valueSampleAgentArgumentValue - ] - ]); - } - } - ], - [ - { - name: `items after third deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality(result, []); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/keys.ts b/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/keys.ts deleted file mode 100644 index 29f184d24b..0000000000 --- a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/keys.ts +++ /dev/null @@ -1,124 +0,0 @@ -import { getActor } from 'azle/property_tests'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { StableBTreeMap } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { UniqueIdentifierArb } from 'azle/property_tests/arbitraries/unique_identifier_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -import { - getArrayForCandidTypeObject, - getArrayStringForTypeObject, - getArrayTypeAnnotation -} from './utils'; - -export function KeysTestArb( - stableBTreeMap: StableBTreeMap -): fc.Arbitrary { - return fc - .tuple(UniqueIdentifierArb('canisterProperties')) - .map(([functionName]): QueryMethod => { - const imports = new Set([ - ...stableBTreeMap.imports, - 'IDL', - 'query' - ]); - - const returnTypeObject = `IDL.Vec(${stableBTreeMap.keySample.src.typeObject})`; - const returnTypeAnnotation = getArrayTypeAnnotation( - stableBTreeMap.keySample.src.typeObject, - stableBTreeMap.keySample.src.typeAnnotation - ); - const body = generateBody( - stableBTreeMap.name, - stableBTreeMap.keySample.src.typeObject - ); - - const tests = generateTests(functionName, stableBTreeMap.keySample); - - return { - imports, - globalDeclarations: [], - sourceCode: `@query([], ${returnTypeObject}) - ${functionName}(): ${returnTypeAnnotation} { - ${body} - }`, - tests - }; - }); -} - -function generateBody( - stableBTreeMapName: string, - stableBTreeMapKeyTypeObject: string -): string { - return ` - return ${getArrayStringForTypeObject( - stableBTreeMapKeyTypeObject - )}(${stableBTreeMapName}.keys()); - `; -} - -function generateTests( - functionName: string, - keySample: StableBTreeMap['keySample'] -): Test[][] { - return [ - [ - { - name: `keys after first deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality( - getArrayForCandidTypeObject( - keySample.src.typeObject - ).from(result), - getArrayForCandidTypeObject( - keySample.src.typeObject - ).from([keySample.value.agentArgumentValue]) - ); - } - } - ], - [ - { - name: `keys after second deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality( - getArrayForCandidTypeObject( - keySample.src.typeObject - ).from(result), - getArrayForCandidTypeObject( - keySample.src.typeObject - ).from([keySample.value.agentArgumentValue]) - ); - } - } - ], - [ - { - name: `keys after third deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality( - getArrayForCandidTypeObject( - keySample.src.typeObject - ).from(result), - getArrayForCandidTypeObject( - keySample.src.typeObject - ).from([]) - ); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/len.ts b/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/len.ts deleted file mode 100644 index 40f42d2553..0000000000 --- a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/len.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { getActor } from 'azle/property_tests'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { StableBTreeMap } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { UniqueIdentifierArb } from 'azle/property_tests/arbitraries/unique_identifier_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -export function LenTestArb( - stableBTreeMap: StableBTreeMap -): fc.Arbitrary { - return fc - .tuple(UniqueIdentifierArb('canisterProperties')) - .map(([functionName]): QueryMethod => { - const imports = new Set([ - ...stableBTreeMap.imports, - 'IDL', - 'query' - ]); - - const returnTypeObject = `IDL.Nat64`; - const returnTypeAnnotation = `bigint`; - const body = generateBody(stableBTreeMap.name); - - const tests = generateTests(functionName); - - return { - imports, - globalDeclarations: [], - sourceCode: `@query([], ${returnTypeObject}) - ${functionName}(): ${returnTypeAnnotation} { - ${body} - }`, - tests - }; - }); -} - -function generateBody(stableBTreeMapName: string): string { - return ` - return ${stableBTreeMapName}.len(); - `; -} - -function generateTests(functionName: string): Test[][] { - return [ - [ - { - name: `len after first deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality(result, 1n); - } - } - ], - [ - { - name: `len after second deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality(result, 1n); - } - } - ], - [ - { - name: `len after third deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality(result, 0n); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/remove.ts b/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/remove.ts deleted file mode 100644 index 3de59b3bd6..0000000000 --- a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/remove.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { getActor } from 'azle/property_tests'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { StableBTreeMap } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { UniqueIdentifierArb } from 'azle/property_tests/arbitraries/unique_identifier_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -export function RemoveTestArb( - stableBTreeMap: StableBTreeMap -): fc.Arbitrary { - return fc - .tuple(UniqueIdentifierArb('canisterProperties')) - .map(([functionName]): QueryMethod => { - const imports = new Set([ - ...stableBTreeMap.imports, - 'IDL', - 'update' - ]); - - const paramTypeObjects = [ - stableBTreeMap.keySample.src.typeObject - ].join(', '); - - const paramNames = [ - `param0: ${stableBTreeMap.keySample.src.typeAnnotation}` - ].join(', '); - - const returnTypeObject = `IDL.Opt(${stableBTreeMap.valueSample.src.typeObject})`; - const returnTypeAnnotation = `[${stableBTreeMap.valueSample.src.typeAnnotation}] | []`; - const valueTypeIsNull = - stableBTreeMap.valueSample.src.typeAnnotation === 'null'; - const body = generateBody(stableBTreeMap.name, valueTypeIsNull); - - const tests = generateTests( - functionName, - stableBTreeMap.keySample.value.agentArgumentValue, - stableBTreeMap.valueSample.value.agentArgumentValue - ); - - return { - imports, - globalDeclarations: [], - sourceCode: `@update([${paramTypeObjects}], ${returnTypeObject}) - ${functionName}(${paramNames}): ${returnTypeAnnotation} { - ${body} - }`, - tests - }; - }); -} - -function generateBody( - stableBTreeMapName: string, - valueTypeIsNull: boolean -): string { - return /*TS*/ ` - ${ - valueTypeIsNull - ? `const containsKey = ${stableBTreeMapName}.containsKey(param0);` - : '' - } - const result = ${stableBTreeMapName}.remove(param0); - if (result === null ${valueTypeIsNull ? '&& !containsKey' : ''}) { - return [] - } else { - return [result] - } - `; -} - -function generateTests( - functionName: string, - keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'], - valueSampleAgentArgumentValue: StableBTreeMap['valueSample']['value']['agentArgumentValue'] -): Test[][] { - return [ - [], - [ - { - name: `remove after second deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - keySampleAgentArgumentValue - ); - - return testEquality(result, [ - valueSampleAgentArgumentValue - ]); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/test.ts b/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/test.ts deleted file mode 100644 index 7a7ead2c18..0000000000 --- a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/test.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { runPropTests } from 'azle/property_tests'; -import { CanisterArb } from 'azle/property_tests/arbitraries/canister_arb'; -import { StableBTreeMapArb } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { Context } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { ContainsKeyTestArb } from './contains_key'; -import { GetTestArb } from './get'; -import { InsertTestArb } from './insert'; -import { IsEmptyTestArb } from './is_empty'; -import { ItemsTestArb } from './items'; -import { KeysTestArb } from './keys'; -import { LenTestArb } from './len'; -import { RemoveTestArb } from './remove'; -import { ValuesTestArb } from './values'; - -const context: Context = { api: 'class', constraints: {} }; - -const StableBTreeMapTestArb = fc - .array( - StableBTreeMapArb(context).chain((stableBTreeMap) => { - return fc - .tuple( - IsEmptyTestArb(stableBTreeMap), - InsertTestArb(stableBTreeMap), - ContainsKeyTestArb(stableBTreeMap), - GetTestArb(stableBTreeMap), - ItemsTestArb(stableBTreeMap), - KeysTestArb(stableBTreeMap), - LenTestArb(stableBTreeMap), - ValuesTestArb(stableBTreeMap), - RemoveTestArb(stableBTreeMap) - ) - .map( - ([ - isEmptyTestQueryMethod, - insertTestQueryMethod, - containsKeyTestQueryMethod, - getTestQueryMethod, - itemsTestQueryMethod, - keysTestQueryMethod, - lenTestQueryMethod, - valuesTestQueryMethod, - removeTestQueryMethod - ]) => { - return { - globalDeclarations: [ - ...stableBTreeMap.keySample.src - .variableAliasDeclarations, - ...stableBTreeMap.valueSample.src - .variableAliasDeclarations, - stableBTreeMap.definition - ], - queryMethods: [], - updateMethods: [ - isEmptyTestQueryMethod, - insertTestQueryMethod, - containsKeyTestQueryMethod, - getTestQueryMethod, - itemsTestQueryMethod, - keysTestQueryMethod, - lenTestQueryMethod, - valuesTestQueryMethod, - removeTestQueryMethod - ] - }; - } - ); - }), - { - minLength: 10, - maxLength: 30 - } - ) - .map((canisterConfigs) => { - const globalDeclarations = canisterConfigs.flatMap( - (canisterConfig) => canisterConfig.globalDeclarations - ); - - const queryMethods = canisterConfigs.flatMap( - (canisterConfig) => canisterConfig.queryMethods - ); - - const updateMethods = canisterConfigs.flatMap( - (canisterConfig) => canisterConfig.updateMethods - ); - - return { - globalDeclarations, - queryMethods, - updateMethods - }; - }); - -runPropTests(CanisterArb(context, StableBTreeMapTestArb)); diff --git a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/values.ts b/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/values.ts deleted file mode 100644 index 8b74a3d797..0000000000 --- a/tests/property/candid_rpc/class_syntax/stable_b_tree_map/test/values.ts +++ /dev/null @@ -1,127 +0,0 @@ -import { getActor } from 'azle/property_tests'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { StableBTreeMap } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { UniqueIdentifierArb } from 'azle/property_tests/arbitraries/unique_identifier_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -import { - getArrayForCandidTypeObject, - getArrayStringForTypeObject, - getArrayTypeAnnotation -} from './utils'; - -export function ValuesTestArb( - stableBTreeMap: StableBTreeMap -): fc.Arbitrary { - return fc - .tuple(UniqueIdentifierArb('canisterProperties')) - .map(([functionName]): QueryMethod => { - const imports = new Set([ - ...stableBTreeMap.imports, - 'IDL', - 'query' - ]); - - const returnTypeObject = `IDL.Vec(${stableBTreeMap.valueSample.src.typeObject})`; - const returnTypeAnnotation = getArrayTypeAnnotation( - stableBTreeMap.valueSample.src.typeObject, - stableBTreeMap.valueSample.src.typeAnnotation - ); - const body = generateBody( - stableBTreeMap.name, - stableBTreeMap.valueSample.src.typeObject - ); - - const tests = generateTests( - functionName, - stableBTreeMap.valueSample - ); - - return { - imports, - globalDeclarations: [], - sourceCode: `@query([], ${returnTypeObject}) - ${functionName}(): ${returnTypeAnnotation} { - ${body} - }`, - tests - }; - }); -} - -function generateBody( - stableBTreeMapName: string, - stableBTreeMapValueTypeObject: string -): string { - return ` - return ${getArrayStringForTypeObject( - stableBTreeMapValueTypeObject - )}(${stableBTreeMapName}.values()); - `; -} - -function generateTests( - functionName: string, - valueSample: StableBTreeMap['valueSample'] -): Test[][] { - return [ - [ - { - name: `values after first deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality( - getArrayForCandidTypeObject( - valueSample.src.typeObject - ).from(result), - getArrayForCandidTypeObject( - valueSample.src.typeObject - ).from([valueSample.value.agentArgumentValue]) - ); - } - } - ], - [ - { - name: `values after second deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality( - getArrayForCandidTypeObject( - valueSample.src.typeObject - ).from(result), - getArrayForCandidTypeObject( - valueSample.src.typeObject - ).from([valueSample.value.agentArgumentValue]) - ); - } - } - ], - [ - { - name: `values after third deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality( - getArrayForCandidTypeObject( - valueSample.src.typeObject - ).from(result), - getArrayForCandidTypeObject( - valueSample.src.typeObject - ).from([]) - ); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/text/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/text/test/generate_body.ts deleted file mode 100644 index 0e2091277f..0000000000 --- a/tests/property/candid_rpc/class_syntax/text/test/generate_body.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamTexts: Named>[], - returnText: CandidValueAndMeta -): string { - const paramsAreStrings = namedParamTexts - .map((param) => { - return `if (typeof ${param.name} !== 'string') throw new Error('${param.name} must be a string');`; - }) - .join('\n'); - - const returnStatement = namedParamTexts.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnText.src.valueLiteral); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamTexts); - - return ` - ${paramsAreStrings} - - ${paramsCorrectlyOrdered} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/text/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/text/test/generate_tests.ts deleted file mode 100644 index 370e30d251..0000000000 --- a/tests/property/candid_rpc/class_syntax/text/test/generate_tests.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamTexts: Named>[], - returnTexts: CandidValueAndMeta -): Test[][] { - const expectedResult = namedParamTexts.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnTexts.value.agentResponseValue - ); - const paramValues = namedParamTexts.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `text ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/text/test/test.ts b/tests/property/candid_rpc/class_syntax/text/test/test.ts deleted file mode 100644 index 42a1b15875..0000000000 --- a/tests/property/candid_rpc/class_syntax/text/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { TextArb } from 'azle/property_tests/arbitraries/candid/primitive/text'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllTextsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(TextArb(context)), - TextArb(context) -); - -const CanisterConfigArb = fc - .array(AllTextsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/tuple/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/tuple/test/generate_body.ts deleted file mode 100644 index 9db56b18d1..0000000000 --- a/tests/property/candid_rpc/class_syntax/tuple/test/generate_body.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { - ReturnTuple, - Tuple -} from 'azle/property_tests/arbitraries/candid/constructed/tuple_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamTuples: Named>[], - returnTuple: CandidValueAndMeta -): string { - const paramsAreTuples = namedParamTuples - .map((param) => { - const fieldsCount = param.value.value.agentArgumentValue.length; - - const paramIsArray = `Array.isArray(${param.name})`; - const paramHasCorrectNumberOfFields = `${param.name}.length === ${fieldsCount}`; - const throwError = `throw new Error('${param.name} must be a Tuple');`; - - return `if (!(${paramIsArray} && ${paramHasCorrectNumberOfFields})) ${throwError}`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamTuples); - - const returnStatement = returnTuple.src.valueLiteral; - - return ` - ${paramsAreTuples} - - ${paramsCorrectlyOrdered} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/tuple/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/tuple/test/generate_tests.ts deleted file mode 100644 index c35eedb756..0000000000 --- a/tests/property/candid_rpc/class_syntax/tuple/test/generate_tests.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { - ReturnTuple, - Tuple -} from 'azle/property_tests/arbitraries/candid/constructed/tuple_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamTuples: Named>[], - returnTuple: CandidValueAndMeta -): Test[][] { - const expectedResult = returnTuple.value.agentResponseValue; - - return [ - [ - { - name: `tuple ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - ...namedParamTuples.map( - (param) => param.value.value.agentArgumentValue - ) - ); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/tuple/test/test.ts b/tests/property/candid_rpc/class_syntax/tuple/test/test.ts deleted file mode 100644 index 33f3400ad3..0000000000 --- a/tests/property/candid_rpc/class_syntax/tuple/test/test.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { TupleArb } from 'azle/property_tests/arbitraries/candid/constructed/tuple_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllTuplesQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.uniqueArray(TupleArb(context), { - selector: (entry) => entry.src.typeAnnotation - }), - TupleArb(context) -); - -const CanisterConfigArb = fc - .array(AllTuplesQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/variant/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/variant/test/generate_body.ts deleted file mode 100644 index 30e7aea51d..0000000000 --- a/tests/property/candid_rpc/class_syntax/variant/test/generate_body.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Variant } from 'azle/property_tests/arbitraries/candid/constructed/variant_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamVariants: Named>[], - returnVariant: CandidValueAndMeta -): string { - const paramsAreVariants = namedParamVariants - .map((param) => { - return `if (typeof ${param.name} !== 'object' || Object.keys(${param.name}).length !== 1) throw new Error('${param.name} must be a Variant');`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = - areParamsCorrectlyOrdered(namedParamVariants); - - const returnStatement = returnVariant.src.valueLiteral; - - return ` - ${paramsCorrectlyOrdered} - - ${paramsAreVariants} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/variant/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/variant/test/generate_tests.ts deleted file mode 100644 index d9e46079d2..0000000000 --- a/tests/property/candid_rpc/class_syntax/variant/test/generate_tests.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Variant } from 'azle/property_tests/arbitraries/candid/constructed/variant_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamVariants: Named>[], - returnVariant: CandidValueAndMeta -): Test[][] { - const expectedResult = returnVariant.value.agentResponseValue; - - return [ - [ - { - name: `variant ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - ...namedParamVariants.map( - (param) => param.value.value.agentArgumentValue - ) - ); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/variant/test/test.ts b/tests/property/candid_rpc/class_syntax/variant/test/test.ts deleted file mode 100644 index 5a26f7230d..0000000000 --- a/tests/property/candid_rpc/class_syntax/variant/test/test.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { VariantArb } from 'azle/property_tests/arbitraries/candid/constructed/variant_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllVariantsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.uniqueArray(VariantArb(context), { - selector: (entry) => entry.src.typeAnnotation - }), - VariantArb(context) -); - -const CanisterConfigArb = fc - .array(AllVariantsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/class_syntax/vec/test/generate_body.ts b/tests/property/candid_rpc/class_syntax/vec/test/generate_body.ts deleted file mode 100644 index e209ee6cd3..0000000000 --- a/tests/property/candid_rpc/class_syntax/vec/test/generate_body.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamVecs: Named>[], - returnVec: CandidValueAndMeta -): string { - const paramsAreArrays = namedParamVecs - .map((param) => { - return `if (!Array.isArray(${param.name}) && !ArrayBuffer.isView(${param.name})) throw new Error('${param.name} must be an array');`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamVecs); - - const returnValue = returnVec.src.valueLiteral; - - return ` - ${paramsAreArrays} - - ${paramsCorrectlyOrdered} - - return ${returnValue}; - `; -} diff --git a/tests/property/candid_rpc/class_syntax/vec/test/generate_tests.ts b/tests/property/candid_rpc/class_syntax/vec/test/generate_tests.ts deleted file mode 100644 index f668d981b1..0000000000 --- a/tests/property/candid_rpc/class_syntax/vec/test/generate_tests.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamVecs: Named>[], - returnVec: CandidValueAndMeta -): Test[][] { - const expectedResult = returnVec.value.agentResponseValue; - - return [ - [ - { - name: `vec ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const params = namedParamVecs.map( - (param) => param.value.value.agentArgumentValue - ); - const result = await actor[functionName](...params); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/class_syntax/vec/test/test.ts b/tests/property/candid_rpc/class_syntax/vec/test/test.ts deleted file mode 100644 index 22fe469d50..0000000000 --- a/tests/property/candid_rpc/class_syntax/vec/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { VecArb } from 'azle/property_tests/arbitraries/candid/constructed/vec_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'class'; -const context = { api, constraints: {} }; - -const AllVecsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(VecArb(context)), - VecArb(context) -); - -const CanisterConfigArb = fc - .array(AllVecsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/blob/dfx.json b/tests/property/candid_rpc/functional_api/blob/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/blob/dfx.json rename to tests/property/candid_rpc/functional_api/blob/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/blob/package-lock.json b/tests/property/candid_rpc/functional_api/blob/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/blob/package-lock.json rename to tests/property/candid_rpc/functional_api/blob/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/blob/package.json b/tests/property/candid_rpc/functional_api/blob/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/blob/package.json rename to tests/property/candid_rpc/functional_api/blob/package.json diff --git a/tests/property/candid_rpc/functional_api/blob/test/generate_body.ts b/tests/property/candid_rpc/functional_api/blob/test/generate_body.ts new file mode 100644 index 0000000000..d42cc53f6d --- /dev/null +++ b/tests/property/candid_rpc/functional_api/blob/test/generate_body.ts @@ -0,0 +1,31 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamBlobs: Named>[], + returnBlob: CandidValueAndMeta +): string { + // TODO these checks should be much more precise probably, imagine checking the elements inside of the arrays + const paramsAreUint8Arrays = namedParamBlobs + .map((param) => { + return `if (!(${param.name} instanceof Uint8Array)) throw new Error('${param.name} must be a Uint8Array');`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamBlobs); + + const returnValue = returnBlob.value.agentArgumentValue; + + const returnStatement = `Uint8Array.from([${[...returnValue]} ${ + returnValue.length > 0 ? ',' : '' + } ${namedParamBlobs.map((param) => `...${param.name}`).join(', ')}])`; + + return ` + ${paramsAreUint8Arrays} + + ${paramsCorrectlyOrdered} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/blob/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/blob/test/generate_tests.ts new file mode 100644 index 0000000000..486dfabddd --- /dev/null +++ b/tests/property/candid_rpc/functional_api/blob/test/generate_tests.ts @@ -0,0 +1,37 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + paramBlobs: Named>[], + returnBlob: CandidValueAndMeta +): Test[][] { + const expectedResult = Uint8Array.from( + paramBlobs + .map((blob) => blob.value.value.agentResponseValue) + .reduce( + (acc, blob) => [...acc, ...blob], + [...returnBlob.value.agentResponseValue] + ) + ); + + return [ + [ + { + name: `blob ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + ...paramBlobs.map( + (blob) => blob.value.value.agentArgumentValue + ) + ); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/blob/test/test.ts b/tests/property/candid_rpc/functional_api/blob/test/test.ts new file mode 100644 index 0000000000..a36b961b2a --- /dev/null +++ b/tests/property/candid_rpc/functional_api/blob/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { BlobArb } from 'azle/test/property/arbitraries/candid/constructed/blob_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllBlobsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(BlobArb(context)), + BlobArb(context) +); + +const CanisterConfigArb = fc + .array(AllBlobsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/blob/tsconfig.json b/tests/property/candid_rpc/functional_api/blob/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/blob/tsconfig.json rename to tests/property/candid_rpc/functional_api/blob/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/bool/dfx.json b/tests/property/candid_rpc/functional_api/bool/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/bool/dfx.json rename to tests/property/candid_rpc/functional_api/bool/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/bool/package-lock.json b/tests/property/candid_rpc/functional_api/bool/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/bool/package-lock.json rename to tests/property/candid_rpc/functional_api/bool/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/bool/package.json b/tests/property/candid_rpc/functional_api/bool/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/bool/package.json rename to tests/property/candid_rpc/functional_api/bool/package.json diff --git a/tests/property/candid_rpc/functional_api/bool/test/generate_body.ts b/tests/property/candid_rpc/functional_api/bool/test/generate_body.ts new file mode 100644 index 0000000000..994df55128 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/bool/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamBools: Named>[], + returnBool: CandidValueAndMeta +): string { + // TODO do we want to encapsulate 'boolean' in the CandidArb? Like an agentType instead of a candidType, like azleValue and agentValue? + // TODO or will this not matter anymore once we start using a deep equal library + const paramsAreBooleans = namedParamBools + .map((param) => { + return `if (typeof ${param.name} !== 'boolean') throw new Error('${param.name} must be a boolean');`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamBools); + + const returnStatement = namedParamBools.reduce((acc, { name }) => { + return `${acc} && ${name}`; + }, returnBool.src.valueLiteral); + + return ` + ${paramsAreBooleans} + + ${paramsCorrectlyOrdered} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/bool/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/bool/test/generate_tests.ts new file mode 100644 index 0000000000..f502a7d3d1 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/bool/test/generate_tests.ts @@ -0,0 +1,32 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamBools: Named>[], + returnBool: CandidValueAndMeta +): Test[][] { + const expectedResult = namedParamBools.reduce( + (acc, param) => acc && param.value.value.agentResponseValue, + returnBool.value.agentResponseValue + ); + const paramValues = namedParamBools.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `bool ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/bool/test/test.ts b/tests/property/candid_rpc/functional_api/bool/test/test.ts new file mode 100644 index 0000000000..93a0d4864b --- /dev/null +++ b/tests/property/candid_rpc/functional_api/bool/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { BoolArb } from 'azle/test/property/arbitraries/candid/primitive/bool'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllBoolsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(BoolArb(context)), + BoolArb(context) +); + +const CanisterConfigArb = fc + .array(AllBoolsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/bool/tsconfig.json b/tests/property/candid_rpc/functional_api/bool/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/bool/tsconfig.json rename to tests/property/candid_rpc/functional_api/bool/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request/dfx.json b/tests/property/candid_rpc/functional_api/canister_methods/http_request/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/http_request/dfx.json rename to tests/property/candid_rpc/functional_api/canister_methods/http_request/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request/package-lock.json b/tests/property/candid_rpc/functional_api/canister_methods/http_request/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/http_request/package-lock.json rename to tests/property/candid_rpc/functional_api/canister_methods/http_request/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request/package.json b/tests/property/candid_rpc/functional_api/canister_methods/http_request/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/http_request/package.json rename to tests/property/candid_rpc/functional_api/canister_methods/http_request/package.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request/test/fletch.ts b/tests/property/candid_rpc/functional_api/canister_methods/http_request/test/fletch.ts similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/http_request/test/fletch.ts rename to tests/property/candid_rpc/functional_api/canister_methods/http_request/test/fletch.ts diff --git a/tests/property/candid_rpc/functional_api/canister_methods/http_request/test/generate_body.ts b/tests/property/candid_rpc/functional_api/canister_methods/http_request/test/generate_body.ts new file mode 100644 index 0000000000..f5e9178348 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/http_request/test/generate_body.ts @@ -0,0 +1,137 @@ +import { HttpRequest } from 'azle/experimental'; +import { Named } from 'azle/test/property'; +import { CandidReturnType } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; + +export function generateBody( + namedParams: Named>[], + returnType: CandidValueAndMeta +): string { + const { name: requestParamName, value: requestValueObject } = + namedParams[0]; + const request = requestValueObject.value.agentArgumentValue; + + const httpMethodCheck = generateHttpMethodCheck( + request.method, + requestParamName + ); + const urlCheck = generateUrlCheck(request.url, requestParamName); + const headersMap = generateHeadersMap(request.headers, requestParamName); + const headerChecks = generateHeaderChecks(request.headers); + const bodyCheck = generateBodyCheck(request.body, requestParamName); + + return ` + // Body check has to happen before method check or else type checks might fail + ${bodyCheck} + ${httpMethodCheck} + ${urlCheck} + ${headersMap} + ${headerChecks} + + return ${returnType.src.valueLiteral}; + `; +} + +function generateHttpMethodCheck( + method: string, + requestParamName: string +): string { + return ` + if (${requestParamName}.method !== '${method}') { + throw new Error( + \`Unexpected req.method. Expected ${method} but received \${${requestParamName}.method}\` + ); + } + `; +} + +function generateUrlCheck(url: string, requestParamName: string): string { + return ` + if (decodeURIComponent(${requestParamName}.url) !== decodeURIComponent('${escape( + url + )}')) { + throw new Error( + \`Unexpected req.url. Expected '${escape( + url + )}' but received \${${requestParamName}.url}\` + ); + } + `; +} + +function generateHeadersMap( + headers: [string, string][], + requestParamName: string +): string { + return headers.length === 0 + ? '' + : ` + const headers = (${requestParamName}.headers as [string, string][]).reduce<{ + [key: string]: string} + >((prev, [name, value]) => ({[name]: value, ...prev}), {}); + `; +} + +function generateHeaderChecks(headers: [string, string][]): string { + return headers + .map(([name, value]) => { + if (value === '') { + return generateEmptyHeaderCheck(name); + } + return generateNonEmptyHeaderCheck(name, value); + }) + .join('\n'); +} + +function generateEmptyHeaderCheck(name: string): string { + return `if (headers['${escape( + name + ).toLowerCase()}'] !== undefined && headers['${escape( + name + ).toLowerCase()}'] !== '') { + throw new Error( + \`Unexpected value for header '${escape( + name + )}'. Expected undefined but received '\${headers['${escape( + name + ).toLowerCase()}']}'\` + ); + } + `; +} + +function generateNonEmptyHeaderCheck(name: string, value: string): string { + return `if (headers['${escape(name).toLowerCase()}'] !== '${escape( + value + )}') { + throw new Error( + \`Unexpected value for header '${escape( + name + )}'. Expected '${escape( + value + )}' but received '\${headers['${escape( + name + ).toLowerCase()}']}'\` + ); + } + `; +} + +function generateBodyCheck(body: Uint8Array, requestParamName: string): string { + return `if (${requestParamName}.method !== 'GET' && ${requestParamName}.body !== undefined) { + const requestBody = Buffer.from(${requestParamName}.body).toString('utf-8'); + const expectedBody = "${escape(Buffer.from(body).toString('utf-8'))}" + if (requestBody !== expectedBody) { + throw new Error(\`Unexpected value for body. Expected \${expectedBody}, but received \${requestBody}\`) + } + }`; +} + +function escape(input: string): string { + return input + .replace(/\\/g, '\\\\') // Escape backslashes + .replace(/\$\{/g, '\\${') // Escape interpolation starts + .replace(/`/g, '\\`') // Escape backticks + .replace(/'/g, "\\'") // Escape single quotes + .replace(/"/g, '\\"'); // Escape double quotes +} diff --git a/tests/property/candid_rpc/functional_api/canister_methods/http_request/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/canister_methods/http_request/test/generate_tests.ts new file mode 100644 index 0000000000..28b9df4f00 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/http_request/test/generate_tests.ts @@ -0,0 +1,54 @@ +import { HttpRequest, HttpResponse } from 'azle/experimental'; +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { HttpResponseAgentResponseValue } from 'azle/test/property/arbitraries/http/response_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +import { fletch } from './fletch'; + +export function generateTests( + functionName: string, + params: Named>[], + returnType: CandidValueAndMeta< + HttpResponse, + HttpResponseAgentResponseValue + > +): Test[][] { + const request = params[0].value.value.agentArgumentValue; + const expectedResponse = returnType.value.agentResponseValue; + + return [ + [ + { + name: functionName, + test: async (): Promise => { + const response = await fletch('canister', request); + const filteredHeaders = response.headers + .filter( + ([name]) => + name !== 'x-ic-streaming-response' && + name !== 'content-length' && + name !== 'date' + ) + .sort(); + const processedResponse = { + status: response.status, + headers: filteredHeaders, + body: response.body + }; + const sortedExpectedHeaders = + expectedResponse.headers.sort(); + const processedExpectedResponse = { + ...expectedResponse, + headers: sortedExpectedHeaders + }; + + return testEquality( + processedResponse, + processedExpectedResponse + ); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/canister_methods/http_request/test/test.ts b/tests/property/candid_rpc/functional_api/canister_methods/http_request/test/test.ts new file mode 100644 index 0000000000..632266e4aa --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/http_request/test/test.ts @@ -0,0 +1,43 @@ +import { HttpRequest } from 'azle/experimental'; +import { runPropTests } from 'azle/test/property'; +import { RecordArb } from 'azle/test/property/arbitraries/candid/constructed/record_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { HttpRequestArb } from 'azle/test/property/arbitraries/http/request_arb'; +import { HttpResponseArb } from 'azle/test/property/arbitraries/http/response_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const CanisterConfigArb = RecordArb(context) + .chain((record) => { + const HttpRequestMethodArb = QueryMethodArb( + { + api, + constraints: { + name: 'http_request', + generateBody, + generateTests + } + }, + fc.tuple(HttpRequestArb(context)), + HttpResponseArb(context, record) + ); + + return HttpRequestMethodArb; + }) + .map((httpRequestMethod): CanisterConfig => { + return { + queryMethods: [httpRequestMethod] + }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request/tsconfig.json b/tests/property/candid_rpc/functional_api/canister_methods/http_request/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/http_request/tsconfig.json rename to tests/property/candid_rpc/functional_api/canister_methods/http_request/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/dfx.json b/tests/property/candid_rpc/functional_api/canister_methods/http_request_update/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/dfx.json rename to tests/property/candid_rpc/functional_api/canister_methods/http_request_update/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/package-lock.json b/tests/property/candid_rpc/functional_api/canister_methods/http_request_update/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/package-lock.json rename to tests/property/candid_rpc/functional_api/canister_methods/http_request_update/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/package.json b/tests/property/candid_rpc/functional_api/canister_methods/http_request_update/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/package.json rename to tests/property/candid_rpc/functional_api/canister_methods/http_request_update/package.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/test/fletch.ts b/tests/property/candid_rpc/functional_api/canister_methods/http_request_update/test/fletch.ts similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/test/fletch.ts rename to tests/property/candid_rpc/functional_api/canister_methods/http_request_update/test/fletch.ts diff --git a/tests/property/candid_rpc/functional_api/canister_methods/http_request_update/test/generate_body.ts b/tests/property/candid_rpc/functional_api/canister_methods/http_request_update/test/generate_body.ts new file mode 100644 index 0000000000..3696c1c196 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/http_request_update/test/generate_body.ts @@ -0,0 +1,139 @@ +import { HttpRequest } from 'azle/experimental'; +import { Named } from 'azle/test/property'; +import { CandidReturnType } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; + +export function generateBody( + namedParams: Named>[], + returnType: CandidValueAndMeta +): string { + const { name: requestParamName, value: requestValueObject } = + namedParams[0]; + const request = requestValueObject.value.agentArgumentValue; + + const httpMethodCheck = generateHttpMethodCheck( + request.method, + requestParamName + ); + const urlCheck = generateUrlCheck(request.url, requestParamName); + const headersMap = generateHeadersMap(request.headers, requestParamName); + const headerChecks = generateHeaderChecks(request.headers); + const bodyCheck = generateBodyCheck(request.body, requestParamName); + + return ` + state++; + + // Body check has to happen before method check or else type checks might fail + ${bodyCheck} + ${httpMethodCheck} + ${urlCheck} + ${headersMap} + ${headerChecks} + + return ${returnType.src.valueLiteral}; + `; +} + +function generateHttpMethodCheck( + method: string, + requestParamName: string +): string { + return ` + if (${requestParamName}.method !== '${method}') { + throw new Error( + \`Unexpected req.method. Expected ${method} but received \${${requestParamName}.method}\` + ); + } + `; +} + +function generateUrlCheck(url: string, requestParamName: string): string { + return ` + if (decodeURIComponent(${requestParamName}.url) !== decodeURIComponent('${escape( + url + )}')) { + throw new Error( + \`Unexpected req.url. Expected '${escape( + url + )}' but received \${${requestParamName}.url}\` + ); + } + `; +} + +function generateHeadersMap( + headers: [string, string][], + requestParamName: string +): string { + return headers.length === 0 + ? '' + : ` + const headers = (${requestParamName}.headers as [string, string][]).reduce<{ + [key: string]: string} + >((prev, [name, value]) => ({[name]: value, ...prev}), {}); + `; +} + +function generateHeaderChecks(headers: [string, string][]): string { + return headers + .map(([name, value]) => { + if (value === '') { + return generateEmptyHeaderCheck(name); + } + return generateNonEmptyHeaderCheck(name, value); + }) + .join('\n'); +} + +function generateEmptyHeaderCheck(name: string): string { + return `if (headers['${escape( + name + ).toLowerCase()}'] !== undefined && headers['${escape( + name + ).toLowerCase()}'] !== '') { + throw new Error( + \`Unexpected value for header '${escape( + name + )}'. Expected undefined but received '\${headers['${escape( + name + ).toLowerCase()}']}'\` + ); + } + `; +} + +function generateNonEmptyHeaderCheck(name: string, value: string): string { + return `if (headers['${escape(name).toLowerCase()}'] !== '${escape( + value + )}') { + throw new Error( + \`Unexpected value for header '${escape( + name + )}'. Expected '${escape( + value + )}' but received '\${headers['${escape( + name + ).toLowerCase()}']}'\` + ); + } + `; +} + +function generateBodyCheck(body: Uint8Array, requestParamName: string): string { + return `if (${requestParamName}.method !== 'GET' && ${requestParamName}.body !== undefined) { + const requestBody = Buffer.from(${requestParamName}.body).toString('utf-8'); + const expectedBody = "${escape(Buffer.from(body).toString('utf-8'))}" + if (requestBody !== expectedBody) { + throw new Error(\`Unexpected value for body. Expected \${expectedBody}, but received \${requestBody}\`) + } + }`; +} + +function escape(input: string): string { + return input + .replace(/\\/g, '\\\\') // Escape backslashes + .replace(/\$\{/g, '\\${') // Escape interpolation starts + .replace(/`/g, '\\`') // Escape backticks + .replace(/'/g, "\\'") // Escape single quotes + .replace(/"/g, '\\"'); // Escape double quotes +} diff --git a/tests/property/candid_rpc/functional_api/canister_methods/http_request_update/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/canister_methods/http_request_update/test/generate_tests.ts new file mode 100644 index 0000000000..7b0a90a19b --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/http_request_update/test/generate_tests.ts @@ -0,0 +1,74 @@ +import { HttpRequest, HttpResponse } from 'azle/experimental'; +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { HttpResponseAgentResponseValue } from 'azle/test/property/arbitraries/http/response_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +import { fletch } from './fletch'; + +export function generateTests( + functionName: string, + params: Named>[], + returnType: CandidValueAndMeta< + HttpResponse, + HttpResponseAgentResponseValue + > +): Test[][] { + const request = params[0].value.value.agentArgumentValue; + const expectedResponse = returnType.value.agentResponseValue; + + return [ + [ + { + name: 'get state before calling http_request', + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor['get_state'](); + + return testEquality(result, 0); + } + }, + { + name: functionName, + test: async (): Promise => { + const response = await fletch('canister', request); + const filteredHeaders = response.headers + .filter( + ([name]) => + name !== 'x-ic-streaming-response' && + name !== 'content-length' && + name !== 'date' + ) + .sort(); + const processedResponse = { + status: response.status, + headers: filteredHeaders, + body: response.body + }; + const sortedExpectedHeaders = + expectedResponse.headers.sort(); + const processedExpectedResponse = { + ...expectedResponse, + headers: sortedExpectedHeaders + }; + + return testEquality( + processedResponse, + processedExpectedResponse + ); + } + }, + { + name: 'get state after calling http_request', + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor['get_state'](); + + return testEquality(result, 1); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/canister_methods/http_request_update/test/test.ts b/tests/property/candid_rpc/functional_api/canister_methods/http_request_update/test/test.ts new file mode 100644 index 0000000000..77861a313c --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/http_request_update/test/test.ts @@ -0,0 +1,84 @@ +import { HttpRequest } from 'azle/experimental'; +import { runPropTests } from 'azle/test/property'; +import { RecordArb } from 'azle/test/property/arbitraries/candid/constructed/record_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { UpdateMethodArb } from 'azle/test/property/arbitraries/canister_methods/update_method_arb'; +import { HttpRequestArb } from 'azle/test/property/arbitraries/http/request_arb'; +import { HttpResponseArb } from 'azle/test/property/arbitraries/http/response_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const HttpRequestUpdateMethodArb = RecordArb(context).chain((record) => { + const HttpRequestMethodArb = UpdateMethodArb( + { + api, + constraints: { + name: 'http_request_update', + generateBody, + generateTests + } + }, + fc.tuple(HttpRequestArb(context)), + HttpResponseArb(context, record) + ); + + return HttpRequestMethodArb; +}); + +const CanisterConfigArb = HttpRequestUpdateMethodArb.map( + (httpRequestUpdateMethod): CanisterConfig => { + const httpRequestMethod = generateHttpRequestMethod(); + const getStateMethod = generateGetStateMethod(); + + return { + queryMethods: [httpRequestMethod, getStateMethod], + updateMethods: [httpRequestUpdateMethod] + }; + } +); + +runPropTests(CanisterArb(context, CanisterConfigArb)); + +function generateHttpRequestMethod(): QueryMethod { + return { + imports: new Set([ + 'query', + 'HttpRequest', + 'HttpResponse', + 'Null', + 'Some' + ]), + globalDeclarations: [], + sourceCode: /*TS*/ `http_request: query([HttpRequest], HttpResponse(Null), () => { + return { + status_code: 204, + headers: [], + body: new Uint8Array(), + streaming_strategy: None, + upgrade: Some(true) + }; + })`, + tests: [] + }; +} + +function generateGetStateMethod(): QueryMethod { + return { + imports: new Set(['query', 'nat8']), + globalDeclarations: ['let state: number = 0;'], + sourceCode: /*TS*/ `get_state: query([], nat8, () => { + return state; + })`, + tests: [] + }; +} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/tsconfig.json b/tests/property/candid_rpc/functional_api/canister_methods/http_request_update/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/tsconfig.json rename to tests/property/candid_rpc/functional_api/canister_methods/http_request_update/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/init/dfx.json b/tests/property/candid_rpc/functional_api/canister_methods/init/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/init/dfx.json rename to tests/property/candid_rpc/functional_api/canister_methods/init/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/init/package-lock.json b/tests/property/candid_rpc/functional_api/canister_methods/init/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/init/package-lock.json rename to tests/property/candid_rpc/functional_api/canister_methods/init/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/init/package.json b/tests/property/candid_rpc/functional_api/canister_methods/init/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/init/package.json rename to tests/property/candid_rpc/functional_api/canister_methods/init/package.json diff --git a/tests/property/candid_rpc/functional_api/canister_methods/init/test/generate_callable_method_body.ts b/tests/property/candid_rpc/functional_api/canister_methods/init/test/generate_callable_method_body.ts new file mode 100644 index 0000000000..b789583aa7 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/init/test/generate_callable_method_body.ts @@ -0,0 +1,10 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; + +export function generateBody( + _namedParams: Named>[], + returnType: CandidValueAndMeta +): string { + return `return ${returnType.src.valueLiteral}`; +} diff --git a/tests/property/candid_rpc/functional_api/canister_methods/init/test/generate_init_body.ts b/tests/property/candid_rpc/functional_api/canister_methods/init/test/generate_init_body.ts new file mode 100644 index 0000000000..e9f182e773 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/init/test/generate_init_body.ts @@ -0,0 +1,22 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParams: Named>[] +): string { + const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); + + const storeVariablesGlobally = namedParams + .map((param, i) => `initParam${i} = ${param.name};`) + .join('\n'); + + return ` + initialized = true; + + ${paramsAreCorrectlyOrdered} + + ${storeVariablesGlobally} + `; +} diff --git a/tests/property/candid_rpc/functional_api/canister_methods/init/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/canister_methods/init/test/generate_tests.ts new file mode 100644 index 0000000000..7cc3865499 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/init/test/generate_tests.ts @@ -0,0 +1,28 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + _functionName: string, + params: Named>[] +): Test[][] { + const expectedResult = [ + true, + ...params.map((param) => param.value.value.agentResponseValue) + ]; + + return [ + [ + { + name: `init method`, + test: async (): Promise => { + const actor = getActor(__dirname); + const result = await actor.getInitValues(); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/canister_methods/init/test/test.ts b/tests/property/candid_rpc/functional_api/canister_methods/init/test/test.ts new file mode 100644 index 0000000000..e555294072 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/init/test/test.ts @@ -0,0 +1,134 @@ +import { runPropTests } from 'azle/test/property'; +import { CandidReturnTypeArb } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMetaArb } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { InitMethodArb } from 'azle/test/property/arbitraries/canister_methods/init_method_arb'; +import { + QueryMethod, + QueryMethodArb +} from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { UpdateMethodArb } from 'azle/test/property/arbitraries/canister_methods/update_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody as callableMethodBodyGenerator } from './generate_callable_method_body'; +import { generateBody as initBodyGenerator } from './generate_init_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +// TODO multiplying by zero is to remove -0 +// TODO we should open an issue with agent-js +// TODO the agent should encode and decode -0 correctly +// https://github.com/demergent-labs/azle/issues/1511 +// TODO Infinity and NaN can't be used in this context +// https://github.com/dfinity/candid/issues/499 +const valueConstraints = { + noDefaultInfinity: true, + noNaN: true, + noNegativeZero: true +}; +const SimpleInitMethodArb = InitMethodArb( + { + api, + constraints: { + generateBody: initBodyGenerator, + generateTests + } + }, + fc.array(CandidValueAndMetaArb({ api, constraints: valueConstraints })) +); + +const HeterogeneousQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody: callableMethodBodyGenerator, + generateTests: () => [] + } + }, + fc.array(CandidValueAndMetaArb(context)), + CandidReturnTypeArb(context) +); + +const HeterogeneousUpdateMethodArb = UpdateMethodArb( + { + api, + constraints: { + generateBody: callableMethodBodyGenerator, + generateTests: () => [] + } + }, + fc.array(CandidValueAndMetaArb(context)), + CandidReturnTypeArb(context) +); + +const small = { + minLength: 0, + maxLength: 20 +}; + +const CanisterConfigArb = fc + .tuple( + SimpleInitMethodArb, + fc.array(HeterogeneousQueryMethodArb, small), + fc.array(HeterogeneousUpdateMethodArb, small) + ) + .map( + ([initMethod, queryMethods, updateMethods]): CanisterConfig< + CorrespondingJSType, + CorrespondingJSType + > => { + const initParamTypes = initMethod.params.map( + (param) => param.value.src.typeObject + ); + + const globalInitVariableNames = initMethod.params.map( + (_, i) => `initParam${i}` + ); + const globalInitVariableDeclarations = initMethod.params.map( + (param, i) => + `let initParam${i}: ${param.value.src.typeAnnotation};` + ); + + const globalDeclarations = [ + 'let initialized: boolean = false;', + ...globalInitVariableDeclarations + ]; + + const getInitValues = generateGetInitValuesCanisterMethod( + initParamTypes, + globalInitVariableNames + ); + + return { + initMethod, + globalDeclarations, + queryMethods: [getInitValues, ...queryMethods], + updateMethods + }; + } + ); + +runPropTests(CanisterArb(context, CanisterConfigArb)); + +function generateGetInitValuesCanisterMethod( + paramTypes: string[], + globalInitVariableNames: string[] +): QueryMethod { + return { + imports: new Set(['bool', 'query', 'Tuple']), + globalDeclarations: [], + sourceCode: /*TS*/ `getInitValues: query( + [], + Tuple(bool, ${paramTypes.join()}), + () => { return [initialized, ${globalInitVariableNames.join()}]}) + `, + tests: [] + }; +} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/init/tsconfig.json b/tests/property/candid_rpc/functional_api/canister_methods/init/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/init/tsconfig.json rename to tests/property/candid_rpc/functional_api/canister_methods/init/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/inspect_message/dfx.json b/tests/property/candid_rpc/functional_api/canister_methods/inspect_message/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/inspect_message/dfx.json rename to tests/property/candid_rpc/functional_api/canister_methods/inspect_message/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/inspect_message/package-lock.json b/tests/property/candid_rpc/functional_api/canister_methods/inspect_message/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/inspect_message/package-lock.json rename to tests/property/candid_rpc/functional_api/canister_methods/inspect_message/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/inspect_message/package.json b/tests/property/candid_rpc/functional_api/canister_methods/inspect_message/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/inspect_message/package.json rename to tests/property/candid_rpc/functional_api/canister_methods/inspect_message/package.json diff --git a/tests/property/candid_rpc/functional_api/canister_methods/inspect_message/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/canister_methods/inspect_message/test/generate_tests.ts new file mode 100644 index 0000000000..ddfeb1baf2 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/inspect_message/test/generate_tests.ts @@ -0,0 +1,77 @@ +import { Agent } from '@dfinity/agent'; +import { getActor, Named } from 'azle/test/property'; +import { CandidReturnType } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +import { InspectMessageBehavior } from './test'; + +export function generateTests( + functionName: string, + params: Named>[], + returnType: CandidValueAndMeta, + agentAndBehaviors: [Agent, InspectMessageBehavior][] +): Test[][] { + const paramValues = params.map( + (param) => param.value.value.agentArgumentValue + ); + + const expectedResult = returnType.value.agentResponseValue; + + return [ + agentAndBehaviors.map(([agent, behavior]) => { + return generateTest( + agent, + functionName, + paramValues, + expectedResult, + behavior + ); + }) + ]; +} + +function generateTest( + agent: Agent, + functionName: string, + paramValues: CorrespondingJSType[], + expectedResult: CorrespondingJSType, + behavior: InspectMessageBehavior +): Test { + return { + name: `method "${functionName}" expected ${behavior}`, + test: async (): Promise => { + await agent.fetchRootKey(); + const actor = getActor(__dirname, agent); + try { + const result = await actor[functionName](...paramValues); + + if (behavior === 'ACCEPT') { + return testEquality(result, expectedResult); + } + + return { + Err: 'Expected canister method to throw but it did not' + }; + } catch (error: any) { + if (behavior === 'RETURN') { + return testEquality( + error.message.includes('rejected the message'), + true + ); + } + + if (behavior === 'THROW') { + const expectedError = `Method \\"${functionName}\\" not allowed`; + return testEquality( + error.message.includes(expectedError), + true + ); + } + + throw error; + } + } + }; +} diff --git a/tests/property/candid_rpc/functional_api/canister_methods/inspect_message/test/test.ts b/tests/property/candid_rpc/functional_api/canister_methods/inspect_message/test/test.ts new file mode 100644 index 0000000000..c8bc087d6f --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/inspect_message/test/test.ts @@ -0,0 +1,103 @@ +import { Agent } from '@dfinity/agent'; +import { createAuthenticatedAgentSync, getPrincipal } from 'azle/dfx'; +import { runPropTests } from 'azle/test/property'; +import { CandidReturnTypeArb } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMetaArb } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { InspectMessageMethodArb } from 'azle/test/property/arbitraries/canister_methods/inspect_message_method_arb'; +import { UpdateMethodArb } from 'azle/test/property/arbitraries/canister_methods/update_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; +import { v4 } from 'uuid'; + +import { generateTests } from './generate_tests'; + +export type InspectMessageBehavior = 'ACCEPT' | 'RETURN' | 'THROW'; + +const AZLE_ACCEPT_IDENTITY_NAME = `_prop_test_azle_accept_identity_${v4()}`; +const AZLE_RETURN_IDENTITY_NAME = `_prop_test_azle_return_identity_${v4()}`; +const AZLE_THROW_IDENTITY_NAME = `_prop_test_azle_throw_identity_${v4()}`; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +// TODO make this function's return type explicit https://github.com/demergent-labs/azle/issues/1860 +// eslint-disable-next-line @typescript-eslint/explicit-function-return-type +function CanisterConfigArb() { + const agents: [Agent, InspectMessageBehavior][] = [ + [ + createAuthenticatedAgentSync(AZLE_ACCEPT_IDENTITY_NAME, true), + 'ACCEPT' + ], + [ + createAuthenticatedAgentSync(AZLE_RETURN_IDENTITY_NAME, true), + 'RETURN' + ], + [createAuthenticatedAgentSync(AZLE_THROW_IDENTITY_NAME, true), 'THROW'] + ]; + + const InspectMessageArb = InspectMessageMethodArb({ + api, + constraints: { + generateBody: () => generateInspectMessageMethodBody(), + generateTests: () => [] + } + }); + + const HeterogeneousUpdateMethodArb = UpdateMethodArb( + { + api, + constraints: { + generateBody: (_, returnType) => + `return ${returnType.src.valueLiteral}`, + generateTests: (...args) => generateTests(...args, agents) + } + }, + fc.array(CandidValueAndMetaArb(context)), + CandidReturnTypeArb(context) + ); + + const small = { + minLength: 0, + maxLength: 20 + }; + + return fc + .tuple(InspectMessageArb, fc.array(HeterogeneousUpdateMethodArb, small)) + .map( + ([inspectMessageMethod, updateMethods]): CanisterConfig< + CorrespondingJSType, + CorrespondingJSType + > => { + return { + inspectMessageMethod, + updateMethods + }; + } + ); +} + +runPropTests(CanisterArb(context, CanisterConfigArb())); + +function generateInspectMessageMethodBody(): string { + const acceptPrincipal = getPrincipal(AZLE_ACCEPT_IDENTITY_NAME); + const returnPrincipal = getPrincipal(AZLE_RETURN_IDENTITY_NAME); + const throwPrincipal = getPrincipal(AZLE_THROW_IDENTITY_NAME); + return ` + if (ic.caller().toText() === "${acceptPrincipal}") { + ic.acceptMessage(); + return; + } + if (ic.caller().toText() === "${returnPrincipal}") { + return; + } + if (ic.caller().toText() === "${throwPrincipal}") { + throw new Error(\`Method "$\{ic.methodName()}" not allowed\`); + } + throw new Error("Unexpected caller"); + `; +} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/inspect_message/tsconfig.json b/tests/property/candid_rpc/functional_api/canister_methods/inspect_message/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/inspect_message/tsconfig.json rename to tests/property/candid_rpc/functional_api/canister_methods/inspect_message/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/dfx.json b/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/dfx.json rename to tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/package-lock.json b/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/package-lock.json rename to tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/package.json b/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/package.json rename to tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/package.json diff --git a/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/generate_callable_method_body.ts b/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/generate_callable_method_body.ts new file mode 100644 index 0000000000..b789583aa7 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/generate_callable_method_body.ts @@ -0,0 +1,10 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; + +export function generateBody( + _namedParams: Named>[], + returnType: CandidValueAndMeta +): string { + return `return ${returnType.src.valueLiteral}`; +} diff --git a/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/generate_init_method_body.ts b/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/generate_init_method_body.ts new file mode 100644 index 0000000000..4181f5b0d3 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/generate_init_method_body.ts @@ -0,0 +1,24 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +import { globalInitVarName } from './global_var_name'; + +export function generateBody( + namedParams: Named>[] +): string { + const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); + + const storeVariablesGlobally = namedParams + .map((param, i) => `${globalInitVarName(i)} = ${param.name};`) + .join('\n'); + + return ` + initExecuted = true; + + ${paramsAreCorrectlyOrdered} + + ${storeVariablesGlobally} + `; +} diff --git a/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/generate_init_tests.ts b/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/generate_init_tests.ts new file mode 100644 index 0000000000..b6c576d370 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/generate_init_tests.ts @@ -0,0 +1,34 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + _functionName: string, + params: Named>[] +): Test[][] { + const expectedResult = [ + true, + ...params.map((param) => param.value.value.agentResponseValue) + ]; + + return [ + [ + { + name: `init method`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const initValues = await actor.getInitValues(); + const isPostUpgradeCalled = + await actor.isPostUpgradeCalled(); + + return testEquality( + [initValues, isPostUpgradeCalled], + [expectedResult, false] + ); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/generate_post_upgrade_method_body.ts b/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/generate_post_upgrade_method_body.ts new file mode 100644 index 0000000000..f9e4bd9456 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/generate_post_upgrade_method_body.ts @@ -0,0 +1,24 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +import { globalPostUpgradeVarName } from './global_var_name'; + +export function generateBody( + namedParams: Named>[] +): string { + const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); + + const storeVariablesGlobally = namedParams + .map((param, i) => `${globalPostUpgradeVarName(i)} = ${param.name};`) + .join('\n'); + + return ` + postUpgradeExecuted = true; + + ${paramsAreCorrectlyOrdered} + + ${storeVariablesGlobally} + `; +} diff --git a/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/generate_post_upgrade_tests.ts b/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/generate_post_upgrade_tests.ts new file mode 100644 index 0000000000..7d9e9ddba4 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/generate_post_upgrade_tests.ts @@ -0,0 +1,35 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + _functionName: string, + params: Named>[] +): Test[][] { + const expectedResult = [ + true, + ...params.map((param) => param.value.value.agentResponseValue) + ]; + + return [ + [], // Don't test on the first deploy, test after a re-deploy + [ + { + name: `post upgrade method`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const postUpgradeValues = + await actor.getPostUpgradeValues(); + const isInitCalled = await actor.isInitCalled(); + + return testEquality( + [postUpgradeValues, isInitCalled], + [expectedResult, false] + ); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/global_var_name.ts b/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/global_var_name.ts similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/global_var_name.ts rename to tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/global_var_name.ts diff --git a/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/test.ts b/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/test.ts new file mode 100644 index 0000000000..71e7b1b24c --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/test/test.ts @@ -0,0 +1,308 @@ +import { runPropTests } from 'azle/test/property'; +import { candidDefinitionArb } from 'azle/test/property/arbitraries/candid/candid_definition_arb'; +import { + CandidDefinition, + WithShapes +} from 'azle/test/property/arbitraries/candid/candid_definition_arb/types'; +import { CandidReturnTypeArb } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { + CandidValueAndMeta, + CandidValueAndMetaArb +} from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { definitionAndValueToValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb_generator'; +import { CandidValueArb } from 'azle/test/property/arbitraries/candid/candid_values_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { InitMethodArb } from 'azle/test/property/arbitraries/canister_methods/init_method_arb'; +import { PostUpgradeMethodArb } from 'azle/test/property/arbitraries/canister_methods/post_upgrade_arb'; +import { + QueryMethod, + QueryMethodArb +} from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { UpdateMethodArb } from 'azle/test/property/arbitraries/canister_methods/update_method_arb'; +import { DEFAULT_VALUE_MAX_DEPTH } from 'azle/test/property/arbitraries/config'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody as callableMethodBodyGenerator } from './generate_callable_method_body'; +import { generateBody as initMethodBodyGenerator } from './generate_init_method_body'; +import { generateTests as generateInitTests } from './generate_init_tests'; +import { generateBody as postUpgradeMethodBodyGenerator } from './generate_post_upgrade_method_body'; +import { generateTests as generatePostUpgradeTests } from './generate_post_upgrade_tests'; +import { globalInitVarName, globalPostUpgradeVarName } from './global_var_name'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const CanisterConfigArb = fc + .array(candidDefinitionArb(context, {})) + .chain((paramDefinitionsWithShapes) => { + const initParamValues = definitionsToValueAndMetaArb( + paramDefinitionsWithShapes + ); + const postUpgradeParamValues = definitionsToValueAndMetaArb( + paramDefinitionsWithShapes + ); + return fc.tuple(initParamValues, postUpgradeParamValues); + }) + .chain(([initParams, postUpgradeParams]) => { + const initDeployParamsArb = fc.constant(initParams); + const postUpgradeParamsArb = fc.constant(postUpgradeParams); + + const SimpleInitMethodArb = InitMethodArb( + { + api, + constraints: { + generateBody: initMethodBodyGenerator, + generateTests: generateInitTests + } + }, + initDeployParamsArb + ); + + const SimplePostUpgradeMethodArb = PostUpgradeMethodArb( + { + api, + constraints: { + generateBody: postUpgradeMethodBodyGenerator, + generateTests: generatePostUpgradeTests + } + }, + postUpgradeParamsArb + ); + + const HeterogeneousQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody: callableMethodBodyGenerator, + generateTests: () => [] + } + }, + fc.array(CandidValueAndMetaArb(context)), + CandidReturnTypeArb(context) + ); + + const HeterogeneousUpdateMethodArb = UpdateMethodArb( + { + api, + constraints: { + generateBody: callableMethodBodyGenerator, + generateTests: () => [] + } + }, + fc.array(CandidValueAndMetaArb(context)), + CandidReturnTypeArb(context) + ); + + const small = { + minLength: 0, + maxLength: 20 + }; + + return fc.tuple( + initDeployParamsArb, + postUpgradeParamsArb, + SimpleInitMethodArb, + SimplePostUpgradeMethodArb, + fc.array(HeterogeneousQueryMethodArb, small), + fc.array(HeterogeneousUpdateMethodArb, small) + ); + }) + .map( + ([ + initParams, + postUpgradeParams, + initMethod, + postUpgradeMethod, + queryMethods, + updateMethods + ]): CanisterConfig => { + const paramTypeObjects = postUpgradeParams.map( + // The typeObjects ought to be the same so it doesn't mater which we use to generate this list + (param) => param.src.typeObject + ); + + const globalInitVariableNames = initParams.map((_, i) => + globalInitVarName(i) + ); + const globalPostUpgradeVariableNames = postUpgradeParams.map( + (_, i) => globalPostUpgradeVarName(i) + ); + const globalInitVariableDeclarations = initParams.map( + (param, i) => + `let ${globalInitVarName(i)}: ${param.src.typeAnnotation};` + ); + const globalPostUpgradeVariableDeclarations = postUpgradeParams.map( + (param, i) => + `let ${globalPostUpgradeVarName(i)}: ${ + param.src.typeAnnotation + };` + ); + + const globalDeclarations = [ + 'let postUpgradeExecuted: boolean = false;', + 'let initExecuted: boolean = false;', + ...globalInitVariableDeclarations, + ...globalPostUpgradeVariableDeclarations + ]; + + const getPostUpgradeValues = + generateGetPostUpgradeValuesCanisterMethod( + paramTypeObjects, + globalPostUpgradeVariableNames + ); + + const getInitValues = generateGetInitValuesCanisterMethod( + paramTypeObjects, + globalInitVariableNames + ); + + const isPostUpgradeCalled = generateIsPostUpgradeCalled( + globalPostUpgradeVariableNames + ); + + const isInitCalled = generateIsInitCalled(globalInitVariableNames); + + return { + globalDeclarations, + initMethod, + postUpgradeMethod, + queryMethods: [ + getInitValues, + getPostUpgradeValues, + isPostUpgradeCalled, + isInitCalled, + ...queryMethods + ], + updateMethods + }; + } + ); + +function generateGetPostUpgradeValuesCanisterMethod( + paramTypeObjects: string[], + globalVariableNames: string[] +): QueryMethod { + return { + imports: new Set(['Tuple', 'bool', 'query']), + globalDeclarations: [], + sourceCode: /*TS*/ `getPostUpgradeValues: query( + [], + Tuple(bool, ${paramTypeObjects.join()}), + () => {return [postUpgradeExecuted, ${globalVariableNames.join()}]} + )`, + tests: [] + }; +} + +function generateGetInitValuesCanisterMethod( + paramTypeObjects: string[], + globalVariableNames: string[] +): QueryMethod { + return { + imports: new Set(['Tuple', 'bool', 'query']), + globalDeclarations: [], + sourceCode: /*TS*/ `getInitValues: query( + [], + Tuple(bool, ${paramTypeObjects.join()}), + () => {return [initExecuted, ${globalVariableNames.join()}]} + )`, + tests: [] + }; +} + +function generateIsInitCalled(globalVariableNames: string[]): QueryMethod { + const areAllParamsUndefined = globalVariableNames + .map((name) => `${name} === undefined`) + .join(' && '); + const isInitCalled = `initExecuted${ + globalVariableNames.length === 0 + ? '' + : ` || !(${areAllParamsUndefined})` + }`; + return { + imports: new Set(['bool', 'query']), + globalDeclarations: [], + sourceCode: /*TS*/ `isInitCalled: query([], bool, () => ${isInitCalled})`, + tests: [] + }; +} + +function generateIsPostUpgradeCalled( + globalVariableNames: string[] +): QueryMethod { + const areAllParamsUndefined = globalVariableNames + .map((name) => `${name} === undefined`) + .join(' && '); + const isPostUpgradeCalled = `postUpgradeExecuted${ + globalVariableNames.length === 0 + ? '' + : ` || !(${areAllParamsUndefined})` + }`; + return { + imports: new Set(['bool', 'query']), + globalDeclarations: [], + sourceCode: /*TS*/ `isPostUpgradeCalled: query([], bool, () => ${isPostUpgradeCalled})`, + tests: [] + }; +} + +function definitionsToValueAndMetaArb( + definitionsWithShapes: WithShapes[] +): fc.Arbitrary[]> { + const definitions = definitionsWithShapes.map( + (definitionWithShapes) => definitionWithShapes.definition + ); + const recursiveShapes = definitionsWithShapes.reduce( + (acc, definitionsWithShapes) => { + return { ...acc, ...definitionsWithShapes.recursiveShapes }; + }, + {} + ); + return fc + .tuple( + fc.constant(definitions), + fc.tuple( + ...definitions.map((definition) => + // TODO multiplying by zero is to remove -0 + // TODO we should open an issue with agent-js + // TODO the agent should encode and decode -0 correctly + // https://github.com/demergent-labs/azle/issues/1511 + // TODO Infinity and NaN can't be used in this context + // https://github.com/dfinity/candid/issues/499 + CandidValueArb( + { + api, + constraints: { + noDefaultInfinity: true, + noNaN: true, + noNegativeZero: true, + depthLevel: DEFAULT_VALUE_MAX_DEPTH + } + }, + definition, + recursiveShapes + ) + ) + ) + ) + .map( + ([ + definitions, + values + ]): CandidValueAndMeta[] => { + return values.map((value, index) => { + return definitionAndValueToValueAndMeta( + definitions[index], + value + ); + }); + } + ); +} + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/tsconfig.json b/tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/tsconfig.json rename to tests/property/candid_rpc/functional_api/canister_methods/post_upgrade/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/pre_upgrade/dfx.json b/tests/property/candid_rpc/functional_api/canister_methods/pre_upgrade/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/pre_upgrade/dfx.json rename to tests/property/candid_rpc/functional_api/canister_methods/pre_upgrade/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/pre_upgrade/package-lock.json b/tests/property/candid_rpc/functional_api/canister_methods/pre_upgrade/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/pre_upgrade/package-lock.json rename to tests/property/candid_rpc/functional_api/canister_methods/pre_upgrade/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/pre_upgrade/package.json b/tests/property/candid_rpc/functional_api/canister_methods/pre_upgrade/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/pre_upgrade/package.json rename to tests/property/candid_rpc/functional_api/canister_methods/pre_upgrade/package.json diff --git a/tests/property/candid_rpc/functional_api/canister_methods/pre_upgrade/test/test.ts b/tests/property/candid_rpc/functional_api/canister_methods/pre_upgrade/test/test.ts new file mode 100644 index 0000000000..97161a1da3 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/pre_upgrade/test/test.ts @@ -0,0 +1,142 @@ +import { getActor, runPropTests } from 'azle/test/property'; +import { CandidReturnTypeArb } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMetaArb } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { PreUpgradeMethodArb } from 'azle/test/property/arbitraries/canister_methods/pre_upgrade_method_arb'; +import { + QueryMethod, + QueryMethodArb +} from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { UpdateMethodArb } from 'azle/test/property/arbitraries/canister_methods/update_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import { AzleResult, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const SimplePreUpgradeArb = PreUpgradeMethodArb({ + api, + constraints: { + generateBody: () => + /*TS*/ `stable.insert(PRE_UPGRADE_HOOK_EXECUTED, true);`, + generateTests: () => [] + } +}); + +const HeterogeneousQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody: (_, returnType) => + `return ${returnType.src.valueLiteral}`, + generateTests: () => [] + } + }, + fc.array(CandidValueAndMetaArb(context)), + CandidReturnTypeArb(context) +); + +const HeterogeneousUpdateMethodArb = UpdateMethodArb( + { + api, + constraints: { + generateBody: (_, returnType) => + `return ${returnType.src.valueLiteral}`, + generateTests: () => [] + } + }, + fc.array(CandidValueAndMetaArb(context)), + CandidReturnTypeArb(context) +); + +const small = { + minLength: 0, + maxLength: 20 +}; + +const CanisterConfigArb = fc + .tuple( + SimplePreUpgradeArb, + fc + .array(HeterogeneousQueryMethodArb, small) + .chain((queryMethods) => + fc.constant([ + generateGetPreUpgradeExecutedCanisterMethod(), + ...queryMethods + ]) + ), + fc.array(HeterogeneousUpdateMethodArb, small) + ) + + .map( + ([preUpgradeMethod, queryMethods, updateMethods]): CanisterConfig< + CorrespondingJSType, + CorrespondingJSType + > => { + const globalDeclarations = [ + /*TS*/ `const PRE_UPGRADE_HOOK_EXECUTED = 'PRE_UPGRADE_HOOK_EXECUTED';`, + /*TS*/ `let stable = StableBTreeMap(0);` + ]; + + return { + globalDeclarations, + preUpgradeMethod, + queryMethods, + updateMethods + }; + } + ); + +runPropTests(CanisterArb(context, CanisterConfigArb)); + +function generateGetPreUpgradeExecutedCanisterMethod(): QueryMethod { + return { + imports: new Set([ + 'bool', + 'query', + 'StableBTreeMap', + 'text', + 'Opt', + 'None', + 'Some' + ]), + globalDeclarations: [], + sourceCode: /*TS*/ `getPreUpgradeExecuted: query([], Opt(bool),() => { + const result = stable.get(PRE_UPGRADE_HOOK_EXECUTED) + if (result === null) { + return None + } else { + return Some(result) + } + })`, + tests: [ + [ + { + name: `pre upgrade was not called after first deploy`, + test: async (): Promise => { + const actor = getActor(__dirname); + const result = await actor.getPreUpgradeExecuted(); + + return testEquality(result, []); + } + } + ], + [ + { + name: `pre upgrade was called after second deploy`, + test: async (): Promise => { + const actor = getActor(__dirname); + const result = await actor.getPreUpgradeExecuted(); + + return testEquality(result, [true]); + } + } + ] + ] + }; +} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/pre_upgrade/tsconfig.json b/tests/property/candid_rpc/functional_api/canister_methods/pre_upgrade/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/pre_upgrade/tsconfig.json rename to tests/property/candid_rpc/functional_api/canister_methods/pre_upgrade/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/query/dfx.json b/tests/property/candid_rpc/functional_api/canister_methods/query/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/query/dfx.json rename to tests/property/candid_rpc/functional_api/canister_methods/query/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/query/package-lock.json b/tests/property/candid_rpc/functional_api/canister_methods/query/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/query/package-lock.json rename to tests/property/candid_rpc/functional_api/canister_methods/query/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/query/package.json b/tests/property/candid_rpc/functional_api/canister_methods/query/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/query/package.json rename to tests/property/candid_rpc/functional_api/canister_methods/query/package.json diff --git a/tests/property/candid_rpc/functional_api/canister_methods/query/test/generate_body.ts b/tests/property/candid_rpc/functional_api/canister_methods/query/test/generate_body.ts new file mode 100644 index 0000000000..f1bc623693 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/query/test/generate_body.ts @@ -0,0 +1,18 @@ +import { Named } from 'azle/test/property'; +import { CandidReturnType } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParams: Named>[], + returnType: CandidValueAndMeta +): string { + const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); + + return ` + ${paramsAreCorrectlyOrdered} + + return ${returnType.src.valueLiteral} + `; +} diff --git a/tests/property/candid_rpc/functional_api/canister_methods/query/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/canister_methods/query/test/generate_tests.ts new file mode 100644 index 0000000000..3f03f5b327 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/query/test/generate_tests.ts @@ -0,0 +1,29 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidReturnType } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + params: Named>[], + returnType: CandidValueAndMeta +): Test[][] { + const paramValues = params.map( + (param) => param.value.value.agentArgumentValue + ); + const expectedResult = returnType.value.agentResponseValue; + + return [ + [ + { + name: `query method "${functionName}"`, + test: async (): Promise => { + const actor = getActor(__dirname); + const result = await actor[functionName](...paramValues); + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/canister_methods/query/test/test.ts b/tests/property/candid_rpc/functional_api/canister_methods/query/test/test.ts new file mode 100644 index 0000000000..c3b80af197 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/query/test/test.ts @@ -0,0 +1,42 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { CandidReturnTypeArb } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMetaArb } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +// TODO Canister +// TODO Record +// TODO text +// TODO nat +// TODO update methods + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const HeterogeneousQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(CandidValueAndMetaArb(context)), + CandidReturnTypeArb(context) +); + +const CanisterConfigArb = fc + .array(HeterogeneousQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/query/tsconfig.json b/tests/property/candid_rpc/functional_api/canister_methods/query/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/query/tsconfig.json rename to tests/property/candid_rpc/functional_api/canister_methods/query/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/update/dfx.json b/tests/property/candid_rpc/functional_api/canister_methods/update/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/update/dfx.json rename to tests/property/candid_rpc/functional_api/canister_methods/update/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/update/package-lock.json b/tests/property/candid_rpc/functional_api/canister_methods/update/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/update/package-lock.json rename to tests/property/candid_rpc/functional_api/canister_methods/update/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/update/package.json b/tests/property/candid_rpc/functional_api/canister_methods/update/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/update/package.json rename to tests/property/candid_rpc/functional_api/canister_methods/update/package.json diff --git a/tests/property/candid_rpc/functional_api/canister_methods/update/test/generate_body.ts b/tests/property/candid_rpc/functional_api/canister_methods/update/test/generate_body.ts new file mode 100644 index 0000000000..f1bc623693 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/update/test/generate_body.ts @@ -0,0 +1,18 @@ +import { Named } from 'azle/test/property'; +import { CandidReturnType } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParams: Named>[], + returnType: CandidValueAndMeta +): string { + const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); + + return ` + ${paramsAreCorrectlyOrdered} + + return ${returnType.src.valueLiteral} + `; +} diff --git a/tests/property/candid_rpc/functional_api/canister_methods/update/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/canister_methods/update/test/generate_tests.ts new file mode 100644 index 0000000000..f822f5fefe --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/update/test/generate_tests.ts @@ -0,0 +1,30 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidReturnType } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { CorrespondingJSType } from 'azle/test/property/arbitraries/candid/corresponding_js_type'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + params: Named>[], + returnType: CandidValueAndMeta +): Test[][] { + const paramValues = params.map( + (param) => param.value.value.agentArgumentValue + ); + const expectedResult = returnType.value.agentResponseValue; + + return [ + [ + { + name: `update method "${functionName}"`, + test: async (): Promise => { + const actor = getActor(__dirname); + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/canister_methods/update/test/test.ts b/tests/property/candid_rpc/functional_api/canister_methods/update/test/test.ts new file mode 100644 index 0000000000..78b5ce1af3 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/canister_methods/update/test/test.ts @@ -0,0 +1,36 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { CandidReturnTypeArb } from 'azle/test/property/arbitraries/candid/candid_return_type_arb'; +import { CandidValueAndMetaArb } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { UpdateMethodArb } from 'azle/test/property/arbitraries/canister_methods/update_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const HeterogeneousUpdateMethodArb = UpdateMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(CandidValueAndMetaArb(context)), + CandidReturnTypeArb(context) +); + +const CanisterConfigArb = fc + .array(HeterogeneousUpdateMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/update/tsconfig.json b/tests/property/candid_rpc/functional_api/canister_methods/update/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/canister_methods/update/tsconfig.json rename to tests/property/candid_rpc/functional_api/canister_methods/update/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/float32/dfx.json b/tests/property/candid_rpc/functional_api/float32/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/float32/dfx.json rename to tests/property/candid_rpc/functional_api/float32/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/float32/package-lock.json b/tests/property/candid_rpc/functional_api/float32/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/float32/package-lock.json rename to tests/property/candid_rpc/functional_api/float32/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/float32/package.json b/tests/property/candid_rpc/functional_api/float32/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/float32/package.json rename to tests/property/candid_rpc/functional_api/float32/package.json diff --git a/tests/property/candid_rpc/functional_api/float32/test/generate_body.ts b/tests/property/candid_rpc/functional_api/float32/test/generate_body.ts new file mode 100644 index 0000000000..40e429d11c --- /dev/null +++ b/tests/property/candid_rpc/functional_api/float32/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamFloat32s: Named>[], + returnFloat32: CandidValueAndMeta +): string { + const paramsAreNumbers = namedParamFloat32s + .map((param) => { + return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = + areParamsCorrectlyOrdered(namedParamFloat32s); + + const returnStatement = + namedParamFloat32s.length === 0 + ? returnFloat32.src.valueLiteral + : namedParamFloat32s[0].name; + + return ` + ${paramsCorrectlyOrdered} + + ${paramsAreNumbers} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/float32/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/float32/test/generate_tests.ts new file mode 100644 index 0000000000..8d06ffb8c1 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/float32/test/generate_tests.ts @@ -0,0 +1,31 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamFloat32s: Named>[], + returnFloat32: CandidValueAndMeta +): Test[][] { + const expectedResult = + namedParamFloat32s.length === 0 + ? returnFloat32.value.agentResponseValue + : namedParamFloat32s[0].value.value.agentResponseValue; + const paramValues = namedParamFloat32s.map( + (paramFloats) => paramFloats.value.value.agentArgumentValue + ); + return [ + [ + { + name: `float32 ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/float32/test/test.ts b/tests/property/candid_rpc/functional_api/float32/test/test.ts new file mode 100644 index 0000000000..73469c761d --- /dev/null +++ b/tests/property/candid_rpc/functional_api/float32/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Float32Arb } from 'azle/test/property/arbitraries/candid/primitive/floats/float32_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllFloat32sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Float32Arb(context)), + Float32Arb(context) +); + +const CanisterConfigArb = fc + .array(AllFloat32sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/float32/tsconfig.json b/tests/property/candid_rpc/functional_api/float32/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/float32/tsconfig.json rename to tests/property/candid_rpc/functional_api/float32/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/float64/dfx.json b/tests/property/candid_rpc/functional_api/float64/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/float64/dfx.json rename to tests/property/candid_rpc/functional_api/float64/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/float64/package-lock.json b/tests/property/candid_rpc/functional_api/float64/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/float64/package-lock.json rename to tests/property/candid_rpc/functional_api/float64/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/float64/package.json b/tests/property/candid_rpc/functional_api/float64/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/float64/package.json rename to tests/property/candid_rpc/functional_api/float64/package.json diff --git a/tests/property/candid_rpc/functional_api/float64/test/generate_body.ts b/tests/property/candid_rpc/functional_api/float64/test/generate_body.ts new file mode 100644 index 0000000000..2bf26aa450 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/float64/test/generate_body.ts @@ -0,0 +1,31 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamFloat64s: Named>[], + returnFloat64: CandidValueAndMeta +): string { + const paramsAreNumbers = namedParamFloat64s + .map((param) => { + return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = + areParamsCorrectlyOrdered(namedParamFloat64s); + + const sum = namedParamFloat64s.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnFloat64.src.valueLiteral); + const count = namedParamFloat64s.length + 1; + const average = `(${sum}) / ${count}`; + + return ` + ${paramsCorrectlyOrdered} + + ${paramsAreNumbers} + + return ${average}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/float64/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/float64/test/generate_tests.ts new file mode 100644 index 0000000000..a1b96c9d69 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/float64/test/generate_tests.ts @@ -0,0 +1,35 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamFloat64s: Named>[], + returnFloat64: CandidValueAndMeta +): Test[][] { + const count = namedParamFloat64s.length + 1; + const expectedResult = + namedParamFloat64s.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnFloat64.value.agentResponseValue + ) / count; + + const paramValues = namedParamFloat64s.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `float64 ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/float64/test/test.ts b/tests/property/candid_rpc/functional_api/float64/test/test.ts new file mode 100644 index 0000000000..4f10cca888 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/float64/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Float64Arb } from 'azle/test/property/arbitraries/candid/primitive/floats/float64_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllFloat64sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Float64Arb(context)), + Float64Arb(context) +); + +const CanisterConfigArb = fc + .array(AllFloat64sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/float64/tsconfig.json b/tests/property/candid_rpc/functional_api/float64/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/float64/tsconfig.json rename to tests/property/candid_rpc/functional_api/float64/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/func/dfx.json b/tests/property/candid_rpc/functional_api/func/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/func/dfx.json rename to tests/property/candid_rpc/functional_api/func/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/func/package-lock.json b/tests/property/candid_rpc/functional_api/func/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/func/package-lock.json rename to tests/property/candid_rpc/functional_api/func/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/func/package.json b/tests/property/candid_rpc/functional_api/func/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/func/package.json rename to tests/property/candid_rpc/functional_api/func/package.json diff --git a/tests/property/candid_rpc/functional_api/func/test/generate_body.ts b/tests/property/candid_rpc/functional_api/func/test/generate_body.ts new file mode 100644 index 0000000000..13b2df4ee3 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/func/test/generate_body.ts @@ -0,0 +1,41 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Func } from 'azle/test/property/arbitraries/candid/reference/func_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamFuncs: Named>[], + returnFunc: CandidValueAndMeta +): string { + const paramsAreFuncs = namedParamFuncs + .map(({ name }) => { + const paramIsArray = `Array.isArray(${name})`; + const paramHas2Fields = `${name}.length === 2`; + const field0IsAPrincipal = `${name}[0]._isPrincipal === true`; + const field1IsAString = `typeof ${name}[1] === 'string'`; + + const paramIsAFunc = [ + paramIsArray, + paramHas2Fields, + field0IsAPrincipal, + field1IsAString + ].join(' && '); + + const throwError = `throw new Error('${name} must be a Func');`; + + return `if (!(${paramIsAFunc})) ${throwError}`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamFuncs); + + const returnStatement = returnFunc.src.valueLiteral; + + return ` + ${paramsAreFuncs} + + ${paramsCorrectlyOrdered} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/func/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/func/test/generate_tests.ts new file mode 100644 index 0000000000..6f43b31d48 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/func/test/generate_tests.ts @@ -0,0 +1,32 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Func } from 'azle/test/property/arbitraries/candid/reference/func_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamFuncs: Named>[], + returnFunc: CandidValueAndMeta +): Test[][] { + return [ + [ + { + name: `func ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + ...namedParamFuncs.map( + (param) => param.value.value.agentArgumentValue + ) + ); + + return testEquality( + result, + returnFunc.value.agentResponseValue + ); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/func/test/test.ts b/tests/property/candid_rpc/functional_api/func/test/test.ts new file mode 100644 index 0000000000..0ac44e2ac8 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/func/test/test.ts @@ -0,0 +1,37 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { FuncArb } from 'azle/test/property/arbitraries/candid/reference/func_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllFuncsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.uniqueArray(FuncArb(context), { + selector: (entry) => entry.src.typeAnnotation + }), + FuncArb(context) +); + +const CanisterConfigArb = fc + .array(AllFuncsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/func/tsconfig.json b/tests/property/candid_rpc/functional_api/func/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/func/tsconfig.json rename to tests/property/candid_rpc/functional_api/func/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/int/dfx.json b/tests/property/candid_rpc/functional_api/int/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int/dfx.json rename to tests/property/candid_rpc/functional_api/int/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/int/package-lock.json b/tests/property/candid_rpc/functional_api/int/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int/package-lock.json rename to tests/property/candid_rpc/functional_api/int/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/int/package.json b/tests/property/candid_rpc/functional_api/int/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int/package.json rename to tests/property/candid_rpc/functional_api/int/package.json diff --git a/tests/property/candid_rpc/functional_api/int/test/generate_body.ts b/tests/property/candid_rpc/functional_api/int/test/generate_body.ts new file mode 100644 index 0000000000..20f5dfb198 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/int/test/generate_body.ts @@ -0,0 +1,28 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamInts: Named>[], + returnInt: CandidValueAndMeta +): string { + const paramsAreBigInts = namedParamInts + .map((param) => { + return `if (typeof ${param.name} !== 'bigint') throw new Error('${param.name} must be a bigint');`; + }) + .join('\n'); + + const sum = namedParamInts.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnInt.src.valueLiteral); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInts); + + return ` + ${paramsAreBigInts} + + ${paramsCorrectlyOrdered} + + return ${sum}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/int/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/int/test/generate_tests.ts new file mode 100644 index 0000000000..d371cab3d8 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/int/test/generate_tests.ts @@ -0,0 +1,32 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamInts: Named>[], + returnInt: CandidValueAndMeta +): Test[][] { + const expectedResult = namedParamInts.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnInt.value.agentResponseValue + ); + const paramValues = namedParamInts.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `int ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/int/test/test.ts b/tests/property/candid_rpc/functional_api/int/test/test.ts new file mode 100644 index 0000000000..3f97c821d9 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/int/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { IntArb } from 'azle/test/property/arbitraries/candid/primitive/ints/int_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllIntsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(IntArb(context)), + IntArb(context) +); + +const CanisterConfigArb = fc + .array(AllIntsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/int/tsconfig.json b/tests/property/candid_rpc/functional_api/int/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int/tsconfig.json rename to tests/property/candid_rpc/functional_api/int/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/int16/dfx.json b/tests/property/candid_rpc/functional_api/int16/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int16/dfx.json rename to tests/property/candid_rpc/functional_api/int16/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/int16/package-lock.json b/tests/property/candid_rpc/functional_api/int16/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int16/package-lock.json rename to tests/property/candid_rpc/functional_api/int16/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/int16/package.json b/tests/property/candid_rpc/functional_api/int16/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int16/package.json rename to tests/property/candid_rpc/functional_api/int16/package.json diff --git a/tests/property/candid_rpc/functional_api/int16/test/generate_body.ts b/tests/property/candid_rpc/functional_api/int16/test/generate_body.ts new file mode 100644 index 0000000000..bf8eb93e4e --- /dev/null +++ b/tests/property/candid_rpc/functional_api/int16/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamInt16s: Named>[], + returnInt16: CandidValueAndMeta +): string { + const paramsAreNumbers = namedParamInt16s + .map((param) => { + return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInt16s); + + const sum = namedParamInt16s.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnInt16.src.valueLiteral); + const count = namedParamInt16s.length + 1; + const average = `Math.floor((${sum}) / ${count})`; + + return ` + ${paramsAreNumbers} + + ${paramsCorrectlyOrdered} + + return ${average}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/int16/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/int16/test/generate_tests.ts new file mode 100644 index 0000000000..ca7736f384 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/int16/test/generate_tests.ts @@ -0,0 +1,35 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamInt16s: Named>[], + returnInt16: CandidValueAndMeta +): Test[][] { + const count = namedParamInt16s.length + 1; + const expectedResult = Math.floor( + namedParamInt16s.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnInt16.value.agentResponseValue + ) / count + ); + const paramValues = namedParamInt16s.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `int16 ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/int16/test/test.ts b/tests/property/candid_rpc/functional_api/int16/test/test.ts new file mode 100644 index 0000000000..7cad7f38cb --- /dev/null +++ b/tests/property/candid_rpc/functional_api/int16/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Int16Arb } from 'azle/test/property/arbitraries/candid/primitive/ints/int16_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllInt16sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Int16Arb(context)), + Int16Arb(context) +); + +const CanisterConfigArb = fc + .array(AllInt16sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/int16/tsconfig.json b/tests/property/candid_rpc/functional_api/int16/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int16/tsconfig.json rename to tests/property/candid_rpc/functional_api/int16/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/int32/dfx.json b/tests/property/candid_rpc/functional_api/int32/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int32/dfx.json rename to tests/property/candid_rpc/functional_api/int32/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/int32/package-lock.json b/tests/property/candid_rpc/functional_api/int32/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int32/package-lock.json rename to tests/property/candid_rpc/functional_api/int32/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/int32/package.json b/tests/property/candid_rpc/functional_api/int32/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int32/package.json rename to tests/property/candid_rpc/functional_api/int32/package.json diff --git a/tests/property/candid_rpc/functional_api/int32/test/generate_body.ts b/tests/property/candid_rpc/functional_api/int32/test/generate_body.ts new file mode 100644 index 0000000000..66c38aae59 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/int32/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamInt32s: Named>[], + returnInt32: CandidValueAndMeta +): string { + const paramsAreNumbers = namedParamInt32s + .map((param) => { + return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; + }) + .join('\n'); + + const sum = namedParamInt32s.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnInt32.src.valueLiteral); + const count = namedParamInt32s.length + 1; + const average = `Math.floor((${sum}) / ${count})`; + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInt32s); + + return ` + ${paramsAreNumbers} + + ${paramsCorrectlyOrdered} + + return ${average}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/int32/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/int32/test/generate_tests.ts new file mode 100644 index 0000000000..aca24d4e9e --- /dev/null +++ b/tests/property/candid_rpc/functional_api/int32/test/generate_tests.ts @@ -0,0 +1,35 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamInt32s: Named>[], + returnInt32: CandidValueAndMeta +): Test[][] { + const count = namedParamInt32s.length + 1; + const expectedResult = Math.floor( + namedParamInt32s.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnInt32.value.agentResponseValue + ) / count + ); + const paramValues = namedParamInt32s.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `int32 ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/int32/test/test.ts b/tests/property/candid_rpc/functional_api/int32/test/test.ts new file mode 100644 index 0000000000..212868a91f --- /dev/null +++ b/tests/property/candid_rpc/functional_api/int32/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Int32Arb } from 'azle/test/property/arbitraries/candid/primitive/ints/int32_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllInt32sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Int32Arb(context)), + Int32Arb(context) +); + +const CanisterConfigArb = fc + .array(AllInt32sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/int32/tsconfig.json b/tests/property/candid_rpc/functional_api/int32/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int32/tsconfig.json rename to tests/property/candid_rpc/functional_api/int32/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/int64/dfx.json b/tests/property/candid_rpc/functional_api/int64/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int64/dfx.json rename to tests/property/candid_rpc/functional_api/int64/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/int64/package-lock.json b/tests/property/candid_rpc/functional_api/int64/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int64/package-lock.json rename to tests/property/candid_rpc/functional_api/int64/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/int64/package.json b/tests/property/candid_rpc/functional_api/int64/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int64/package.json rename to tests/property/candid_rpc/functional_api/int64/package.json diff --git a/tests/property/candid_rpc/functional_api/int64/test/generate_body.ts b/tests/property/candid_rpc/functional_api/int64/test/generate_body.ts new file mode 100644 index 0000000000..756f0c0432 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/int64/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamInt64s: Named>[], + returnInt64: CandidValueAndMeta +): string { + const paramsAreBigInts = namedParamInt64s + .map((param) => { + return `if (typeof ${param.name} !== 'bigint') throw new Error('${param.name} must be a bigint');`; + }) + .join('\n'); + + const sum = namedParamInt64s.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnInt64.src.valueLiteral); + const count = namedParamInt64s.length + 1; + const average = `(${sum}) / ${count}n`; + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInt64s); + + return ` + ${paramsAreBigInts} + + ${paramsCorrectlyOrdered} + + return ${average}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/int64/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/int64/test/generate_tests.ts new file mode 100644 index 0000000000..d4c9ee1e05 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/int64/test/generate_tests.ts @@ -0,0 +1,34 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamInt64s: Named>[], + returnInt64: CandidValueAndMeta +): Test[][] { + const count = namedParamInt64s.length + 1; + const expectedResult = + namedParamInt64s.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnInt64.value.agentResponseValue + ) / BigInt(count); + + const paramValues = namedParamInt64s.map( + (param) => param.value.value.agentArgumentValue + ); + return [ + [ + { + name: `int64 ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/int64/test/test.ts b/tests/property/candid_rpc/functional_api/int64/test/test.ts new file mode 100644 index 0000000000..53c03325e4 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/int64/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Int64Arb } from 'azle/test/property/arbitraries/candid/primitive/ints/int64_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllInt64sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Int64Arb(context)), + Int64Arb(context) +); + +const CanisterConfigArb = fc + .array(AllInt64sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/int64/tsconfig.json b/tests/property/candid_rpc/functional_api/int64/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int64/tsconfig.json rename to tests/property/candid_rpc/functional_api/int64/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/int8/dfx.json b/tests/property/candid_rpc/functional_api/int8/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int8/dfx.json rename to tests/property/candid_rpc/functional_api/int8/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/int8/package-lock.json b/tests/property/candid_rpc/functional_api/int8/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int8/package-lock.json rename to tests/property/candid_rpc/functional_api/int8/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/int8/package.json b/tests/property/candid_rpc/functional_api/int8/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int8/package.json rename to tests/property/candid_rpc/functional_api/int8/package.json diff --git a/tests/property/candid_rpc/functional_api/int8/test/generate_body.ts b/tests/property/candid_rpc/functional_api/int8/test/generate_body.ts new file mode 100644 index 0000000000..44d2a1f3af --- /dev/null +++ b/tests/property/candid_rpc/functional_api/int8/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamInt8s: Named>[], + returnInt8: CandidValueAndMeta +): string { + const paramsAreNumbers = namedParamInt8s + .map((param) => { + return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; + }) + .join('\n'); + + const sum = namedParamInt8s.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnInt8.src.valueLiteral); + const count = namedParamInt8s.length + 1; + const average = `Math.floor((${sum}) / ${count})`; + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInt8s); + + return ` + ${paramsAreNumbers} + + ${paramsCorrectlyOrdered} + + return ${average}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/int8/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/int8/test/generate_tests.ts new file mode 100644 index 0000000000..2895ddb7b8 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/int8/test/generate_tests.ts @@ -0,0 +1,34 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamInt8s: Named>[], + returnInt8: CandidValueAndMeta +): Test[][] { + const count = namedParamInt8s.length + 1; + const expectedResult = Math.floor( + namedParamInt8s.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnInt8.value.agentResponseValue + ) / count + ); + const paramValues = namedParamInt8s.map( + (param) => param.value.value.agentArgumentValue + ); + return [ + [ + { + name: `test ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/int8/test/test.ts b/tests/property/candid_rpc/functional_api/int8/test/test.ts new file mode 100644 index 0000000000..d3c933bbe1 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/int8/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Int8Arb } from 'azle/test/property/arbitraries/candid/primitive/ints/int8_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllInt8sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Int8Arb(context)), + Int8Arb(context) +); + +const CanisterConfigArb = fc + .array(AllInt8sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/int8/tsconfig.json b/tests/property/candid_rpc/functional_api/int8/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/int8/tsconfig.json rename to tests/property/candid_rpc/functional_api/int8/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/nat/dfx.json b/tests/property/candid_rpc/functional_api/nat/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat/dfx.json rename to tests/property/candid_rpc/functional_api/nat/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/nat/package-lock.json b/tests/property/candid_rpc/functional_api/nat/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat/package-lock.json rename to tests/property/candid_rpc/functional_api/nat/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/nat/package.json b/tests/property/candid_rpc/functional_api/nat/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat/package.json rename to tests/property/candid_rpc/functional_api/nat/package.json diff --git a/tests/property/candid_rpc/functional_api/nat/test/generate_body.ts b/tests/property/candid_rpc/functional_api/nat/test/generate_body.ts new file mode 100644 index 0000000000..433fae1de6 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/nat/test/generate_body.ts @@ -0,0 +1,28 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamNats: Named>[], + returnNat: CandidValueAndMeta +): string { + const paramsAreBigInts = namedParamNats + .map((param) => { + return `if (typeof ${param.name} !== 'bigint') throw new Error('${param.name} must be a bigint');`; + }) + .join('\n'); + + const sum = namedParamNats.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnNat.src.valueLiteral); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNats); + + return ` + ${paramsCorrectlyOrdered} + + ${paramsAreBigInts} + + return ${sum}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/nat/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/nat/test/generate_tests.ts new file mode 100644 index 0000000000..88de4ee05b --- /dev/null +++ b/tests/property/candid_rpc/functional_api/nat/test/generate_tests.ts @@ -0,0 +1,32 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamNats: Named>[], + returnNat: CandidValueAndMeta +): Test[][] { + const expectedResult = namedParamNats.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnNat.value.agentResponseValue + ); + const paramValues = namedParamNats.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `nat ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/nat/test/test.ts b/tests/property/candid_rpc/functional_api/nat/test/test.ts new file mode 100644 index 0000000000..cf20941bdd --- /dev/null +++ b/tests/property/candid_rpc/functional_api/nat/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { NatArb } from 'azle/test/property/arbitraries/candid/primitive/nats/nat_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllNatsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(NatArb(context)), + NatArb(context) +); + +const CanisterConfigArb = fc + .array(AllNatsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/nat/tsconfig.json b/tests/property/candid_rpc/functional_api/nat/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat/tsconfig.json rename to tests/property/candid_rpc/functional_api/nat/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/nat16/dfx.json b/tests/property/candid_rpc/functional_api/nat16/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat16/dfx.json rename to tests/property/candid_rpc/functional_api/nat16/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/nat16/package-lock.json b/tests/property/candid_rpc/functional_api/nat16/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat16/package-lock.json rename to tests/property/candid_rpc/functional_api/nat16/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/nat16/package.json b/tests/property/candid_rpc/functional_api/nat16/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat16/package.json rename to tests/property/candid_rpc/functional_api/nat16/package.json diff --git a/tests/property/candid_rpc/functional_api/nat16/test/generate_body.ts b/tests/property/candid_rpc/functional_api/nat16/test/generate_body.ts new file mode 100644 index 0000000000..556e2bee55 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/nat16/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamNat16s: Named>[], + returnNat16: CandidValueAndMeta +): string { + const paramsAreNumbers = namedParamNat16s + .map((param) => { + return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; + }) + .join('\n'); + + const sum = namedParamNat16s.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnNat16.src.valueLiteral); + const count = namedParamNat16s.length + 1; + const average = `Math.floor((${sum}) / ${count})`; + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNat16s); + + return ` + ${paramsAreNumbers} + + ${paramsCorrectlyOrdered} + + return ${average}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/nat16/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/nat16/test/generate_tests.ts new file mode 100644 index 0000000000..8830422ece --- /dev/null +++ b/tests/property/candid_rpc/functional_api/nat16/test/generate_tests.ts @@ -0,0 +1,35 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamNat16s: Named>[], + returnNat16: CandidValueAndMeta +): Test[][] { + const count = namedParamNat16s.length + 1; + const expectedResult = Math.floor( + namedParamNat16s.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnNat16.value.agentResponseValue + ) / count + ); + const paramValues = namedParamNat16s.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `nat16 ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/nat16/test/test.ts b/tests/property/candid_rpc/functional_api/nat16/test/test.ts new file mode 100644 index 0000000000..8ae99786f1 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/nat16/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Nat16Arb } from 'azle/test/property/arbitraries/candid/primitive/nats/nat16_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllNat16sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Nat16Arb(context)), + Nat16Arb(context) +); + +const CanisterConfigArb = fc + .array(AllNat16sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/nat16/tsconfig.json b/tests/property/candid_rpc/functional_api/nat16/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat16/tsconfig.json rename to tests/property/candid_rpc/functional_api/nat16/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/nat32/dfx.json b/tests/property/candid_rpc/functional_api/nat32/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat32/dfx.json rename to tests/property/candid_rpc/functional_api/nat32/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/nat32/package-lock.json b/tests/property/candid_rpc/functional_api/nat32/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat32/package-lock.json rename to tests/property/candid_rpc/functional_api/nat32/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/nat32/package.json b/tests/property/candid_rpc/functional_api/nat32/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat32/package.json rename to tests/property/candid_rpc/functional_api/nat32/package.json diff --git a/tests/property/candid_rpc/functional_api/nat32/test/generate_body.ts b/tests/property/candid_rpc/functional_api/nat32/test/generate_body.ts new file mode 100644 index 0000000000..946047b3ee --- /dev/null +++ b/tests/property/candid_rpc/functional_api/nat32/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamNat32s: Named>[], + returnNat32: CandidValueAndMeta +): string { + const paramsAreNumbers = namedParamNat32s + .map((param) => { + return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; + }) + .join('\n'); + + const sum = namedParamNat32s.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnNat32.src.valueLiteral); + const count = namedParamNat32s.length + 1; + const average = `Math.floor((${sum}) / ${count})`; + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNat32s); + + return ` + ${paramsAreNumbers} + + ${paramsCorrectlyOrdered} + + return ${average}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/nat32/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/nat32/test/generate_tests.ts new file mode 100644 index 0000000000..cb3c408713 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/nat32/test/generate_tests.ts @@ -0,0 +1,35 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamNat32s: Named>[], + returnNat32: CandidValueAndMeta +): Test[][] { + const count = namedParamNat32s.length + 1; + const expectedResult = Math.floor( + namedParamNat32s.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnNat32.value.agentResponseValue + ) / count + ); + const paramValues = namedParamNat32s.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `nat32 ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/nat32/test/test.ts b/tests/property/candid_rpc/functional_api/nat32/test/test.ts new file mode 100644 index 0000000000..582f0720ee --- /dev/null +++ b/tests/property/candid_rpc/functional_api/nat32/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Nat32Arb } from 'azle/test/property/arbitraries/candid/primitive/nats/nat32_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllNat32sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Nat32Arb(context)), + Nat32Arb(context) +); + +const CanisterConfigArb = fc + .array(AllNat32sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/nat32/tsconfig.json b/tests/property/candid_rpc/functional_api/nat32/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat32/tsconfig.json rename to tests/property/candid_rpc/functional_api/nat32/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/nat64/dfx.json b/tests/property/candid_rpc/functional_api/nat64/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat64/dfx.json rename to tests/property/candid_rpc/functional_api/nat64/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/nat64/package-lock.json b/tests/property/candid_rpc/functional_api/nat64/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat64/package-lock.json rename to tests/property/candid_rpc/functional_api/nat64/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/nat64/package.json b/tests/property/candid_rpc/functional_api/nat64/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat64/package.json rename to tests/property/candid_rpc/functional_api/nat64/package.json diff --git a/tests/property/candid_rpc/functional_api/nat64/test/generate_body.ts b/tests/property/candid_rpc/functional_api/nat64/test/generate_body.ts new file mode 100644 index 0000000000..b14079001d --- /dev/null +++ b/tests/property/candid_rpc/functional_api/nat64/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamNat64s: Named>[], + returnNat64: CandidValueAndMeta +): string { + const paramsAreBigInts = namedParamNat64s + .map((param) => { + return `if (typeof ${param.name} !== 'bigint') throw new Error('${param.name} must be a bigint');`; + }) + .join('\n'); + + const sum = namedParamNat64s.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnNat64.src.valueLiteral); + const count = namedParamNat64s.length + 1; + const average = `(${sum}) / ${count}n`; + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNat64s); + + return ` + ${paramsAreBigInts} + + ${paramsCorrectlyOrdered} + + return ${average}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/nat64/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/nat64/test/generate_tests.ts new file mode 100644 index 0000000000..0c1b787e13 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/nat64/test/generate_tests.ts @@ -0,0 +1,34 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamNat64s: Named>[], + returnNat64: CandidValueAndMeta +): Test[][] { + const count = namedParamNat64s.length + 1; + const expectedResult = + namedParamNat64s.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnNat64.value.agentResponseValue + ) / BigInt(count); + const paramValues = namedParamNat64s.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `nat64 ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/nat64/test/test.ts b/tests/property/candid_rpc/functional_api/nat64/test/test.ts new file mode 100644 index 0000000000..7120659aed --- /dev/null +++ b/tests/property/candid_rpc/functional_api/nat64/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Nat64Arb } from 'azle/test/property/arbitraries/candid/primitive/nats/nat64_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllNat64sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Nat64Arb(context)), + Nat64Arb(context) +); + +const CanisterConfigArb = fc + .array(AllNat64sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/nat64/tsconfig.json b/tests/property/candid_rpc/functional_api/nat64/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat64/tsconfig.json rename to tests/property/candid_rpc/functional_api/nat64/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/nat8/dfx.json b/tests/property/candid_rpc/functional_api/nat8/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat8/dfx.json rename to tests/property/candid_rpc/functional_api/nat8/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/nat8/package-lock.json b/tests/property/candid_rpc/functional_api/nat8/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat8/package-lock.json rename to tests/property/candid_rpc/functional_api/nat8/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/nat8/package.json b/tests/property/candid_rpc/functional_api/nat8/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat8/package.json rename to tests/property/candid_rpc/functional_api/nat8/package.json diff --git a/tests/property/candid_rpc/functional_api/nat8/test/generate_body.ts b/tests/property/candid_rpc/functional_api/nat8/test/generate_body.ts new file mode 100644 index 0000000000..0c91a382d6 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/nat8/test/generate_body.ts @@ -0,0 +1,30 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamNat8s: Named>[], + returnNat8: CandidValueAndMeta +): string { + const paramsAreNumbers = namedParamNat8s + .map((param) => { + return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; + }) + .join('\n'); + + const sum = namedParamNat8s.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnNat8.src.valueLiteral); + const count = namedParamNat8s.length + 1; + const average = `Math.floor((${sum}) / ${count})`; + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNat8s); + + return ` + ${paramsAreNumbers} + + ${paramsCorrectlyOrdered} + + return ${average}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/nat8/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/nat8/test/generate_tests.ts new file mode 100644 index 0000000000..00b271b245 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/nat8/test/generate_tests.ts @@ -0,0 +1,35 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamNat8s: Named>[], + returnNat8: CandidValueAndMeta +): Test[][] { + const count = namedParamNat8s.length + 1; + const expectedResult = Math.floor( + namedParamNat8s.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnNat8.value.agentResponseValue + ) / count + ); + const paramValues = namedParamNat8s.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `nat8 ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/nat8/test/test.ts b/tests/property/candid_rpc/functional_api/nat8/test/test.ts new file mode 100644 index 0000000000..b46804a260 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/nat8/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { Nat8Arb } from 'azle/test/property/arbitraries/candid/primitive/nats/nat8_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllNat8sQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(Nat8Arb(context)), + Nat8Arb(context) +); + +const CanisterConfigArb = fc + .array(AllNat8sQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/nat8/tsconfig.json b/tests/property/candid_rpc/functional_api/nat8/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/nat8/tsconfig.json rename to tests/property/candid_rpc/functional_api/nat8/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/null/dfx.json b/tests/property/candid_rpc/functional_api/null/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/null/dfx.json rename to tests/property/candid_rpc/functional_api/null/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/null/package-lock.json b/tests/property/candid_rpc/functional_api/null/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/null/package-lock.json rename to tests/property/candid_rpc/functional_api/null/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/null/package.json b/tests/property/candid_rpc/functional_api/null/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/null/package.json rename to tests/property/candid_rpc/functional_api/null/package.json diff --git a/tests/property/candid_rpc/functional_api/null/test/generate_body.ts b/tests/property/candid_rpc/functional_api/null/test/generate_body.ts new file mode 100644 index 0000000000..4f492c6131 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/null/test/generate_body.ts @@ -0,0 +1,19 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; + +export function generateBody( + namedParamNulls: Named>[], + returnNull: CandidValueAndMeta +): string { + const areAllNull = namedParamNulls.reduce((acc, { name }) => { + return `${acc} && ${name} === null`; + }, 'true'); + + const allNullCheck = `if (!(${areAllNull})) throw new Error("Not all of the values were null")`; + + return ` + ${allNullCheck} + + return ${returnNull.src.valueLiteral}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/null/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/null/test/generate_tests.ts new file mode 100644 index 0000000000..b768bdc13a --- /dev/null +++ b/tests/property/candid_rpc/functional_api/null/test/generate_tests.ts @@ -0,0 +1,28 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamNulls: Named>[], + _returnNull: CandidValueAndMeta +): Test[][] { + return [ + [ + { + name: `test ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + ...namedParamNulls.map( + (param) => param.value.value.agentArgumentValue + ) + ); + + return testEquality(result, null); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/null/test/test.ts b/tests/property/candid_rpc/functional_api/null/test/test.ts new file mode 100644 index 0000000000..9636341b66 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/null/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { NullArb } from 'azle/test/property/arbitraries/candid/primitive/null'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllNullsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(NullArb(context)), + NullArb(context) +); + +const CanisterConfigArb = fc + .array(AllNullsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/null/tsconfig.json b/tests/property/candid_rpc/functional_api/null/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/null/tsconfig.json rename to tests/property/candid_rpc/functional_api/null/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/opt/dfx.json b/tests/property/candid_rpc/functional_api/opt/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/opt/dfx.json rename to tests/property/candid_rpc/functional_api/opt/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/opt/package-lock.json b/tests/property/candid_rpc/functional_api/opt/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/opt/package-lock.json rename to tests/property/candid_rpc/functional_api/opt/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/opt/package.json b/tests/property/candid_rpc/functional_api/opt/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/opt/package.json rename to tests/property/candid_rpc/functional_api/opt/package.json diff --git a/tests/property/candid_rpc/functional_api/opt/test/generate_body.ts b/tests/property/candid_rpc/functional_api/opt/test/generate_body.ts new file mode 100644 index 0000000000..81b132aab0 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/opt/test/generate_body.ts @@ -0,0 +1,32 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Opt } from 'azle/test/property/arbitraries/candid/constructed/opt_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamOpts: Named>[], + returnOpt: CandidValueAndMeta +): string { + const areParamsOpts = namedParamOpts + .map((param) => { + return `if (!${isParamOpt(param.name)}) throw new Error('${ + param.name + } must be an Opt');`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamOpts); + + const returnStatement = returnOpt.src.valueLiteral; + + return ` + ${areParamsOpts} + ${paramsCorrectlyOrdered} + + return ${returnStatement}; + `; +} + +function isParamOpt(paramName: string): string { + return `(${paramName}.Some !== undefined || ${paramName}.None !== undefined)`; +} diff --git a/tests/property/candid_rpc/functional_api/opt/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/opt/test/generate_tests.ts new file mode 100644 index 0000000000..8061de7166 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/opt/test/generate_tests.ts @@ -0,0 +1,31 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Opt } from 'azle/test/property/arbitraries/candid/constructed/opt_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamOpts: Named>[], + returnOpt: CandidValueAndMeta +): Test[][] { + const expectedResult = returnOpt.value.agentResponseValue; + + return [ + [ + { + name: `opt ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const params = namedParamOpts.map( + (param) => param.value.value.agentArgumentValue + ); + + const result = await actor[functionName](...params); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/opt/test/test.ts b/tests/property/candid_rpc/functional_api/opt/test/test.ts new file mode 100644 index 0000000000..edb1768d89 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/opt/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { OptArb } from 'azle/test/property/arbitraries/candid/constructed/opt_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllOptsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(OptArb(context)), + OptArb(context) +); + +const CanisterConfigArb = fc + .array(AllOptsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/opt/tsconfig.json b/tests/property/candid_rpc/functional_api/opt/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/opt/tsconfig.json rename to tests/property/candid_rpc/functional_api/opt/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/principal/dfx.json b/tests/property/candid_rpc/functional_api/principal/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/principal/dfx.json rename to tests/property/candid_rpc/functional_api/principal/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/principal/package-lock.json b/tests/property/candid_rpc/functional_api/principal/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/principal/package-lock.json rename to tests/property/candid_rpc/functional_api/principal/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/principal/package.json b/tests/property/candid_rpc/functional_api/principal/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/principal/package.json rename to tests/property/candid_rpc/functional_api/principal/package.json diff --git a/tests/property/candid_rpc/functional_api/principal/test/generate_body.ts b/tests/property/candid_rpc/functional_api/principal/test/generate_body.ts new file mode 100644 index 0000000000..a43d5e00c2 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/principal/test/generate_body.ts @@ -0,0 +1,31 @@ +import { Principal } from '@dfinity/principal'; +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamPrincipals: Named>[], + returnPrincipal: CandidValueAndMeta +): string { + const paramsArePrincipals = namedParamPrincipals + .map((param) => { + return `if (${param.name}._isPrincipal !== true) throw new Error('${param.name} must be a Principal');`; + }) + .join('\n'); + + const returnStatement = + namedParamPrincipals.length > 0 + ? namedParamPrincipals[0].name + : returnPrincipal.src.valueLiteral; + + const paramsCorrectlyOrdered = + areParamsCorrectlyOrdered(namedParamPrincipals); + + return ` + ${paramsArePrincipals} + + ${paramsCorrectlyOrdered} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/principal/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/principal/test/generate_tests.ts new file mode 100644 index 0000000000..fad105f8fb --- /dev/null +++ b/tests/property/candid_rpc/functional_api/principal/test/generate_tests.ts @@ -0,0 +1,33 @@ +import { Principal } from '@dfinity/principal'; +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamPrincipals: Named>[], + returnPrincipal: CandidValueAndMeta +): Test[][] { + const expectedResult = + namedParamPrincipals.length > 0 + ? namedParamPrincipals[0].value.value.agentResponseValue + : returnPrincipal.value.agentResponseValue; + + return [ + [ + { + name: `principal ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + const result = await actor[functionName]( + ...namedParamPrincipals.map( + (param) => param.value.value.agentArgumentValue + ) + ); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/principal/test/test.ts b/tests/property/candid_rpc/functional_api/principal/test/test.ts new file mode 100644 index 0000000000..cce2a5f3cb --- /dev/null +++ b/tests/property/candid_rpc/functional_api/principal/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { PrincipalArb } from 'azle/test/property/arbitraries/candid/reference/principal_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllPrincipalsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(PrincipalArb(context)), + PrincipalArb(context) +); + +const CanisterConfigArb = fc + .array(AllPrincipalsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/principal/tsconfig.json b/tests/property/candid_rpc/functional_api/principal/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/principal/tsconfig.json rename to tests/property/candid_rpc/functional_api/principal/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/record/dfx.json b/tests/property/candid_rpc/functional_api/record/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/record/dfx.json rename to tests/property/candid_rpc/functional_api/record/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/record/package-lock.json b/tests/property/candid_rpc/functional_api/record/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/record/package-lock.json rename to tests/property/candid_rpc/functional_api/record/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/record/package.json b/tests/property/candid_rpc/functional_api/record/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/record/package.json rename to tests/property/candid_rpc/functional_api/record/package.json diff --git a/tests/property/candid_rpc/functional_api/record/test/generate_body.ts b/tests/property/candid_rpc/functional_api/record/test/generate_body.ts new file mode 100644 index 0000000000..503fb61421 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/record/test/generate_body.ts @@ -0,0 +1,35 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Record } from 'azle/test/property/arbitraries/candid/constructed/record_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamRecords: Named>[], + returnRecord: CandidValueAndMeta +): string { + const paramsAreRecords = namedParamRecords + .map((param) => { + const fieldsCount = Object.keys( + param.value.value.agentArgumentValue + ).length; + + const paramIsObject = `typeof ${param.name} === 'object'`; + const paramHasCorrectNumberOfFields = `Object.keys(${param.name}).length === ${fieldsCount}`; + const throwError = `throw new Error('${param.name} must be a Record');`; + + return `if (!(${paramIsObject} && ${paramHasCorrectNumberOfFields})) ${throwError}`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamRecords); + + const returnStatement = returnRecord.src.valueLiteral; + + return ` + ${paramsAreRecords} + + ${paramsCorrectlyOrdered} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/record/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/record/test/generate_tests.ts new file mode 100644 index 0000000000..dbcbc2348a --- /dev/null +++ b/tests/property/candid_rpc/functional_api/record/test/generate_tests.ts @@ -0,0 +1,32 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Record } from 'azle/test/property/arbitraries/candid/constructed/record_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamRecords: Named>[], + returnRecord: CandidValueAndMeta +): Test[][] { + return [ + [ + { + name: `record ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + ...namedParamRecords.map( + (param) => param.value.value.agentArgumentValue + ) + ); + + return testEquality( + result, + returnRecord.value.agentResponseValue + ); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/record/test/test.ts b/tests/property/candid_rpc/functional_api/record/test/test.ts new file mode 100644 index 0000000000..c57abf1ad4 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/record/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { RecordArb } from 'azle/test/property/arbitraries/candid/constructed/record_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllRecordsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(RecordArb(context)), + RecordArb(context) +); + +const CanisterConfigArb = fc + .array(AllRecordsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/record/tsconfig.json b/tests/property/candid_rpc/functional_api/record/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/record/tsconfig.json rename to tests/property/candid_rpc/functional_api/record/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/recursive/dfx.json b/tests/property/candid_rpc/functional_api/recursive/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/recursive/dfx.json rename to tests/property/candid_rpc/functional_api/recursive/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/recursive/package-lock.json b/tests/property/candid_rpc/functional_api/recursive/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/recursive/package-lock.json rename to tests/property/candid_rpc/functional_api/recursive/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/recursive/package.json b/tests/property/candid_rpc/functional_api/recursive/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/recursive/package.json rename to tests/property/candid_rpc/functional_api/recursive/package.json diff --git a/tests/property/candid_rpc/functional_api/recursive/test/generate_body.ts b/tests/property/candid_rpc/functional_api/recursive/test/generate_body.ts new file mode 100644 index 0000000000..fc82049805 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/recursive/test/generate_body.ts @@ -0,0 +1,20 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Recursive } from 'azle/test/property/arbitraries/candid/recursive'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamRecursive: Named>[], + returnRecursive: CandidValueAndMeta +): string { + const paramsCorrectlyOrdered = + areParamsCorrectlyOrdered(namedParamRecursive); + + const returnStatement = returnRecursive.src.valueLiteral; + + return ` + ${paramsCorrectlyOrdered} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/recursive/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/recursive/test/generate_tests.ts new file mode 100644 index 0000000000..f051ae2125 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/recursive/test/generate_tests.ts @@ -0,0 +1,32 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Recursive } from 'azle/test/property/arbitraries/candid/recursive'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamRecursive: Named>[], + returnRecursive: CandidValueAndMeta +): Test[][] { + return [ + [ + { + name: `recursive ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const params = namedParamRecursive.map( + (param) => param.value.value.agentArgumentValue + ); + + const result = await actor[functionName](...params); + + return testEquality( + result, + returnRecursive.value.agentResponseValue + ); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/recursive/test/test.ts b/tests/property/candid_rpc/functional_api/recursive/test/test.ts new file mode 100644 index 0000000000..3f598f9e9b --- /dev/null +++ b/tests/property/candid_rpc/functional_api/recursive/test/test.ts @@ -0,0 +1,49 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { RecursiveArb } from 'azle/test/property/arbitraries/candid/recursive'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { UpdateMethodArb } from 'azle/test/property/arbitraries/canister_methods/update_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllRecursiveQueryMethodArb = fc.oneof( + QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(RecursiveArb(context)), + RecursiveArb(context) + ), + UpdateMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(RecursiveArb(context)), + RecursiveArb(context) + ) +); + +const CanisterConfigArb = fc + .array(AllRecursiveQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb), true); diff --git a/tests/property/candid_rpc/functional_syntax/recursive/tsconfig.json b/tests/property/candid_rpc/functional_api/recursive/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/recursive/tsconfig.json rename to tests/property/candid_rpc/functional_api/recursive/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/service/dfx.json b/tests/property/candid_rpc/functional_api/service/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/service/dfx.json rename to tests/property/candid_rpc/functional_api/service/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/service/package-lock.json b/tests/property/candid_rpc/functional_api/service/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/service/package-lock.json rename to tests/property/candid_rpc/functional_api/service/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/service/package.json b/tests/property/candid_rpc/functional_api/service/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/service/package.json rename to tests/property/candid_rpc/functional_api/service/package.json diff --git a/tests/property/candid_rpc/functional_api/service/test/generate_body.ts b/tests/property/candid_rpc/functional_api/service/test/generate_body.ts new file mode 100644 index 0000000000..bfc2501091 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/service/test/generate_body.ts @@ -0,0 +1,28 @@ +import { Principal } from '@dfinity/principal'; +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; + +export function generateBody( + namedParamServices: Named>[], + returnService: CandidValueAndMeta +): string { + const paramsAreServices = namedParamServices + .map((param) => { + const paramIsAService = `(${ + param.name + } as any).principal.toText() === "${param.value.value.agentArgumentValue.toText()}"`; + + const throwError = `throw new Error('${param.name} must be a Service');`; + + return `if (!(${paramIsAService})) ${throwError}`; + }) + .join('\n'); + + const returnStatement = returnService.src.valueLiteral; + + return ` + ${paramsAreServices} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/service/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/service/test/generate_tests.ts new file mode 100644 index 0000000000..f1e003ce6e --- /dev/null +++ b/tests/property/candid_rpc/functional_api/service/test/generate_tests.ts @@ -0,0 +1,42 @@ +import { Principal } from '@dfinity/principal'; +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import { execSync } from 'child_process'; + +export function generateTests( + functionName: string, + namedParamServices: Named>[], + returnService: CandidValueAndMeta +): Test[][] { + return [ + [ + { + name: `service ${functionName}`, + test: async (): Promise => { + // Using execSync because the JS Agent has a bug expecting services + // to be ordered by hash or something. + // See https://forum.dfinity.org/t/topic/20885/14 + + const paramsString = namedParamServices + .map( + (param) => + `service "${param.value.value.agentArgumentValue.toText()}"` + ) + .join(); + + const result = execSync( + `dfx canister call canister ${functionName} '(${paramsString})'` + ) + .toString() + .trim(); + + return testEquality( + result, + `(service "${returnService.value.agentArgumentValue.toText()}")` + ); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/service/test/test.ts b/tests/property/candid_rpc/functional_api/service/test/test.ts new file mode 100644 index 0000000000..b5a0470a08 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/service/test/test.ts @@ -0,0 +1,40 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { ServiceArb } from 'azle/test/property/arbitraries/candid/reference/service_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllServicesQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.uniqueArray(ServiceArb(context), { + selector: (entry) => entry.src.typeAnnotation + }), + ServiceArb(context) +); + +const CanisterConfigArb = fc + .array(AllServicesQueryMethodArb, { + ...defaultArrayConstraints, + maxLength: 30 // If the number of generated services is too large we will run out of space in the wasm custom section. + }) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/service/tsconfig.json b/tests/property/candid_rpc/functional_api/service/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/service/tsconfig.json rename to tests/property/candid_rpc/functional_api/service/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/dfx.json b/tests/property/candid_rpc/functional_api/stable_b_tree_map/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/stable_b_tree_map/dfx.json rename to tests/property/candid_rpc/functional_api/stable_b_tree_map/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/package-lock.json b/tests/property/candid_rpc/functional_api/stable_b_tree_map/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/stable_b_tree_map/package-lock.json rename to tests/property/candid_rpc/functional_api/stable_b_tree_map/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/package.json b/tests/property/candid_rpc/functional_api/stable_b_tree_map/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/stable_b_tree_map/package.json rename to tests/property/candid_rpc/functional_api/stable_b_tree_map/package.json diff --git a/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/contains_key.ts b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/contains_key.ts new file mode 100644 index 0000000000..b51178b4e8 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/contains_key.ts @@ -0,0 +1,96 @@ +import { getActor } from 'azle/test/property'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { StableBTreeMap } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { UniqueIdentifierArb } from 'azle/test/property/arbitraries/unique_identifier_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +export function ContainsKeyTestArb( + stableBTreeMap: StableBTreeMap +): fc.Arbitrary { + return fc + .tuple(UniqueIdentifierArb('canisterProperties')) + .map(([functionName]): QueryMethod => { + const imports = new Set([ + ...stableBTreeMap.imports, + 'bool', + 'query' + ]); + + const paramTypeObjects = [ + stableBTreeMap.keySample.src.typeObject + ].join(', '); + + const returnTypeObject = `bool`; + const body = generateBody(stableBTreeMap.name); + const tests = generateTests( + functionName, + stableBTreeMap.keySample.value.agentArgumentValue + ); + + return { + imports, + globalDeclarations: [], + sourceCode: `${functionName}: query([${paramTypeObjects}], ${returnTypeObject}, (param0) => { + ${body} + })`, + tests + }; + }); +} + +function generateBody(stableBTreeMapName: string): string { + return /*TS*/ ` + return ${stableBTreeMapName}.containsKey(param0); + `; +} + +function generateTests( + functionName: string, + keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'] +): Test[][] { + return [ + [ + { + name: `containsKey after first deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + keySampleAgentArgumentValue + ); + + return testEquality(result, true); + } + } + ], + [ + { + name: `containsKey after second deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + keySampleAgentArgumentValue + ); + + return testEquality(result, true); + } + } + ], + [ + { + name: `containsKey after third deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + keySampleAgentArgumentValue + ); + + return testEquality(result, false); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/get.ts b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/get.ts new file mode 100644 index 0000000000..5f8352db63 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/get.ts @@ -0,0 +1,116 @@ +import { getActor } from 'azle/test/property'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { StableBTreeMap } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { UniqueIdentifierArb } from 'azle/test/property/arbitraries/unique_identifier_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +export function GetTestArb( + stableBTreeMap: StableBTreeMap +): fc.Arbitrary { + return fc + .tuple(UniqueIdentifierArb('canisterProperties')) + .map(([functionName]): QueryMethod => { + const imports = new Set([ + ...stableBTreeMap.imports, + 'Opt', + 'query', + 'None', + 'Some' + ]); + + const paramTypeObjects = [ + stableBTreeMap.keySample.src.typeObject + ].join(', '); + + const returnTypeObject = `Opt(${stableBTreeMap.valueSample.src.typeObject})`; + const valueTypeIsNull = + stableBTreeMap.valueSample.src.typeAnnotation === 'Null'; + const body = generateBody(stableBTreeMap.name, valueTypeIsNull); + + const tests = generateTests( + functionName, + stableBTreeMap.keySample.value.agentArgumentValue, + stableBTreeMap.valueSample.value.agentArgumentValue + ); + + return { + imports, + globalDeclarations: [], + sourceCode: `${functionName}: query([${paramTypeObjects}], ${returnTypeObject}, (param0) => { + ${body} + })`, + tests + }; + }); +} + +function generateBody( + stableBTreeMapName: string, + valueTypeIsNull: boolean +): string { + return /*TS*/ ` + const result = ${stableBTreeMapName}.get(param0); + const containsKey = ${stableBTreeMapName}.containsKey(param0); // For situations where the stored value is literally null + if (result === null ${valueTypeIsNull ? '&& !containsKey' : ''}) { + return None + } else { + return Some(result) + } + `; +} + +function generateTests( + functionName: string, + keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'], + valueSampleAgentArgumentValue: StableBTreeMap['valueSample']['value']['agentArgumentValue'] +): Test[][] { + return [ + [ + { + name: `get after first deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + keySampleAgentArgumentValue + ); + + return testEquality(result, [ + valueSampleAgentArgumentValue + ]); + } + } + ], + [ + { + name: `get after second deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + keySampleAgentArgumentValue + ); + + return testEquality(result, [ + valueSampleAgentArgumentValue + ]); + } + } + ], + [ + { + name: `get after third deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + keySampleAgentArgumentValue + ); + + return testEquality(result, []); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/insert.ts b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/insert.ts new file mode 100644 index 0000000000..de593afbda --- /dev/null +++ b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/insert.ts @@ -0,0 +1,80 @@ +import { getActor } from 'azle/test/property'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { StableBTreeMap } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { UniqueIdentifierArb } from 'azle/test/property/arbitraries/unique_identifier_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +export function InsertTestArb( + stableBTreeMap: StableBTreeMap +): fc.Arbitrary { + return fc + .tuple(UniqueIdentifierArb('canisterProperties')) + .map(([functionName]): QueryMethod => { + const imports = new Set([ + ...stableBTreeMap.imports, + 'Opt', + 'update', + 'None', + 'Some' + ]); + + const paramTypeObjects = [ + stableBTreeMap.keySample.src.typeObject, + stableBTreeMap.valueSample.src.typeObject + ].join(', '); + + const returnTypeObject = `Opt(${stableBTreeMap.valueSample.src.typeObject})`; + const body = generateBody(stableBTreeMap.name); + + const tests = generateTests( + functionName, + stableBTreeMap.keySample.value.agentArgumentValue, + stableBTreeMap.valueSample.value.agentArgumentValue + ); + + return { + imports, + globalDeclarations: [], + sourceCode: `${functionName}: update([${paramTypeObjects}], ${returnTypeObject}, (param0, param1) => { + ${body} + })`, + tests + }; + }); +} + +function generateBody(stableBTreeMapName: string): string { + return /*TS*/ ` + const result = ${stableBTreeMapName}.insert(param0, param1); + if (result === null) { + return None + } else { + return Some(result) + } + `; +} + +function generateTests( + functionName: string, + keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'], + valueSampleAgentArgumentValue: StableBTreeMap['valueSample']['value']['agentArgumentValue'] +): Test[][] { + return [ + [ + { + name: `insert after first deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + keySampleAgentArgumentValue, + valueSampleAgentArgumentValue + ); + + return testEquality(result, []); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/is_empty.ts b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/is_empty.ts new file mode 100644 index 0000000000..91bea2690a --- /dev/null +++ b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/is_empty.ts @@ -0,0 +1,80 @@ +import { getActor } from 'azle/test/property'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { StableBTreeMap } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { UniqueIdentifierArb } from 'azle/test/property/arbitraries/unique_identifier_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +export function IsEmptyTestArb( + stableBTreeMap: StableBTreeMap +): fc.Arbitrary { + return fc + .tuple(UniqueIdentifierArb('canisterProperties')) + .map(([functionName]): QueryMethod => { + const imports = new Set([ + ...stableBTreeMap.imports, + 'bool', + 'query' + ]); + + const body = generateBody(stableBTreeMap.name); + + const tests = generateTests(functionName); + + return { + imports, + globalDeclarations: [], + sourceCode: `${functionName}: query([], bool, () => { + ${body} + })`, + tests + }; + }); +} + +function generateBody(stableBTreeMapName: string): string { + return ` + return ${stableBTreeMapName}.isEmpty(); + `; +} + +function generateTests(functionName: string): Test[][] { + return [ + [ + { + name: `isEmpty after first deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality(result, true); + } + } + ], + [ + { + name: `isEmpty after second deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality(result, false); + } + } + ], + [ + { + name: `isEmpty after third deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality(result, true); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/items.ts b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/items.ts new file mode 100644 index 0000000000..d2d123801a --- /dev/null +++ b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/items.ts @@ -0,0 +1,100 @@ +import { getActor } from 'azle/test/property'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { StableBTreeMap } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { UniqueIdentifierArb } from 'azle/test/property/arbitraries/unique_identifier_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +export function ItemsTestArb( + stableBTreeMap: StableBTreeMap +): fc.Arbitrary { + return fc + .tuple(UniqueIdentifierArb('canisterProperties')) + .map(([functionName]): QueryMethod => { + const imports = new Set([ + ...stableBTreeMap.imports, + 'Vec', + 'Tuple', + 'query' + ]); + + const returnTypeObject = `Vec(Tuple(${stableBTreeMap.keySample.src.typeObject}, ${stableBTreeMap.valueSample.src.typeObject}))`; + const body = generateBody(stableBTreeMap.name); + + const tests = generateTests( + functionName, + stableBTreeMap.keySample.value.agentArgumentValue, + stableBTreeMap.valueSample.value.agentArgumentValue + ); + + return { + imports, + globalDeclarations: [], + sourceCode: `${functionName}: query([], ${returnTypeObject}, () => { + ${body} + })`, + tests + }; + }); +} + +function generateBody(stableBTreeMapName: string): string { + return ` + return ${stableBTreeMapName}.items(); + `; +} + +function generateTests( + functionName: string, + keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'], + valueSampleAgentArgumentValue: StableBTreeMap['valueSample']['value']['agentArgumentValue'] +): Test[][] { + return [ + [ + { + name: `items after first deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality(result, [ + [ + keySampleAgentArgumentValue, + valueSampleAgentArgumentValue + ] + ]); + } + } + ], + [ + { + name: `items after second deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality(result, [ + [ + keySampleAgentArgumentValue, + valueSampleAgentArgumentValue + ] + ]); + } + } + ], + [ + { + name: `items after third deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality(result, []); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/keys.ts b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/keys.ts new file mode 100644 index 0000000000..b64008bda4 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/keys.ts @@ -0,0 +1,115 @@ +import { getActor } from 'azle/test/property'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { StableBTreeMap } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { UniqueIdentifierArb } from 'azle/test/property/arbitraries/unique_identifier_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +import { getArrayForCandidType, getArrayStringForCandidType } from './utils'; + +export function KeysTestArb( + stableBTreeMap: StableBTreeMap +): fc.Arbitrary { + return fc + .tuple(UniqueIdentifierArb('canisterProperties')) + .map(([functionName]): QueryMethod => { + const imports = new Set([ + ...stableBTreeMap.imports, + 'Vec', + 'query' + ]); + + const returnTypeObject = `Vec(${stableBTreeMap.keySample.src.typeObject})`; + const body = generateBody( + stableBTreeMap.name, + stableBTreeMap.keySample.src.typeAnnotation + ); + + const tests = generateTests(functionName, stableBTreeMap.keySample); + + return { + imports, + globalDeclarations: [], + sourceCode: `${functionName}: query([], ${returnTypeObject}, () => { + ${body} + })`, + tests + }; + }); +} + +function generateBody( + stableBTreeMapName: string, + stableBTreeMapKeyCandidTypeAnnotation: string +): string { + return ` + return ${getArrayStringForCandidType( + stableBTreeMapKeyCandidTypeAnnotation + )}(${stableBTreeMapName}.keys()); + `; +} + +function generateTests( + functionName: string, + keySample: StableBTreeMap['keySample'] +): Test[][] { + return [ + [ + { + name: `keys after first deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality( + getArrayForCandidType( + keySample.src.typeAnnotation + ).from(result), + getArrayForCandidType( + keySample.src.typeAnnotation + ).from([keySample.value.agentArgumentValue]) + ); + } + } + ], + [ + { + name: `keys after second deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality( + getArrayForCandidType( + keySample.src.typeAnnotation + ).from(result), + getArrayForCandidType( + keySample.src.typeAnnotation + ).from([keySample.value.agentArgumentValue]) + ); + } + } + ], + [ + { + name: `keys after third deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality( + getArrayForCandidType( + keySample.src.typeAnnotation + ).from(result), + getArrayForCandidType( + keySample.src.typeAnnotation + ).from([]) + ); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/len.ts b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/len.ts new file mode 100644 index 0000000000..c6046ee4bb --- /dev/null +++ b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/len.ts @@ -0,0 +1,81 @@ +import { getActor } from 'azle/test/property'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { StableBTreeMap } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { UniqueIdentifierArb } from 'azle/test/property/arbitraries/unique_identifier_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +export function LenTestArb( + stableBTreeMap: StableBTreeMap +): fc.Arbitrary { + return fc + .tuple(UniqueIdentifierArb('canisterProperties')) + .map(([functionName]): QueryMethod => { + const imports = new Set([ + ...stableBTreeMap.imports, + 'nat64', + 'query' + ]); + + const returnTypeObject = `nat64`; + const body = generateBody(stableBTreeMap.name); + + const tests = generateTests(functionName); + + return { + imports, + globalDeclarations: [], + sourceCode: `${functionName}: query([], ${returnTypeObject}, () => { + ${body} + })`, + tests + }; + }); +} + +function generateBody(stableBTreeMapName: string): string { + return ` + return ${stableBTreeMapName}.len(); + `; +} + +function generateTests(functionName: string): Test[][] { + return [ + [ + { + name: `len after first deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality(result, 1n); + } + } + ], + [ + { + name: `len after second deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality(result, 1n); + } + } + ], + [ + { + name: `len after third deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality(result, 0n); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/remove.ts b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/remove.ts new file mode 100644 index 0000000000..2101a2194f --- /dev/null +++ b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/remove.ts @@ -0,0 +1,87 @@ +import { getActor } from 'azle/test/property'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { StableBTreeMap } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { UniqueIdentifierArb } from 'azle/test/property/arbitraries/unique_identifier_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +export function RemoveTestArb( + stableBTreeMap: StableBTreeMap +): fc.Arbitrary { + return fc + .tuple(UniqueIdentifierArb('canisterProperties')) + .map(([functionName]): QueryMethod => { + const imports = new Set([ + ...stableBTreeMap.imports, + 'Opt', + 'update', + 'None', + 'Some' + ]); + + const paramTypeObjects = [ + stableBTreeMap.keySample.src.typeObject + ].join(', '); + + const returnTypeObject = `Opt(${stableBTreeMap.valueSample.src.typeObject})`; + const valueTypeIsNull = + stableBTreeMap.valueSample.src.typeAnnotation === 'Null'; + const body = generateBody(stableBTreeMap.name, valueTypeIsNull); + + const tests = generateTests( + functionName, + stableBTreeMap.keySample.value.agentArgumentValue, + stableBTreeMap.valueSample.value.agentArgumentValue + ); + + return { + imports, + globalDeclarations: [], + sourceCode: `${functionName}: update([${paramTypeObjects}], ${returnTypeObject}, (param0) => { + ${body} + })`, + tests + }; + }); +} + +function generateBody( + stableBTreeMapName: string, + valueTypeIsNull: boolean +): string { + return /*TS*/ ` + const containsKey = ${stableBTreeMapName}.containsKey(param0); // For situations where the stored value is literally null + const result = ${stableBTreeMapName}.remove(param0); + if (result === null ${valueTypeIsNull ? '&& !containsKey' : ''}) { + return None + } else { + return Some(result) + } + `; +} + +function generateTests( + functionName: string, + keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'], + valueSampleAgentArgumentValue: StableBTreeMap['valueSample']['value']['agentArgumentValue'] +): Test[][] { + return [ + [], + [ + { + name: `remove after second deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + keySampleAgentArgumentValue + ); + + return testEquality(result, [ + valueSampleAgentArgumentValue + ]); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/test.ts b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/test.ts new file mode 100644 index 0000000000..19951ca3cf --- /dev/null +++ b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/test.ts @@ -0,0 +1,97 @@ +import { runPropTests } from 'azle/test/property'; +import { CanisterArb } from 'azle/test/property/arbitraries/canister_arb'; +import { StableBTreeMapArb } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { Context } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { ContainsKeyTestArb } from './contains_key'; +import { GetTestArb } from './get'; +import { InsertTestArb } from './insert'; +import { IsEmptyTestArb } from './is_empty'; +import { ItemsTestArb } from './items'; +import { KeysTestArb } from './keys'; +import { LenTestArb } from './len'; +import { RemoveTestArb } from './remove'; +import { ValuesTestArb } from './values'; + +const context: Context = { api: 'functional', constraints: {} }; + +// TODO change this to context + +const StableBTreeMapTestArb = fc + .array( + StableBTreeMapArb(context).chain((stableBTreeMap) => { + return fc + .tuple( + IsEmptyTestArb(stableBTreeMap), + InsertTestArb(stableBTreeMap), + ContainsKeyTestArb(stableBTreeMap), + GetTestArb(stableBTreeMap), + ItemsTestArb(stableBTreeMap), + KeysTestArb(stableBTreeMap), + LenTestArb(stableBTreeMap), + ValuesTestArb(stableBTreeMap), + RemoveTestArb(stableBTreeMap) + ) + .map( + ([ + isEmptyTestQueryMethod, + insertTestQueryMethod, + containsKeyTestQueryMethod, + getTestQueryMethod, + itemsTestQueryMethod, + keysTestQueryMethod, + lenTestQueryMethod, + valuesTestQueryMethod, + removeTestQueryMethod + ]) => { + return { + globalDeclarations: [ + ...stableBTreeMap.keySample.src + .variableAliasDeclarations, + ...stableBTreeMap.valueSample.src + .variableAliasDeclarations, + stableBTreeMap.definition + ], + queryMethods: [], + updateMethods: [ + isEmptyTestQueryMethod, + insertTestQueryMethod, + containsKeyTestQueryMethod, + getTestQueryMethod, + itemsTestQueryMethod, + keysTestQueryMethod, + lenTestQueryMethod, + valuesTestQueryMethod, + removeTestQueryMethod + ] + }; + } + ); + }), + { + minLength: 10, + maxLength: 30 + } + ) + .map((canisterConfigs) => { + const globalDeclarations = canisterConfigs.flatMap( + (canisterConfig) => canisterConfig.globalDeclarations + ); + + const queryMethods = canisterConfigs.flatMap( + (canisterConfig) => canisterConfig.queryMethods + ); + + const updateMethods = canisterConfigs.flatMap( + (canisterConfig) => canisterConfig.updateMethods + ); + + return { + globalDeclarations, + queryMethods, + updateMethods + }; + }); + +runPropTests(CanisterArb(context, StableBTreeMapTestArb)); diff --git a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/utils.ts b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/utils.ts similarity index 100% rename from tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/utils.ts rename to tests/property/candid_rpc/functional_api/stable_b_tree_map/test/utils.ts diff --git a/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/values.ts b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/values.ts new file mode 100644 index 0000000000..05700543f1 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/stable_b_tree_map/test/values.ts @@ -0,0 +1,118 @@ +import { getActor } from 'azle/test/property'; +import { QueryMethod } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { StableBTreeMap } from 'azle/test/property/arbitraries/stable_b_tree_map_arb'; +import { UniqueIdentifierArb } from 'azle/test/property/arbitraries/unique_identifier_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; +import fc from 'fast-check'; + +import { getArrayForCandidType, getArrayStringForCandidType } from './utils'; + +export function ValuesTestArb( + stableBTreeMap: StableBTreeMap +): fc.Arbitrary { + return fc + .tuple(UniqueIdentifierArb('canisterProperties')) + .map(([functionName]): QueryMethod => { + const imports = new Set([ + ...stableBTreeMap.imports, + 'Vec', + 'query' + ]); + + const returnTypeObject = `Vec(${stableBTreeMap.valueSample.src.typeObject})`; + const body = generateBody( + stableBTreeMap.name, + stableBTreeMap.valueSample.src.typeAnnotation + ); + + const tests = generateTests( + functionName, + stableBTreeMap.valueSample + ); + + return { + imports, + globalDeclarations: [], + sourceCode: `${functionName}: query([], ${returnTypeObject}, () => { + ${body} + })`, + tests + }; + }); +} + +function generateBody( + stableBTreeMapName: string, + stableBTreeMapValueCandidTypeAnnotation: string +): string { + return ` + return ${getArrayStringForCandidType( + stableBTreeMapValueCandidTypeAnnotation + )}(${stableBTreeMapName}.values()); + `; +} + +function generateTests( + functionName: string, + valueSample: StableBTreeMap['valueSample'] +): Test[][] { + return [ + [ + { + name: `values after first deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality( + getArrayForCandidType( + valueSample.src.typeAnnotation + ).from(result), + getArrayForCandidType( + valueSample.src.typeAnnotation + ).from([valueSample.value.agentArgumentValue]) + ); + } + } + ], + [ + { + name: `values after second deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality( + getArrayForCandidType( + valueSample.src.typeAnnotation + ).from(result), + getArrayForCandidType( + valueSample.src.typeAnnotation + ).from([valueSample.value.agentArgumentValue]) + ); + } + } + ], + [ + { + name: `values after third deploy ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](); + + return testEquality( + getArrayForCandidType( + valueSample.src.typeAnnotation + ).from(result), + getArrayForCandidType( + valueSample.src.typeAnnotation + ).from([]) + ); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/tsconfig.json b/tests/property/candid_rpc/functional_api/stable_b_tree_map/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/stable_b_tree_map/tsconfig.json rename to tests/property/candid_rpc/functional_api/stable_b_tree_map/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/text/dfx.json b/tests/property/candid_rpc/functional_api/text/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/text/dfx.json rename to tests/property/candid_rpc/functional_api/text/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/text/package-lock.json b/tests/property/candid_rpc/functional_api/text/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/text/package-lock.json rename to tests/property/candid_rpc/functional_api/text/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/text/package.json b/tests/property/candid_rpc/functional_api/text/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/text/package.json rename to tests/property/candid_rpc/functional_api/text/package.json diff --git a/tests/property/candid_rpc/functional_api/text/test/generate_body.ts b/tests/property/candid_rpc/functional_api/text/test/generate_body.ts new file mode 100644 index 0000000000..12eb7385e2 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/text/test/generate_body.ts @@ -0,0 +1,28 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamTexts: Named>[], + returnText: CandidValueAndMeta +): string { + const paramsAreStrings = namedParamTexts + .map((param) => { + return `if (typeof ${param.name} !== 'string') throw new Error('${param.name} must be a string');`; + }) + .join('\n'); + + const returnStatement = namedParamTexts.reduce((acc, { name }) => { + return `${acc} + ${name}`; + }, returnText.src.valueLiteral); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamTexts); + + return ` + ${paramsAreStrings} + + ${paramsCorrectlyOrdered} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/text/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/text/test/generate_tests.ts new file mode 100644 index 0000000000..864fad0251 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/text/test/generate_tests.ts @@ -0,0 +1,32 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamTexts: Named>[], + returnTexts: CandidValueAndMeta +): Test[][] { + const expectedResult = namedParamTexts.reduce( + (acc, param) => acc + param.value.value.agentResponseValue, + returnTexts.value.agentResponseValue + ); + const paramValues = namedParamTexts.map( + (param) => param.value.value.agentArgumentValue + ); + + return [ + [ + { + name: `text ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName](...paramValues); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/text/test/test.ts b/tests/property/candid_rpc/functional_api/text/test/test.ts new file mode 100644 index 0000000000..74c2d8ec5e --- /dev/null +++ b/tests/property/candid_rpc/functional_api/text/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { TextArb } from 'azle/test/property/arbitraries/candid/primitive/text'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllTextsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(TextArb(context)), + TextArb(context) +); + +const CanisterConfigArb = fc + .array(AllTextsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/text/tsconfig.json b/tests/property/candid_rpc/functional_api/text/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/text/tsconfig.json rename to tests/property/candid_rpc/functional_api/text/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/tuple/dfx.json b/tests/property/candid_rpc/functional_api/tuple/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/tuple/dfx.json rename to tests/property/candid_rpc/functional_api/tuple/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/tuple/package-lock.json b/tests/property/candid_rpc/functional_api/tuple/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/tuple/package-lock.json rename to tests/property/candid_rpc/functional_api/tuple/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/tuple/package.json b/tests/property/candid_rpc/functional_api/tuple/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/tuple/package.json rename to tests/property/candid_rpc/functional_api/tuple/package.json diff --git a/tests/property/candid_rpc/functional_api/tuple/test/generate_body.ts b/tests/property/candid_rpc/functional_api/tuple/test/generate_body.ts new file mode 100644 index 0000000000..9d15797453 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/tuple/test/generate_body.ts @@ -0,0 +1,36 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { + ReturnTuple, + Tuple +} from 'azle/test/property/arbitraries/candid/constructed/tuple_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamTuples: Named>[], + returnTuple: CandidValueAndMeta +): string { + const paramsAreTuples = namedParamTuples + .map((param) => { + const fieldsCount = param.value.value.agentArgumentValue.length; + + const paramIsArray = `Array.isArray(${param.name})`; + const paramHasCorrectNumberOfFields = `${param.name}.length === ${fieldsCount}`; + const throwError = `throw new Error('${param.name} must be a Tuple');`; + + return `if (!(${paramIsArray} && ${paramHasCorrectNumberOfFields})) ${throwError}`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamTuples); + + const returnStatement = returnTuple.src.valueLiteral; + + return ` + ${paramsAreTuples} + + ${paramsCorrectlyOrdered} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/tuple/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/tuple/test/generate_tests.ts new file mode 100644 index 0000000000..387be4ae21 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/tuple/test/generate_tests.ts @@ -0,0 +1,34 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { + ReturnTuple, + Tuple +} from 'azle/test/property/arbitraries/candid/constructed/tuple_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamTuples: Named>[], + returnTuple: CandidValueAndMeta +): Test[][] { + const expectedResult = returnTuple.value.agentResponseValue; + + return [ + [ + { + name: `tuple ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + ...namedParamTuples.map( + (param) => param.value.value.agentArgumentValue + ) + ); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/tuple/test/test.ts b/tests/property/candid_rpc/functional_api/tuple/test/test.ts new file mode 100644 index 0000000000..42bca543ba --- /dev/null +++ b/tests/property/candid_rpc/functional_api/tuple/test/test.ts @@ -0,0 +1,37 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { TupleArb } from 'azle/test/property/arbitraries/candid/constructed/tuple_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllTuplesQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.uniqueArray(TupleArb(context), { + selector: (entry) => entry.src.typeAnnotation + }), + TupleArb(context) +); + +const CanisterConfigArb = fc + .array(AllTuplesQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/tuple/tsconfig.json b/tests/property/candid_rpc/functional_api/tuple/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/tuple/tsconfig.json rename to tests/property/candid_rpc/functional_api/tuple/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/variant/dfx.json b/tests/property/candid_rpc/functional_api/variant/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/variant/dfx.json rename to tests/property/candid_rpc/functional_api/variant/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/variant/package-lock.json b/tests/property/candid_rpc/functional_api/variant/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/variant/package-lock.json rename to tests/property/candid_rpc/functional_api/variant/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/variant/package.json b/tests/property/candid_rpc/functional_api/variant/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/variant/package.json rename to tests/property/candid_rpc/functional_api/variant/package.json diff --git a/tests/property/candid_rpc/functional_api/variant/test/generate_body.ts b/tests/property/candid_rpc/functional_api/variant/test/generate_body.ts new file mode 100644 index 0000000000..74c5ff75b8 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/variant/test/generate_body.ts @@ -0,0 +1,28 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Variant } from 'azle/test/property/arbitraries/candid/constructed/variant_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamVariants: Named>[], + returnVariant: CandidValueAndMeta +): string { + const paramsAreVariants = namedParamVariants + .map((param) => { + return `if (typeof ${param.name} !== 'object' || Object.keys(${param.name}).length !== 1) throw new Error('${param.name} must be a Variant');`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = + areParamsCorrectlyOrdered(namedParamVariants); + + const returnStatement = returnVariant.src.valueLiteral; + + return ` + ${paramsCorrectlyOrdered} + + ${paramsAreVariants} + + return ${returnStatement}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/variant/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/variant/test/generate_tests.ts new file mode 100644 index 0000000000..540ee8ead8 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/variant/test/generate_tests.ts @@ -0,0 +1,31 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { Variant } from 'azle/test/property/arbitraries/candid/constructed/variant_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamVariants: Named>[], + returnVariant: CandidValueAndMeta +): Test[][] { + const expectedResult = returnVariant.value.agentResponseValue; + + return [ + [ + { + name: `variant ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const result = await actor[functionName]( + ...namedParamVariants.map( + (param) => param.value.value.agentArgumentValue + ) + ); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/variant/test/test.ts b/tests/property/candid_rpc/functional_api/variant/test/test.ts new file mode 100644 index 0000000000..ea758d638a --- /dev/null +++ b/tests/property/candid_rpc/functional_api/variant/test/test.ts @@ -0,0 +1,37 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { VariantArb } from 'azle/test/property/arbitraries/candid/constructed/variant_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllVariantsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.uniqueArray(VariantArb(context), { + selector: (entry) => entry.src.typeAnnotation + }), + VariantArb(context) +); + +const CanisterConfigArb = fc + .array(AllVariantsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/variant/tsconfig.json b/tests/property/candid_rpc/functional_api/variant/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/variant/tsconfig.json rename to tests/property/candid_rpc/functional_api/variant/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/vec/dfx.json b/tests/property/candid_rpc/functional_api/vec/dfx.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/vec/dfx.json rename to tests/property/candid_rpc/functional_api/vec/dfx.json diff --git a/tests/property/candid_rpc/functional_syntax/vec/package-lock.json b/tests/property/candid_rpc/functional_api/vec/package-lock.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/vec/package-lock.json rename to tests/property/candid_rpc/functional_api/vec/package-lock.json diff --git a/tests/property/candid_rpc/functional_syntax/vec/package.json b/tests/property/candid_rpc/functional_api/vec/package.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/vec/package.json rename to tests/property/candid_rpc/functional_api/vec/package.json diff --git a/tests/property/candid_rpc/functional_api/vec/test/generate_body.ts b/tests/property/candid_rpc/functional_api/vec/test/generate_body.ts new file mode 100644 index 0000000000..512c4d1b63 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/vec/test/generate_body.ts @@ -0,0 +1,26 @@ +import { Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { areParamsCorrectlyOrdered } from 'azle/test/property/are_params_correctly_ordered'; + +export function generateBody( + namedParamVecs: Named>[], + returnVec: CandidValueAndMeta +): string { + const paramsAreArrays = namedParamVecs + .map((param) => { + return `if (!Array.isArray(${param.name}) && !ArrayBuffer.isView(${param.name})) throw new Error('${param.name} must be an array');`; + }) + .join('\n'); + + const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamVecs); + + const returnValue = returnVec.src.valueLiteral; + + return ` + ${paramsAreArrays} + + ${paramsCorrectlyOrdered} + + return ${returnValue}; + `; +} diff --git a/tests/property/candid_rpc/functional_api/vec/test/generate_tests.ts b/tests/property/candid_rpc/functional_api/vec/test/generate_tests.ts new file mode 100644 index 0000000000..682face3fd --- /dev/null +++ b/tests/property/candid_rpc/functional_api/vec/test/generate_tests.ts @@ -0,0 +1,29 @@ +import { getActor, Named } from 'azle/test/property'; +import { CandidValueAndMeta } from 'azle/test/property/arbitraries/candid/candid_value_and_meta_arb'; +import { AzleResult, Test, testEquality } from 'azle/test/property/test'; + +export function generateTests( + functionName: string, + namedParamVecs: Named>[], + returnVec: CandidValueAndMeta +): Test[][] { + const expectedResult = returnVec.value.agentResponseValue; + + return [ + [ + { + name: `vec ${functionName}`, + test: async (): Promise => { + const actor = getActor(__dirname); + + const params = namedParamVecs.map( + (param) => param.value.value.agentArgumentValue + ); + const result = await actor[functionName](...params); + + return testEquality(result, expectedResult); + } + } + ] + ]; +} diff --git a/tests/property/candid_rpc/functional_api/vec/test/test.ts b/tests/property/candid_rpc/functional_api/vec/test/test.ts new file mode 100644 index 0000000000..c6288e00a6 --- /dev/null +++ b/tests/property/candid_rpc/functional_api/vec/test/test.ts @@ -0,0 +1,35 @@ +import { defaultArrayConstraints, runPropTests } from 'azle/test/property'; +import { VecArb } from 'azle/test/property/arbitraries/candid/constructed/vec_arb'; +import { + CanisterArb, + CanisterConfig +} from 'azle/test/property/arbitraries/canister_arb'; +import { QueryMethodArb } from 'azle/test/property/arbitraries/canister_methods/query_method_arb'; +import { Api } from 'azle/test/property/arbitraries/types'; +import fc from 'fast-check'; + +import { generateBody } from './generate_body'; +import { generateTests } from './generate_tests'; + +const api: Api = 'functional'; +const context = { api, constraints: {} }; + +const AllVecsQueryMethodArb = QueryMethodArb( + { + api, + constraints: { + generateBody, + generateTests + } + }, + fc.array(VecArb(context)), + VecArb(context) +); + +const CanisterConfigArb = fc + .array(AllVecsQueryMethodArb, defaultArrayConstraints) + .map((queryMethods): CanisterConfig => { + return { queryMethods }; + }); + +runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/vec/tsconfig.json b/tests/property/candid_rpc/functional_api/vec/tsconfig.json similarity index 100% rename from tests/property/candid_rpc/functional_syntax/vec/tsconfig.json rename to tests/property/candid_rpc/functional_api/vec/tsconfig.json diff --git a/tests/property/candid_rpc/functional_syntax/blob/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/blob/test/generate_body.ts deleted file mode 100644 index a4b13c01e7..0000000000 --- a/tests/property/candid_rpc/functional_syntax/blob/test/generate_body.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamBlobs: Named>[], - returnBlob: CandidValueAndMeta -): string { - // TODO these checks should be much more precise probably, imagine checking the elements inside of the arrays - const paramsAreUint8Arrays = namedParamBlobs - .map((param) => { - return `if (!(${param.name} instanceof Uint8Array)) throw new Error('${param.name} must be a Uint8Array');`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamBlobs); - - const returnValue = returnBlob.value.agentArgumentValue; - - const returnStatement = `Uint8Array.from([${[...returnValue]} ${ - returnValue.length > 0 ? ',' : '' - } ${namedParamBlobs.map((param) => `...${param.name}`).join(', ')}])`; - - return ` - ${paramsAreUint8Arrays} - - ${paramsCorrectlyOrdered} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/blob/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/blob/test/generate_tests.ts deleted file mode 100644 index 7a40235d34..0000000000 --- a/tests/property/candid_rpc/functional_syntax/blob/test/generate_tests.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - paramBlobs: Named>[], - returnBlob: CandidValueAndMeta -): Test[][] { - const expectedResult = Uint8Array.from( - paramBlobs - .map((blob) => blob.value.value.agentResponseValue) - .reduce( - (acc, blob) => [...acc, ...blob], - [...returnBlob.value.agentResponseValue] - ) - ); - - return [ - [ - { - name: `blob ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - ...paramBlobs.map( - (blob) => blob.value.value.agentArgumentValue - ) - ); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/blob/test/test.ts b/tests/property/candid_rpc/functional_syntax/blob/test/test.ts deleted file mode 100644 index 324acadf41..0000000000 --- a/tests/property/candid_rpc/functional_syntax/blob/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { BlobArb } from 'azle/property_tests/arbitraries/candid/constructed/blob_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllBlobsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(BlobArb(context)), - BlobArb(context) -); - -const CanisterConfigArb = fc - .array(AllBlobsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/bool/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/bool/test/generate_body.ts deleted file mode 100644 index 563aed3275..0000000000 --- a/tests/property/candid_rpc/functional_syntax/bool/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamBools: Named>[], - returnBool: CandidValueAndMeta -): string { - // TODO do we want to encapsulate 'boolean' in the CandidArb? Like an agentType instead of a candidType, like azleValue and agentValue? - // TODO or will this not matter anymore once we start using a deep equal library - const paramsAreBooleans = namedParamBools - .map((param) => { - return `if (typeof ${param.name} !== 'boolean') throw new Error('${param.name} must be a boolean');`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamBools); - - const returnStatement = namedParamBools.reduce((acc, { name }) => { - return `${acc} && ${name}`; - }, returnBool.src.valueLiteral); - - return ` - ${paramsAreBooleans} - - ${paramsCorrectlyOrdered} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/bool/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/bool/test/generate_tests.ts deleted file mode 100644 index a91e7cc3b6..0000000000 --- a/tests/property/candid_rpc/functional_syntax/bool/test/generate_tests.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamBools: Named>[], - returnBool: CandidValueAndMeta -): Test[][] { - const expectedResult = namedParamBools.reduce( - (acc, param) => acc && param.value.value.agentResponseValue, - returnBool.value.agentResponseValue - ); - const paramValues = namedParamBools.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `bool ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/bool/test/test.ts b/tests/property/candid_rpc/functional_syntax/bool/test/test.ts deleted file mode 100644 index 226dd82290..0000000000 --- a/tests/property/candid_rpc/functional_syntax/bool/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { BoolArb } from 'azle/property_tests/arbitraries/candid/primitive/bool'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllBoolsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(BoolArb(context)), - BoolArb(context) -); - -const CanisterConfigArb = fc - .array(AllBoolsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/http_request/test/generate_body.ts deleted file mode 100644 index b18e3df773..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request/test/generate_body.ts +++ /dev/null @@ -1,137 +0,0 @@ -import { HttpRequest } from 'azle/experimental'; -import { Named } from 'azle/property_tests'; -import { CandidReturnType } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; - -export function generateBody( - namedParams: Named>[], - returnType: CandidValueAndMeta -): string { - const { name: requestParamName, value: requestValueObject } = - namedParams[0]; - const request = requestValueObject.value.agentArgumentValue; - - const httpMethodCheck = generateHttpMethodCheck( - request.method, - requestParamName - ); - const urlCheck = generateUrlCheck(request.url, requestParamName); - const headersMap = generateHeadersMap(request.headers, requestParamName); - const headerChecks = generateHeaderChecks(request.headers); - const bodyCheck = generateBodyCheck(request.body, requestParamName); - - return ` - // Body check has to happen before method check or else type checks might fail - ${bodyCheck} - ${httpMethodCheck} - ${urlCheck} - ${headersMap} - ${headerChecks} - - return ${returnType.src.valueLiteral}; - `; -} - -function generateHttpMethodCheck( - method: string, - requestParamName: string -): string { - return ` - if (${requestParamName}.method !== '${method}') { - throw new Error( - \`Unexpected req.method. Expected ${method} but received \${${requestParamName}.method}\` - ); - } - `; -} - -function generateUrlCheck(url: string, requestParamName: string): string { - return ` - if (decodeURIComponent(${requestParamName}.url) !== decodeURIComponent('${escape( - url - )}')) { - throw new Error( - \`Unexpected req.url. Expected '${escape( - url - )}' but received \${${requestParamName}.url}\` - ); - } - `; -} - -function generateHeadersMap( - headers: [string, string][], - requestParamName: string -): string { - return headers.length === 0 - ? '' - : ` - const headers = (${requestParamName}.headers as [string, string][]).reduce<{ - [key: string]: string} - >((prev, [name, value]) => ({[name]: value, ...prev}), {}); - `; -} - -function generateHeaderChecks(headers: [string, string][]): string { - return headers - .map(([name, value]) => { - if (value === '') { - return generateEmptyHeaderCheck(name); - } - return generateNonEmptyHeaderCheck(name, value); - }) - .join('\n'); -} - -function generateEmptyHeaderCheck(name: string): string { - return `if (headers['${escape( - name - ).toLowerCase()}'] !== undefined && headers['${escape( - name - ).toLowerCase()}'] !== '') { - throw new Error( - \`Unexpected value for header '${escape( - name - )}'. Expected undefined but received '\${headers['${escape( - name - ).toLowerCase()}']}'\` - ); - } - `; -} - -function generateNonEmptyHeaderCheck(name: string, value: string): string { - return `if (headers['${escape(name).toLowerCase()}'] !== '${escape( - value - )}') { - throw new Error( - \`Unexpected value for header '${escape( - name - )}'. Expected '${escape( - value - )}' but received '\${headers['${escape( - name - ).toLowerCase()}']}'\` - ); - } - `; -} - -function generateBodyCheck(body: Uint8Array, requestParamName: string): string { - return `if (${requestParamName}.method !== 'GET' && ${requestParamName}.body !== undefined) { - const requestBody = Buffer.from(${requestParamName}.body).toString('utf-8'); - const expectedBody = "${escape(Buffer.from(body).toString('utf-8'))}" - if (requestBody !== expectedBody) { - throw new Error(\`Unexpected value for body. Expected \${expectedBody}, but received \${requestBody}\`) - } - }`; -} - -function escape(input: string): string { - return input - .replace(/\\/g, '\\\\') // Escape backslashes - .replace(/\$\{/g, '\\${') // Escape interpolation starts - .replace(/`/g, '\\`') // Escape backticks - .replace(/'/g, "\\'") // Escape single quotes - .replace(/"/g, '\\"'); // Escape double quotes -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/http_request/test/generate_tests.ts deleted file mode 100644 index cc66fcf5ca..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request/test/generate_tests.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { HttpRequest, HttpResponse } from 'azle/experimental'; -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { HttpResponseAgentResponseValue } from 'azle/property_tests/arbitraries/http/response_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -import { fletch } from './fletch'; - -export function generateTests( - functionName: string, - params: Named>[], - returnType: CandidValueAndMeta< - HttpResponse, - HttpResponseAgentResponseValue - > -): Test[][] { - const request = params[0].value.value.agentArgumentValue; - const expectedResponse = returnType.value.agentResponseValue; - - return [ - [ - { - name: functionName, - test: async (): Promise => { - const response = await fletch('canister', request); - const filteredHeaders = response.headers - .filter( - ([name]) => - name !== 'x-ic-streaming-response' && - name !== 'content-length' && - name !== 'date' - ) - .sort(); - const processedResponse = { - status: response.status, - headers: filteredHeaders, - body: response.body - }; - const sortedExpectedHeaders = - expectedResponse.headers.sort(); - const processedExpectedResponse = { - ...expectedResponse, - headers: sortedExpectedHeaders - }; - - return testEquality( - processedResponse, - processedExpectedResponse - ); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request/test/test.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/http_request/test/test.ts deleted file mode 100644 index d184c7a493..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request/test/test.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { HttpRequest } from 'azle/experimental'; -import { runPropTests } from 'azle/property_tests'; -import { RecordArb } from 'azle/property_tests/arbitraries/candid/constructed/record_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { HttpRequestArb } from 'azle/property_tests/arbitraries/http/request_arb'; -import { HttpResponseArb } from 'azle/property_tests/arbitraries/http/response_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const CanisterConfigArb = RecordArb(context) - .chain((record) => { - const HttpRequestMethodArb = QueryMethodArb( - { - api, - constraints: { - name: 'http_request', - generateBody, - generateTests - } - }, - fc.tuple(HttpRequestArb(context)), - HttpResponseArb(context, record) - ); - - return HttpRequestMethodArb; - }) - .map((httpRequestMethod): CanisterConfig => { - return { - queryMethods: [httpRequestMethod] - }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/test/generate_body.ts deleted file mode 100644 index 9eb54a1e56..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/test/generate_body.ts +++ /dev/null @@ -1,139 +0,0 @@ -import { HttpRequest } from 'azle/experimental'; -import { Named } from 'azle/property_tests'; -import { CandidReturnType } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; - -export function generateBody( - namedParams: Named>[], - returnType: CandidValueAndMeta -): string { - const { name: requestParamName, value: requestValueObject } = - namedParams[0]; - const request = requestValueObject.value.agentArgumentValue; - - const httpMethodCheck = generateHttpMethodCheck( - request.method, - requestParamName - ); - const urlCheck = generateUrlCheck(request.url, requestParamName); - const headersMap = generateHeadersMap(request.headers, requestParamName); - const headerChecks = generateHeaderChecks(request.headers); - const bodyCheck = generateBodyCheck(request.body, requestParamName); - - return ` - state++; - - // Body check has to happen before method check or else type checks might fail - ${bodyCheck} - ${httpMethodCheck} - ${urlCheck} - ${headersMap} - ${headerChecks} - - return ${returnType.src.valueLiteral}; - `; -} - -function generateHttpMethodCheck( - method: string, - requestParamName: string -): string { - return ` - if (${requestParamName}.method !== '${method}') { - throw new Error( - \`Unexpected req.method. Expected ${method} but received \${${requestParamName}.method}\` - ); - } - `; -} - -function generateUrlCheck(url: string, requestParamName: string): string { - return ` - if (decodeURIComponent(${requestParamName}.url) !== decodeURIComponent('${escape( - url - )}')) { - throw new Error( - \`Unexpected req.url. Expected '${escape( - url - )}' but received \${${requestParamName}.url}\` - ); - } - `; -} - -function generateHeadersMap( - headers: [string, string][], - requestParamName: string -): string { - return headers.length === 0 - ? '' - : ` - const headers = (${requestParamName}.headers as [string, string][]).reduce<{ - [key: string]: string} - >((prev, [name, value]) => ({[name]: value, ...prev}), {}); - `; -} - -function generateHeaderChecks(headers: [string, string][]): string { - return headers - .map(([name, value]) => { - if (value === '') { - return generateEmptyHeaderCheck(name); - } - return generateNonEmptyHeaderCheck(name, value); - }) - .join('\n'); -} - -function generateEmptyHeaderCheck(name: string): string { - return `if (headers['${escape( - name - ).toLowerCase()}'] !== undefined && headers['${escape( - name - ).toLowerCase()}'] !== '') { - throw new Error( - \`Unexpected value for header '${escape( - name - )}'. Expected undefined but received '\${headers['${escape( - name - ).toLowerCase()}']}'\` - ); - } - `; -} - -function generateNonEmptyHeaderCheck(name: string, value: string): string { - return `if (headers['${escape(name).toLowerCase()}'] !== '${escape( - value - )}') { - throw new Error( - \`Unexpected value for header '${escape( - name - )}'. Expected '${escape( - value - )}' but received '\${headers['${escape( - name - ).toLowerCase()}']}'\` - ); - } - `; -} - -function generateBodyCheck(body: Uint8Array, requestParamName: string): string { - return `if (${requestParamName}.method !== 'GET' && ${requestParamName}.body !== undefined) { - const requestBody = Buffer.from(${requestParamName}.body).toString('utf-8'); - const expectedBody = "${escape(Buffer.from(body).toString('utf-8'))}" - if (requestBody !== expectedBody) { - throw new Error(\`Unexpected value for body. Expected \${expectedBody}, but received \${requestBody}\`) - } - }`; -} - -function escape(input: string): string { - return input - .replace(/\\/g, '\\\\') // Escape backslashes - .replace(/\$\{/g, '\\${') // Escape interpolation starts - .replace(/`/g, '\\`') // Escape backticks - .replace(/'/g, "\\'") // Escape single quotes - .replace(/"/g, '\\"'); // Escape double quotes -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/test/generate_tests.ts deleted file mode 100644 index edbe45fb6e..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/test/generate_tests.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { HttpRequest, HttpResponse } from 'azle/experimental'; -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { HttpResponseAgentResponseValue } from 'azle/property_tests/arbitraries/http/response_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -import { fletch } from './fletch'; - -export function generateTests( - functionName: string, - params: Named>[], - returnType: CandidValueAndMeta< - HttpResponse, - HttpResponseAgentResponseValue - > -): Test[][] { - const request = params[0].value.value.agentArgumentValue; - const expectedResponse = returnType.value.agentResponseValue; - - return [ - [ - { - name: 'get state before calling http_request', - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor['get_state'](); - - return testEquality(result, 0); - } - }, - { - name: functionName, - test: async (): Promise => { - const response = await fletch('canister', request); - const filteredHeaders = response.headers - .filter( - ([name]) => - name !== 'x-ic-streaming-response' && - name !== 'content-length' && - name !== 'date' - ) - .sort(); - const processedResponse = { - status: response.status, - headers: filteredHeaders, - body: response.body - }; - const sortedExpectedHeaders = - expectedResponse.headers.sort(); - const processedExpectedResponse = { - ...expectedResponse, - headers: sortedExpectedHeaders - }; - - return testEquality( - processedResponse, - processedExpectedResponse - ); - } - }, - { - name: 'get state after calling http_request', - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor['get_state'](); - - return testEquality(result, 1); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/test/test.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/test/test.ts deleted file mode 100644 index 952bb249f8..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/http_request_update/test/test.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { HttpRequest } from 'azle/experimental'; -import { runPropTests } from 'azle/property_tests'; -import { RecordArb } from 'azle/property_tests/arbitraries/candid/constructed/record_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { UpdateMethodArb } from 'azle/property_tests/arbitraries/canister_methods/update_method_arb'; -import { HttpRequestArb } from 'azle/property_tests/arbitraries/http/request_arb'; -import { HttpResponseArb } from 'azle/property_tests/arbitraries/http/response_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const HttpRequestUpdateMethodArb = RecordArb(context).chain((record) => { - const HttpRequestMethodArb = UpdateMethodArb( - { - api, - constraints: { - name: 'http_request_update', - generateBody, - generateTests - } - }, - fc.tuple(HttpRequestArb(context)), - HttpResponseArb(context, record) - ); - - return HttpRequestMethodArb; -}); - -const CanisterConfigArb = HttpRequestUpdateMethodArb.map( - (httpRequestUpdateMethod): CanisterConfig => { - const httpRequestMethod = generateHttpRequestMethod(); - const getStateMethod = generateGetStateMethod(); - - return { - queryMethods: [httpRequestMethod, getStateMethod], - updateMethods: [httpRequestUpdateMethod] - }; - } -); - -runPropTests(CanisterArb(context, CanisterConfigArb)); - -function generateHttpRequestMethod(): QueryMethod { - return { - imports: new Set([ - 'query', - 'HttpRequest', - 'HttpResponse', - 'Null', - 'Some' - ]), - globalDeclarations: [], - sourceCode: /*TS*/ `http_request: query([HttpRequest], HttpResponse(Null), () => { - return { - status_code: 204, - headers: [], - body: new Uint8Array(), - streaming_strategy: None, - upgrade: Some(true) - }; - })`, - tests: [] - }; -} - -function generateGetStateMethod(): QueryMethod { - return { - imports: new Set(['query', 'nat8']), - globalDeclarations: ['let state: number = 0;'], - sourceCode: /*TS*/ `get_state: query([], nat8, () => { - return state; - })`, - tests: [] - }; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/init/test/generate_callable_method_body.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/init/test/generate_callable_method_body.ts deleted file mode 100644 index d52e92001a..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/init/test/generate_callable_method_body.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; - -export function generateBody( - _namedParams: Named>[], - returnType: CandidValueAndMeta -): string { - return `return ${returnType.src.valueLiteral}`; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/init/test/generate_init_body.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/init/test/generate_init_body.ts deleted file mode 100644 index d05ca5d40d..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/init/test/generate_init_body.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParams: Named>[] -): string { - const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); - - const storeVariablesGlobally = namedParams - .map((param, i) => `initParam${i} = ${param.name};`) - .join('\n'); - - return ` - initialized = true; - - ${paramsAreCorrectlyOrdered} - - ${storeVariablesGlobally} - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/init/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/init/test/generate_tests.ts deleted file mode 100644 index 3d2c072716..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/init/test/generate_tests.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - _functionName: string, - params: Named>[] -): Test[][] { - const expectedResult = [ - true, - ...params.map((param) => param.value.value.agentResponseValue) - ]; - - return [ - [ - { - name: `init method`, - test: async (): Promise => { - const actor = getActor(__dirname); - const result = await actor.getInitValues(); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/init/test/test.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/init/test/test.ts deleted file mode 100644 index 48af0c037c..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/init/test/test.ts +++ /dev/null @@ -1,134 +0,0 @@ -import { runPropTests } from 'azle/property_tests'; -import { CandidReturnTypeArb } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMetaArb } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { InitMethodArb } from 'azle/property_tests/arbitraries/canister_methods/init_method_arb'; -import { - QueryMethod, - QueryMethodArb -} from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { UpdateMethodArb } from 'azle/property_tests/arbitraries/canister_methods/update_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody as callableMethodBodyGenerator } from './generate_callable_method_body'; -import { generateBody as initBodyGenerator } from './generate_init_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -// TODO multiplying by zero is to remove -0 -// TODO we should open an issue with agent-js -// TODO the agent should encode and decode -0 correctly -// https://github.com/demergent-labs/azle/issues/1511 -// TODO Infinity and NaN can't be used in this context -// https://github.com/dfinity/candid/issues/499 -const valueConstraints = { - noDefaultInfinity: true, - noNaN: true, - noNegativeZero: true -}; -const SimpleInitMethodArb = InitMethodArb( - { - api, - constraints: { - generateBody: initBodyGenerator, - generateTests - } - }, - fc.array(CandidValueAndMetaArb({ api, constraints: valueConstraints })) -); - -const HeterogeneousQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody: callableMethodBodyGenerator, - generateTests: () => [] - } - }, - fc.array(CandidValueAndMetaArb(context)), - CandidReturnTypeArb(context) -); - -const HeterogeneousUpdateMethodArb = UpdateMethodArb( - { - api, - constraints: { - generateBody: callableMethodBodyGenerator, - generateTests: () => [] - } - }, - fc.array(CandidValueAndMetaArb(context)), - CandidReturnTypeArb(context) -); - -const small = { - minLength: 0, - maxLength: 20 -}; - -const CanisterConfigArb = fc - .tuple( - SimpleInitMethodArb, - fc.array(HeterogeneousQueryMethodArb, small), - fc.array(HeterogeneousUpdateMethodArb, small) - ) - .map( - ([initMethod, queryMethods, updateMethods]): CanisterConfig< - CorrespondingJSType, - CorrespondingJSType - > => { - const initParamTypes = initMethod.params.map( - (param) => param.value.src.typeObject - ); - - const globalInitVariableNames = initMethod.params.map( - (_, i) => `initParam${i}` - ); - const globalInitVariableDeclarations = initMethod.params.map( - (param, i) => - `let initParam${i}: ${param.value.src.typeAnnotation};` - ); - - const globalDeclarations = [ - 'let initialized: boolean = false;', - ...globalInitVariableDeclarations - ]; - - const getInitValues = generateGetInitValuesCanisterMethod( - initParamTypes, - globalInitVariableNames - ); - - return { - initMethod, - globalDeclarations, - queryMethods: [getInitValues, ...queryMethods], - updateMethods - }; - } - ); - -runPropTests(CanisterArb(context, CanisterConfigArb)); - -function generateGetInitValuesCanisterMethod( - paramTypes: string[], - globalInitVariableNames: string[] -): QueryMethod { - return { - imports: new Set(['bool', 'query', 'Tuple']), - globalDeclarations: [], - sourceCode: /*TS*/ `getInitValues: query( - [], - Tuple(bool, ${paramTypes.join()}), - () => { return [initialized, ${globalInitVariableNames.join()}]}) - `, - tests: [] - }; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/inspect_message/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/inspect_message/test/generate_tests.ts deleted file mode 100644 index aa93ddd6af..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/inspect_message/test/generate_tests.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { Agent } from '@dfinity/agent'; -import { getActor, Named } from 'azle/property_tests'; -import { CandidReturnType } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -import { InspectMessageBehavior } from './test'; - -export function generateTests( - functionName: string, - params: Named>[], - returnType: CandidValueAndMeta, - agentAndBehaviors: [Agent, InspectMessageBehavior][] -): Test[][] { - const paramValues = params.map( - (param) => param.value.value.agentArgumentValue - ); - - const expectedResult = returnType.value.agentResponseValue; - - return [ - agentAndBehaviors.map(([agent, behavior]) => { - return generateTest( - agent, - functionName, - paramValues, - expectedResult, - behavior - ); - }) - ]; -} - -function generateTest( - agent: Agent, - functionName: string, - paramValues: CorrespondingJSType[], - expectedResult: CorrespondingJSType, - behavior: InspectMessageBehavior -): Test { - return { - name: `method "${functionName}" expected ${behavior}`, - test: async (): Promise => { - await agent.fetchRootKey(); - const actor = getActor(__dirname, agent); - try { - const result = await actor[functionName](...paramValues); - - if (behavior === 'ACCEPT') { - return testEquality(result, expectedResult); - } - - return { - Err: 'Expected canister method to throw but it did not' - }; - } catch (error: any) { - if (behavior === 'RETURN') { - return testEquality( - error.message.includes('rejected the message'), - true - ); - } - - if (behavior === 'THROW') { - const expectedError = `Method \\"${functionName}\\" not allowed`; - return testEquality( - error.message.includes(expectedError), - true - ); - } - - throw error; - } - } - }; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/inspect_message/test/test.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/inspect_message/test/test.ts deleted file mode 100644 index 7842190272..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/inspect_message/test/test.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { Agent } from '@dfinity/agent'; -import { createAuthenticatedAgentSync, getPrincipal } from 'azle/dfx'; -import { runPropTests } from 'azle/property_tests'; -import { CandidReturnTypeArb } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMetaArb } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { InspectMessageMethodArb } from 'azle/property_tests/arbitraries/canister_methods/inspect_message_method_arb'; -import { UpdateMethodArb } from 'azle/property_tests/arbitraries/canister_methods/update_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; -import { v4 } from 'uuid'; - -import { generateTests } from './generate_tests'; - -export type InspectMessageBehavior = 'ACCEPT' | 'RETURN' | 'THROW'; - -const AZLE_ACCEPT_IDENTITY_NAME = `_prop_test_azle_accept_identity_${v4()}`; -const AZLE_RETURN_IDENTITY_NAME = `_prop_test_azle_return_identity_${v4()}`; -const AZLE_THROW_IDENTITY_NAME = `_prop_test_azle_throw_identity_${v4()}`; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -// TODO make this function's return type explicit https://github.com/demergent-labs/azle/issues/1860 -// eslint-disable-next-line @typescript-eslint/explicit-function-return-type -function CanisterConfigArb() { - const agents: [Agent, InspectMessageBehavior][] = [ - [ - createAuthenticatedAgentSync(AZLE_ACCEPT_IDENTITY_NAME, true), - 'ACCEPT' - ], - [ - createAuthenticatedAgentSync(AZLE_RETURN_IDENTITY_NAME, true), - 'RETURN' - ], - [createAuthenticatedAgentSync(AZLE_THROW_IDENTITY_NAME, true), 'THROW'] - ]; - - const InspectMessageArb = InspectMessageMethodArb({ - api, - constraints: { - generateBody: () => generateInspectMessageMethodBody(), - generateTests: () => [] - } - }); - - const HeterogeneousUpdateMethodArb = UpdateMethodArb( - { - api, - constraints: { - generateBody: (_, returnType) => - `return ${returnType.src.valueLiteral}`, - generateTests: (...args) => generateTests(...args, agents) - } - }, - fc.array(CandidValueAndMetaArb(context)), - CandidReturnTypeArb(context) - ); - - const small = { - minLength: 0, - maxLength: 20 - }; - - return fc - .tuple(InspectMessageArb, fc.array(HeterogeneousUpdateMethodArb, small)) - .map( - ([inspectMessageMethod, updateMethods]): CanisterConfig< - CorrespondingJSType, - CorrespondingJSType - > => { - return { - inspectMessageMethod, - updateMethods - }; - } - ); -} - -runPropTests(CanisterArb(context, CanisterConfigArb())); - -function generateInspectMessageMethodBody(): string { - const acceptPrincipal = getPrincipal(AZLE_ACCEPT_IDENTITY_NAME); - const returnPrincipal = getPrincipal(AZLE_RETURN_IDENTITY_NAME); - const throwPrincipal = getPrincipal(AZLE_THROW_IDENTITY_NAME); - return ` - if (ic.caller().toText() === "${acceptPrincipal}") { - ic.acceptMessage(); - return; - } - if (ic.caller().toText() === "${returnPrincipal}") { - return; - } - if (ic.caller().toText() === "${throwPrincipal}") { - throw new Error(\`Method "$\{ic.methodName()}" not allowed\`); - } - throw new Error("Unexpected caller"); - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/generate_callable_method_body.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/generate_callable_method_body.ts deleted file mode 100644 index d52e92001a..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/generate_callable_method_body.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; - -export function generateBody( - _namedParams: Named>[], - returnType: CandidValueAndMeta -): string { - return `return ${returnType.src.valueLiteral}`; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/generate_init_method_body.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/generate_init_method_body.ts deleted file mode 100644 index 11ca50e9ac..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/generate_init_method_body.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -import { globalInitVarName } from './global_var_name'; - -export function generateBody( - namedParams: Named>[] -): string { - const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); - - const storeVariablesGlobally = namedParams - .map((param, i) => `${globalInitVarName(i)} = ${param.name};`) - .join('\n'); - - return ` - initExecuted = true; - - ${paramsAreCorrectlyOrdered} - - ${storeVariablesGlobally} - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/generate_init_tests.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/generate_init_tests.ts deleted file mode 100644 index c6633d557b..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/generate_init_tests.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - _functionName: string, - params: Named>[] -): Test[][] { - const expectedResult = [ - true, - ...params.map((param) => param.value.value.agentResponseValue) - ]; - - return [ - [ - { - name: `init method`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const initValues = await actor.getInitValues(); - const isPostUpgradeCalled = - await actor.isPostUpgradeCalled(); - - return testEquality( - [initValues, isPostUpgradeCalled], - [expectedResult, false] - ); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/generate_post_upgrade_method_body.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/generate_post_upgrade_method_body.ts deleted file mode 100644 index 53e2b3d832..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/generate_post_upgrade_method_body.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -import { globalPostUpgradeVarName } from './global_var_name'; - -export function generateBody( - namedParams: Named>[] -): string { - const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); - - const storeVariablesGlobally = namedParams - .map((param, i) => `${globalPostUpgradeVarName(i)} = ${param.name};`) - .join('\n'); - - return ` - postUpgradeExecuted = true; - - ${paramsAreCorrectlyOrdered} - - ${storeVariablesGlobally} - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/generate_post_upgrade_tests.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/generate_post_upgrade_tests.ts deleted file mode 100644 index cafe9558b7..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/generate_post_upgrade_tests.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - _functionName: string, - params: Named>[] -): Test[][] { - const expectedResult = [ - true, - ...params.map((param) => param.value.value.agentResponseValue) - ]; - - return [ - [], // Don't test on the first deploy, test after a re-deploy - [ - { - name: `post upgrade method`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const postUpgradeValues = - await actor.getPostUpgradeValues(); - const isInitCalled = await actor.isInitCalled(); - - return testEquality( - [postUpgradeValues, isInitCalled], - [expectedResult, false] - ); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/test.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/test.ts deleted file mode 100644 index 98dad2c236..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/post_upgrade/test/test.ts +++ /dev/null @@ -1,308 +0,0 @@ -import { runPropTests } from 'azle/property_tests'; -import { candidDefinitionArb } from 'azle/property_tests/arbitraries/candid/candid_definition_arb'; -import { - CandidDefinition, - WithShapes -} from 'azle/property_tests/arbitraries/candid/candid_definition_arb/types'; -import { CandidReturnTypeArb } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { - CandidValueAndMeta, - CandidValueAndMetaArb -} from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { definitionAndValueToValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb_generator'; -import { CandidValueArb } from 'azle/property_tests/arbitraries/candid/candid_values_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { InitMethodArb } from 'azle/property_tests/arbitraries/canister_methods/init_method_arb'; -import { PostUpgradeMethodArb } from 'azle/property_tests/arbitraries/canister_methods/post_upgrade_arb'; -import { - QueryMethod, - QueryMethodArb -} from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { UpdateMethodArb } from 'azle/property_tests/arbitraries/canister_methods/update_method_arb'; -import { DEFAULT_VALUE_MAX_DEPTH } from 'azle/property_tests/arbitraries/config'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody as callableMethodBodyGenerator } from './generate_callable_method_body'; -import { generateBody as initMethodBodyGenerator } from './generate_init_method_body'; -import { generateTests as generateInitTests } from './generate_init_tests'; -import { generateBody as postUpgradeMethodBodyGenerator } from './generate_post_upgrade_method_body'; -import { generateTests as generatePostUpgradeTests } from './generate_post_upgrade_tests'; -import { globalInitVarName, globalPostUpgradeVarName } from './global_var_name'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const CanisterConfigArb = fc - .array(candidDefinitionArb(context, {})) - .chain((paramDefinitionsWithShapes) => { - const initParamValues = definitionsToValueAndMetaArb( - paramDefinitionsWithShapes - ); - const postUpgradeParamValues = definitionsToValueAndMetaArb( - paramDefinitionsWithShapes - ); - return fc.tuple(initParamValues, postUpgradeParamValues); - }) - .chain(([initParams, postUpgradeParams]) => { - const initDeployParamsArb = fc.constant(initParams); - const postUpgradeParamsArb = fc.constant(postUpgradeParams); - - const SimpleInitMethodArb = InitMethodArb( - { - api, - constraints: { - generateBody: initMethodBodyGenerator, - generateTests: generateInitTests - } - }, - initDeployParamsArb - ); - - const SimplePostUpgradeMethodArb = PostUpgradeMethodArb( - { - api, - constraints: { - generateBody: postUpgradeMethodBodyGenerator, - generateTests: generatePostUpgradeTests - } - }, - postUpgradeParamsArb - ); - - const HeterogeneousQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody: callableMethodBodyGenerator, - generateTests: () => [] - } - }, - fc.array(CandidValueAndMetaArb(context)), - CandidReturnTypeArb(context) - ); - - const HeterogeneousUpdateMethodArb = UpdateMethodArb( - { - api, - constraints: { - generateBody: callableMethodBodyGenerator, - generateTests: () => [] - } - }, - fc.array(CandidValueAndMetaArb(context)), - CandidReturnTypeArb(context) - ); - - const small = { - minLength: 0, - maxLength: 20 - }; - - return fc.tuple( - initDeployParamsArb, - postUpgradeParamsArb, - SimpleInitMethodArb, - SimplePostUpgradeMethodArb, - fc.array(HeterogeneousQueryMethodArb, small), - fc.array(HeterogeneousUpdateMethodArb, small) - ); - }) - .map( - ([ - initParams, - postUpgradeParams, - initMethod, - postUpgradeMethod, - queryMethods, - updateMethods - ]): CanisterConfig => { - const paramTypeObjects = postUpgradeParams.map( - // The typeObjects ought to be the same so it doesn't mater which we use to generate this list - (param) => param.src.typeObject - ); - - const globalInitVariableNames = initParams.map((_, i) => - globalInitVarName(i) - ); - const globalPostUpgradeVariableNames = postUpgradeParams.map( - (_, i) => globalPostUpgradeVarName(i) - ); - const globalInitVariableDeclarations = initParams.map( - (param, i) => - `let ${globalInitVarName(i)}: ${param.src.typeAnnotation};` - ); - const globalPostUpgradeVariableDeclarations = postUpgradeParams.map( - (param, i) => - `let ${globalPostUpgradeVarName(i)}: ${ - param.src.typeAnnotation - };` - ); - - const globalDeclarations = [ - 'let postUpgradeExecuted: boolean = false;', - 'let initExecuted: boolean = false;', - ...globalInitVariableDeclarations, - ...globalPostUpgradeVariableDeclarations - ]; - - const getPostUpgradeValues = - generateGetPostUpgradeValuesCanisterMethod( - paramTypeObjects, - globalPostUpgradeVariableNames - ); - - const getInitValues = generateGetInitValuesCanisterMethod( - paramTypeObjects, - globalInitVariableNames - ); - - const isPostUpgradeCalled = generateIsPostUpgradeCalled( - globalPostUpgradeVariableNames - ); - - const isInitCalled = generateIsInitCalled(globalInitVariableNames); - - return { - globalDeclarations, - initMethod, - postUpgradeMethod, - queryMethods: [ - getInitValues, - getPostUpgradeValues, - isPostUpgradeCalled, - isInitCalled, - ...queryMethods - ], - updateMethods - }; - } - ); - -function generateGetPostUpgradeValuesCanisterMethod( - paramTypeObjects: string[], - globalVariableNames: string[] -): QueryMethod { - return { - imports: new Set(['Tuple', 'bool', 'query']), - globalDeclarations: [], - sourceCode: /*TS*/ `getPostUpgradeValues: query( - [], - Tuple(bool, ${paramTypeObjects.join()}), - () => {return [postUpgradeExecuted, ${globalVariableNames.join()}]} - )`, - tests: [] - }; -} - -function generateGetInitValuesCanisterMethod( - paramTypeObjects: string[], - globalVariableNames: string[] -): QueryMethod { - return { - imports: new Set(['Tuple', 'bool', 'query']), - globalDeclarations: [], - sourceCode: /*TS*/ `getInitValues: query( - [], - Tuple(bool, ${paramTypeObjects.join()}), - () => {return [initExecuted, ${globalVariableNames.join()}]} - )`, - tests: [] - }; -} - -function generateIsInitCalled(globalVariableNames: string[]): QueryMethod { - const areAllParamsUndefined = globalVariableNames - .map((name) => `${name} === undefined`) - .join(' && '); - const isInitCalled = `initExecuted${ - globalVariableNames.length === 0 - ? '' - : ` || !(${areAllParamsUndefined})` - }`; - return { - imports: new Set(['bool', 'query']), - globalDeclarations: [], - sourceCode: /*TS*/ `isInitCalled: query([], bool, () => ${isInitCalled})`, - tests: [] - }; -} - -function generateIsPostUpgradeCalled( - globalVariableNames: string[] -): QueryMethod { - const areAllParamsUndefined = globalVariableNames - .map((name) => `${name} === undefined`) - .join(' && '); - const isPostUpgradeCalled = `postUpgradeExecuted${ - globalVariableNames.length === 0 - ? '' - : ` || !(${areAllParamsUndefined})` - }`; - return { - imports: new Set(['bool', 'query']), - globalDeclarations: [], - sourceCode: /*TS*/ `isPostUpgradeCalled: query([], bool, () => ${isPostUpgradeCalled})`, - tests: [] - }; -} - -function definitionsToValueAndMetaArb( - definitionsWithShapes: WithShapes[] -): fc.Arbitrary[]> { - const definitions = definitionsWithShapes.map( - (definitionWithShapes) => definitionWithShapes.definition - ); - const recursiveShapes = definitionsWithShapes.reduce( - (acc, definitionsWithShapes) => { - return { ...acc, ...definitionsWithShapes.recursiveShapes }; - }, - {} - ); - return fc - .tuple( - fc.constant(definitions), - fc.tuple( - ...definitions.map((definition) => - // TODO multiplying by zero is to remove -0 - // TODO we should open an issue with agent-js - // TODO the agent should encode and decode -0 correctly - // https://github.com/demergent-labs/azle/issues/1511 - // TODO Infinity and NaN can't be used in this context - // https://github.com/dfinity/candid/issues/499 - CandidValueArb( - { - api, - constraints: { - noDefaultInfinity: true, - noNaN: true, - noNegativeZero: true, - depthLevel: DEFAULT_VALUE_MAX_DEPTH - } - }, - definition, - recursiveShapes - ) - ) - ) - ) - .map( - ([ - definitions, - values - ]): CandidValueAndMeta[] => { - return values.map((value, index) => { - return definitionAndValueToValueAndMeta( - definitions[index], - value - ); - }); - } - ); -} - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/pre_upgrade/test/test.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/pre_upgrade/test/test.ts deleted file mode 100644 index f6fbf1c25f..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/pre_upgrade/test/test.ts +++ /dev/null @@ -1,142 +0,0 @@ -import { getActor, runPropTests } from 'azle/property_tests'; -import { CandidReturnTypeArb } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMetaArb } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { PreUpgradeMethodArb } from 'azle/property_tests/arbitraries/canister_methods/pre_upgrade_method_arb'; -import { - QueryMethod, - QueryMethodArb -} from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { UpdateMethodArb } from 'azle/property_tests/arbitraries/canister_methods/update_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import { AzleResult, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const SimplePreUpgradeArb = PreUpgradeMethodArb({ - api, - constraints: { - generateBody: () => - /*TS*/ `stable.insert(PRE_UPGRADE_HOOK_EXECUTED, true);`, - generateTests: () => [] - } -}); - -const HeterogeneousQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody: (_, returnType) => - `return ${returnType.src.valueLiteral}`, - generateTests: () => [] - } - }, - fc.array(CandidValueAndMetaArb(context)), - CandidReturnTypeArb(context) -); - -const HeterogeneousUpdateMethodArb = UpdateMethodArb( - { - api, - constraints: { - generateBody: (_, returnType) => - `return ${returnType.src.valueLiteral}`, - generateTests: () => [] - } - }, - fc.array(CandidValueAndMetaArb(context)), - CandidReturnTypeArb(context) -); - -const small = { - minLength: 0, - maxLength: 20 -}; - -const CanisterConfigArb = fc - .tuple( - SimplePreUpgradeArb, - fc - .array(HeterogeneousQueryMethodArb, small) - .chain((queryMethods) => - fc.constant([ - generateGetPreUpgradeExecutedCanisterMethod(), - ...queryMethods - ]) - ), - fc.array(HeterogeneousUpdateMethodArb, small) - ) - - .map( - ([preUpgradeMethod, queryMethods, updateMethods]): CanisterConfig< - CorrespondingJSType, - CorrespondingJSType - > => { - const globalDeclarations = [ - /*TS*/ `const PRE_UPGRADE_HOOK_EXECUTED = 'PRE_UPGRADE_HOOK_EXECUTED';`, - /*TS*/ `let stable = StableBTreeMap(0);` - ]; - - return { - globalDeclarations, - preUpgradeMethod, - queryMethods, - updateMethods - }; - } - ); - -runPropTests(CanisterArb(context, CanisterConfigArb)); - -function generateGetPreUpgradeExecutedCanisterMethod(): QueryMethod { - return { - imports: new Set([ - 'bool', - 'query', - 'StableBTreeMap', - 'text', - 'Opt', - 'None', - 'Some' - ]), - globalDeclarations: [], - sourceCode: /*TS*/ `getPreUpgradeExecuted: query([], Opt(bool),() => { - const result = stable.get(PRE_UPGRADE_HOOK_EXECUTED) - if (result === null) { - return None - } else { - return Some(result) - } - })`, - tests: [ - [ - { - name: `pre upgrade was not called after first deploy`, - test: async (): Promise => { - const actor = getActor(__dirname); - const result = await actor.getPreUpgradeExecuted(); - - return testEquality(result, []); - } - } - ], - [ - { - name: `pre upgrade was called after second deploy`, - test: async (): Promise => { - const actor = getActor(__dirname); - const result = await actor.getPreUpgradeExecuted(); - - return testEquality(result, [true]); - } - } - ] - ] - }; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/query/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/query/test/generate_body.ts deleted file mode 100644 index 0a78fed29d..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/query/test/generate_body.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidReturnType } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParams: Named>[], - returnType: CandidValueAndMeta -): string { - const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); - - return ` - ${paramsAreCorrectlyOrdered} - - return ${returnType.src.valueLiteral} - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/query/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/query/test/generate_tests.ts deleted file mode 100644 index 3b11b5427c..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/query/test/generate_tests.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidReturnType } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - params: Named>[], - returnType: CandidValueAndMeta -): Test[][] { - const paramValues = params.map( - (param) => param.value.value.agentArgumentValue - ); - const expectedResult = returnType.value.agentResponseValue; - - return [ - [ - { - name: `query method "${functionName}"`, - test: async (): Promise => { - const actor = getActor(__dirname); - const result = await actor[functionName](...paramValues); - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/query/test/test.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/query/test/test.ts deleted file mode 100644 index a7b6900fb8..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/query/test/test.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { CandidReturnTypeArb } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMetaArb } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -// TODO Canister -// TODO Record -// TODO text -// TODO nat -// TODO update methods - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const HeterogeneousQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(CandidValueAndMetaArb(context)), - CandidReturnTypeArb(context) -); - -const CanisterConfigArb = fc - .array(HeterogeneousQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/update/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/update/test/generate_body.ts deleted file mode 100644 index 0a78fed29d..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/update/test/generate_body.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidReturnType } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParams: Named>[], - returnType: CandidValueAndMeta -): string { - const paramsAreCorrectlyOrdered = areParamsCorrectlyOrdered(namedParams); - - return ` - ${paramsAreCorrectlyOrdered} - - return ${returnType.src.valueLiteral} - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/update/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/update/test/generate_tests.ts deleted file mode 100644 index b922deb88a..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/update/test/generate_tests.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidReturnType } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { CorrespondingJSType } from 'azle/property_tests/arbitraries/candid/corresponding_js_type'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - params: Named>[], - returnType: CandidValueAndMeta -): Test[][] { - const paramValues = params.map( - (param) => param.value.value.agentArgumentValue - ); - const expectedResult = returnType.value.agentResponseValue; - - return [ - [ - { - name: `update method "${functionName}"`, - test: async (): Promise => { - const actor = getActor(__dirname); - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/canister_methods/update/test/test.ts b/tests/property/candid_rpc/functional_syntax/canister_methods/update/test/test.ts deleted file mode 100644 index deb834ecbb..0000000000 --- a/tests/property/candid_rpc/functional_syntax/canister_methods/update/test/test.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { CandidReturnTypeArb } from 'azle/property_tests/arbitraries/candid/candid_return_type_arb'; -import { CandidValueAndMetaArb } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { UpdateMethodArb } from 'azle/property_tests/arbitraries/canister_methods/update_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const HeterogeneousUpdateMethodArb = UpdateMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(CandidValueAndMetaArb(context)), - CandidReturnTypeArb(context) -); - -const CanisterConfigArb = fc - .array(HeterogeneousUpdateMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/float32/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/float32/test/generate_body.ts deleted file mode 100644 index be4f256104..0000000000 --- a/tests/property/candid_rpc/functional_syntax/float32/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamFloat32s: Named>[], - returnFloat32: CandidValueAndMeta -): string { - const paramsAreNumbers = namedParamFloat32s - .map((param) => { - return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = - areParamsCorrectlyOrdered(namedParamFloat32s); - - const returnStatement = - namedParamFloat32s.length === 0 - ? returnFloat32.src.valueLiteral - : namedParamFloat32s[0].name; - - return ` - ${paramsCorrectlyOrdered} - - ${paramsAreNumbers} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/float32/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/float32/test/generate_tests.ts deleted file mode 100644 index 44bbc97595..0000000000 --- a/tests/property/candid_rpc/functional_syntax/float32/test/generate_tests.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamFloat32s: Named>[], - returnFloat32: CandidValueAndMeta -): Test[][] { - const expectedResult = - namedParamFloat32s.length === 0 - ? returnFloat32.value.agentResponseValue - : namedParamFloat32s[0].value.value.agentResponseValue; - const paramValues = namedParamFloat32s.map( - (paramFloats) => paramFloats.value.value.agentArgumentValue - ); - return [ - [ - { - name: `float32 ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/float32/test/test.ts b/tests/property/candid_rpc/functional_syntax/float32/test/test.ts deleted file mode 100644 index 5bfb1ea15f..0000000000 --- a/tests/property/candid_rpc/functional_syntax/float32/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Float32Arb } from 'azle/property_tests/arbitraries/candid/primitive/floats/float32_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllFloat32sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Float32Arb(context)), - Float32Arb(context) -); - -const CanisterConfigArb = fc - .array(AllFloat32sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/float64/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/float64/test/generate_body.ts deleted file mode 100644 index f3fc35fa4b..0000000000 --- a/tests/property/candid_rpc/functional_syntax/float64/test/generate_body.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamFloat64s: Named>[], - returnFloat64: CandidValueAndMeta -): string { - const paramsAreNumbers = namedParamFloat64s - .map((param) => { - return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = - areParamsCorrectlyOrdered(namedParamFloat64s); - - const sum = namedParamFloat64s.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnFloat64.src.valueLiteral); - const count = namedParamFloat64s.length + 1; - const average = `(${sum}) / ${count}`; - - return ` - ${paramsCorrectlyOrdered} - - ${paramsAreNumbers} - - return ${average}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/float64/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/float64/test/generate_tests.ts deleted file mode 100644 index cd5d42f3fe..0000000000 --- a/tests/property/candid_rpc/functional_syntax/float64/test/generate_tests.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamFloat64s: Named>[], - returnFloat64: CandidValueAndMeta -): Test[][] { - const count = namedParamFloat64s.length + 1; - const expectedResult = - namedParamFloat64s.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnFloat64.value.agentResponseValue - ) / count; - - const paramValues = namedParamFloat64s.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `float64 ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/float64/test/test.ts b/tests/property/candid_rpc/functional_syntax/float64/test/test.ts deleted file mode 100644 index 670f65d118..0000000000 --- a/tests/property/candid_rpc/functional_syntax/float64/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Float64Arb } from 'azle/property_tests/arbitraries/candid/primitive/floats/float64_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllFloat64sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Float64Arb(context)), - Float64Arb(context) -); - -const CanisterConfigArb = fc - .array(AllFloat64sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/func/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/func/test/generate_body.ts deleted file mode 100644 index 9311c41d89..0000000000 --- a/tests/property/candid_rpc/functional_syntax/func/test/generate_body.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Func } from 'azle/property_tests/arbitraries/candid/reference/func_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamFuncs: Named>[], - returnFunc: CandidValueAndMeta -): string { - const paramsAreFuncs = namedParamFuncs - .map(({ name }) => { - const paramIsArray = `Array.isArray(${name})`; - const paramHas2Fields = `${name}.length === 2`; - const field0IsAPrincipal = `${name}[0]._isPrincipal === true`; - const field1IsAString = `typeof ${name}[1] === 'string'`; - - const paramIsAFunc = [ - paramIsArray, - paramHas2Fields, - field0IsAPrincipal, - field1IsAString - ].join(' && '); - - const throwError = `throw new Error('${name} must be a Func');`; - - return `if (!(${paramIsAFunc})) ${throwError}`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamFuncs); - - const returnStatement = returnFunc.src.valueLiteral; - - return ` - ${paramsAreFuncs} - - ${paramsCorrectlyOrdered} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/func/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/func/test/generate_tests.ts deleted file mode 100644 index 76a9739ccb..0000000000 --- a/tests/property/candid_rpc/functional_syntax/func/test/generate_tests.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Func } from 'azle/property_tests/arbitraries/candid/reference/func_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamFuncs: Named>[], - returnFunc: CandidValueAndMeta -): Test[][] { - return [ - [ - { - name: `func ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - ...namedParamFuncs.map( - (param) => param.value.value.agentArgumentValue - ) - ); - - return testEquality( - result, - returnFunc.value.agentResponseValue - ); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/func/test/test.ts b/tests/property/candid_rpc/functional_syntax/func/test/test.ts deleted file mode 100644 index 89ececb470..0000000000 --- a/tests/property/candid_rpc/functional_syntax/func/test/test.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { FuncArb } from 'azle/property_tests/arbitraries/candid/reference/func_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllFuncsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.uniqueArray(FuncArb(context), { - selector: (entry) => entry.src.typeAnnotation - }), - FuncArb(context) -); - -const CanisterConfigArb = fc - .array(AllFuncsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/int/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/int/test/generate_body.ts deleted file mode 100644 index 213bb0ae99..0000000000 --- a/tests/property/candid_rpc/functional_syntax/int/test/generate_body.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamInts: Named>[], - returnInt: CandidValueAndMeta -): string { - const paramsAreBigInts = namedParamInts - .map((param) => { - return `if (typeof ${param.name} !== 'bigint') throw new Error('${param.name} must be a bigint');`; - }) - .join('\n'); - - const sum = namedParamInts.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnInt.src.valueLiteral); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInts); - - return ` - ${paramsAreBigInts} - - ${paramsCorrectlyOrdered} - - return ${sum}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/int/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/int/test/generate_tests.ts deleted file mode 100644 index 4e58696822..0000000000 --- a/tests/property/candid_rpc/functional_syntax/int/test/generate_tests.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamInts: Named>[], - returnInt: CandidValueAndMeta -): Test[][] { - const expectedResult = namedParamInts.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnInt.value.agentResponseValue - ); - const paramValues = namedParamInts.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `int ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/int/test/test.ts b/tests/property/candid_rpc/functional_syntax/int/test/test.ts deleted file mode 100644 index c549f5a3c5..0000000000 --- a/tests/property/candid_rpc/functional_syntax/int/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { IntArb } from 'azle/property_tests/arbitraries/candid/primitive/ints/int_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllIntsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(IntArb(context)), - IntArb(context) -); - -const CanisterConfigArb = fc - .array(AllIntsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/int16/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/int16/test/generate_body.ts deleted file mode 100644 index 0f26a55321..0000000000 --- a/tests/property/candid_rpc/functional_syntax/int16/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamInt16s: Named>[], - returnInt16: CandidValueAndMeta -): string { - const paramsAreNumbers = namedParamInt16s - .map((param) => { - return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInt16s); - - const sum = namedParamInt16s.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnInt16.src.valueLiteral); - const count = namedParamInt16s.length + 1; - const average = `Math.floor((${sum}) / ${count})`; - - return ` - ${paramsAreNumbers} - - ${paramsCorrectlyOrdered} - - return ${average}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/int16/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/int16/test/generate_tests.ts deleted file mode 100644 index a541579499..0000000000 --- a/tests/property/candid_rpc/functional_syntax/int16/test/generate_tests.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamInt16s: Named>[], - returnInt16: CandidValueAndMeta -): Test[][] { - const count = namedParamInt16s.length + 1; - const expectedResult = Math.floor( - namedParamInt16s.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnInt16.value.agentResponseValue - ) / count - ); - const paramValues = namedParamInt16s.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `int16 ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/int16/test/test.ts b/tests/property/candid_rpc/functional_syntax/int16/test/test.ts deleted file mode 100644 index 9a98086f34..0000000000 --- a/tests/property/candid_rpc/functional_syntax/int16/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Int16Arb } from 'azle/property_tests/arbitraries/candid/primitive/ints/int16_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllInt16sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Int16Arb(context)), - Int16Arb(context) -); - -const CanisterConfigArb = fc - .array(AllInt16sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/int32/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/int32/test/generate_body.ts deleted file mode 100644 index fcac9922a5..0000000000 --- a/tests/property/candid_rpc/functional_syntax/int32/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamInt32s: Named>[], - returnInt32: CandidValueAndMeta -): string { - const paramsAreNumbers = namedParamInt32s - .map((param) => { - return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; - }) - .join('\n'); - - const sum = namedParamInt32s.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnInt32.src.valueLiteral); - const count = namedParamInt32s.length + 1; - const average = `Math.floor((${sum}) / ${count})`; - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInt32s); - - return ` - ${paramsAreNumbers} - - ${paramsCorrectlyOrdered} - - return ${average}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/int32/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/int32/test/generate_tests.ts deleted file mode 100644 index 7e273b9729..0000000000 --- a/tests/property/candid_rpc/functional_syntax/int32/test/generate_tests.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamInt32s: Named>[], - returnInt32: CandidValueAndMeta -): Test[][] { - const count = namedParamInt32s.length + 1; - const expectedResult = Math.floor( - namedParamInt32s.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnInt32.value.agentResponseValue - ) / count - ); - const paramValues = namedParamInt32s.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `int32 ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/int32/test/test.ts b/tests/property/candid_rpc/functional_syntax/int32/test/test.ts deleted file mode 100644 index 879aa53941..0000000000 --- a/tests/property/candid_rpc/functional_syntax/int32/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Int32Arb } from 'azle/property_tests/arbitraries/candid/primitive/ints/int32_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllInt32sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Int32Arb(context)), - Int32Arb(context) -); - -const CanisterConfigArb = fc - .array(AllInt32sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/int64/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/int64/test/generate_body.ts deleted file mode 100644 index a176e72b06..0000000000 --- a/tests/property/candid_rpc/functional_syntax/int64/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamInt64s: Named>[], - returnInt64: CandidValueAndMeta -): string { - const paramsAreBigInts = namedParamInt64s - .map((param) => { - return `if (typeof ${param.name} !== 'bigint') throw new Error('${param.name} must be a bigint');`; - }) - .join('\n'); - - const sum = namedParamInt64s.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnInt64.src.valueLiteral); - const count = namedParamInt64s.length + 1; - const average = `(${sum}) / ${count}n`; - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInt64s); - - return ` - ${paramsAreBigInts} - - ${paramsCorrectlyOrdered} - - return ${average}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/int64/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/int64/test/generate_tests.ts deleted file mode 100644 index 636992ed67..0000000000 --- a/tests/property/candid_rpc/functional_syntax/int64/test/generate_tests.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamInt64s: Named>[], - returnInt64: CandidValueAndMeta -): Test[][] { - const count = namedParamInt64s.length + 1; - const expectedResult = - namedParamInt64s.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnInt64.value.agentResponseValue - ) / BigInt(count); - - const paramValues = namedParamInt64s.map( - (param) => param.value.value.agentArgumentValue - ); - return [ - [ - { - name: `int64 ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/int64/test/test.ts b/tests/property/candid_rpc/functional_syntax/int64/test/test.ts deleted file mode 100644 index 3bd29d35ec..0000000000 --- a/tests/property/candid_rpc/functional_syntax/int64/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Int64Arb } from 'azle/property_tests/arbitraries/candid/primitive/ints/int64_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllInt64sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Int64Arb(context)), - Int64Arb(context) -); - -const CanisterConfigArb = fc - .array(AllInt64sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/int8/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/int8/test/generate_body.ts deleted file mode 100644 index 030c06a9bc..0000000000 --- a/tests/property/candid_rpc/functional_syntax/int8/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamInt8s: Named>[], - returnInt8: CandidValueAndMeta -): string { - const paramsAreNumbers = namedParamInt8s - .map((param) => { - return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; - }) - .join('\n'); - - const sum = namedParamInt8s.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnInt8.src.valueLiteral); - const count = namedParamInt8s.length + 1; - const average = `Math.floor((${sum}) / ${count})`; - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamInt8s); - - return ` - ${paramsAreNumbers} - - ${paramsCorrectlyOrdered} - - return ${average}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/int8/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/int8/test/generate_tests.ts deleted file mode 100644 index 947d939c1d..0000000000 --- a/tests/property/candid_rpc/functional_syntax/int8/test/generate_tests.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamInt8s: Named>[], - returnInt8: CandidValueAndMeta -): Test[][] { - const count = namedParamInt8s.length + 1; - const expectedResult = Math.floor( - namedParamInt8s.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnInt8.value.agentResponseValue - ) / count - ); - const paramValues = namedParamInt8s.map( - (param) => param.value.value.agentArgumentValue - ); - return [ - [ - { - name: `test ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/int8/test/test.ts b/tests/property/candid_rpc/functional_syntax/int8/test/test.ts deleted file mode 100644 index 263b614e85..0000000000 --- a/tests/property/candid_rpc/functional_syntax/int8/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Int8Arb } from 'azle/property_tests/arbitraries/candid/primitive/ints/int8_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllInt8sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Int8Arb(context)), - Int8Arb(context) -); - -const CanisterConfigArb = fc - .array(AllInt8sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/nat/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/nat/test/generate_body.ts deleted file mode 100644 index ba2e63496a..0000000000 --- a/tests/property/candid_rpc/functional_syntax/nat/test/generate_body.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamNats: Named>[], - returnNat: CandidValueAndMeta -): string { - const paramsAreBigInts = namedParamNats - .map((param) => { - return `if (typeof ${param.name} !== 'bigint') throw new Error('${param.name} must be a bigint');`; - }) - .join('\n'); - - const sum = namedParamNats.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnNat.src.valueLiteral); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNats); - - return ` - ${paramsCorrectlyOrdered} - - ${paramsAreBigInts} - - return ${sum}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/nat/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/nat/test/generate_tests.ts deleted file mode 100644 index 7cd446f07d..0000000000 --- a/tests/property/candid_rpc/functional_syntax/nat/test/generate_tests.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamNats: Named>[], - returnNat: CandidValueAndMeta -): Test[][] { - const expectedResult = namedParamNats.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnNat.value.agentResponseValue - ); - const paramValues = namedParamNats.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `nat ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/nat/test/test.ts b/tests/property/candid_rpc/functional_syntax/nat/test/test.ts deleted file mode 100644 index 9f5222d0b2..0000000000 --- a/tests/property/candid_rpc/functional_syntax/nat/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { NatArb } from 'azle/property_tests/arbitraries/candid/primitive/nats/nat_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllNatsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(NatArb(context)), - NatArb(context) -); - -const CanisterConfigArb = fc - .array(AllNatsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/nat16/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/nat16/test/generate_body.ts deleted file mode 100644 index 36c5809b54..0000000000 --- a/tests/property/candid_rpc/functional_syntax/nat16/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamNat16s: Named>[], - returnNat16: CandidValueAndMeta -): string { - const paramsAreNumbers = namedParamNat16s - .map((param) => { - return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; - }) - .join('\n'); - - const sum = namedParamNat16s.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnNat16.src.valueLiteral); - const count = namedParamNat16s.length + 1; - const average = `Math.floor((${sum}) / ${count})`; - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNat16s); - - return ` - ${paramsAreNumbers} - - ${paramsCorrectlyOrdered} - - return ${average}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/nat16/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/nat16/test/generate_tests.ts deleted file mode 100644 index 712cfd11df..0000000000 --- a/tests/property/candid_rpc/functional_syntax/nat16/test/generate_tests.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamNat16s: Named>[], - returnNat16: CandidValueAndMeta -): Test[][] { - const count = namedParamNat16s.length + 1; - const expectedResult = Math.floor( - namedParamNat16s.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnNat16.value.agentResponseValue - ) / count - ); - const paramValues = namedParamNat16s.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `nat16 ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/nat16/test/test.ts b/tests/property/candid_rpc/functional_syntax/nat16/test/test.ts deleted file mode 100644 index 9c1606b13a..0000000000 --- a/tests/property/candid_rpc/functional_syntax/nat16/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Nat16Arb } from 'azle/property_tests/arbitraries/candid/primitive/nats/nat16_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllNat16sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Nat16Arb(context)), - Nat16Arb(context) -); - -const CanisterConfigArb = fc - .array(AllNat16sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/nat32/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/nat32/test/generate_body.ts deleted file mode 100644 index 3ead7aca94..0000000000 --- a/tests/property/candid_rpc/functional_syntax/nat32/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamNat32s: Named>[], - returnNat32: CandidValueAndMeta -): string { - const paramsAreNumbers = namedParamNat32s - .map((param) => { - return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; - }) - .join('\n'); - - const sum = namedParamNat32s.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnNat32.src.valueLiteral); - const count = namedParamNat32s.length + 1; - const average = `Math.floor((${sum}) / ${count})`; - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNat32s); - - return ` - ${paramsAreNumbers} - - ${paramsCorrectlyOrdered} - - return ${average}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/nat32/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/nat32/test/generate_tests.ts deleted file mode 100644 index 9b67e1291b..0000000000 --- a/tests/property/candid_rpc/functional_syntax/nat32/test/generate_tests.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamNat32s: Named>[], - returnNat32: CandidValueAndMeta -): Test[][] { - const count = namedParamNat32s.length + 1; - const expectedResult = Math.floor( - namedParamNat32s.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnNat32.value.agentResponseValue - ) / count - ); - const paramValues = namedParamNat32s.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `nat32 ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/nat32/test/test.ts b/tests/property/candid_rpc/functional_syntax/nat32/test/test.ts deleted file mode 100644 index 0093ecbb3d..0000000000 --- a/tests/property/candid_rpc/functional_syntax/nat32/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Nat32Arb } from 'azle/property_tests/arbitraries/candid/primitive/nats/nat32_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllNat32sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Nat32Arb(context)), - Nat32Arb(context) -); - -const CanisterConfigArb = fc - .array(AllNat32sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/nat64/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/nat64/test/generate_body.ts deleted file mode 100644 index 423f9a0013..0000000000 --- a/tests/property/candid_rpc/functional_syntax/nat64/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamNat64s: Named>[], - returnNat64: CandidValueAndMeta -): string { - const paramsAreBigInts = namedParamNat64s - .map((param) => { - return `if (typeof ${param.name} !== 'bigint') throw new Error('${param.name} must be a bigint');`; - }) - .join('\n'); - - const sum = namedParamNat64s.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnNat64.src.valueLiteral); - const count = namedParamNat64s.length + 1; - const average = `(${sum}) / ${count}n`; - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNat64s); - - return ` - ${paramsAreBigInts} - - ${paramsCorrectlyOrdered} - - return ${average}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/nat64/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/nat64/test/generate_tests.ts deleted file mode 100644 index 1bf97bf853..0000000000 --- a/tests/property/candid_rpc/functional_syntax/nat64/test/generate_tests.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamNat64s: Named>[], - returnNat64: CandidValueAndMeta -): Test[][] { - const count = namedParamNat64s.length + 1; - const expectedResult = - namedParamNat64s.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnNat64.value.agentResponseValue - ) / BigInt(count); - const paramValues = namedParamNat64s.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `nat64 ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/nat64/test/test.ts b/tests/property/candid_rpc/functional_syntax/nat64/test/test.ts deleted file mode 100644 index 9bc71e9c0d..0000000000 --- a/tests/property/candid_rpc/functional_syntax/nat64/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Nat64Arb } from 'azle/property_tests/arbitraries/candid/primitive/nats/nat64_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllNat64sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Nat64Arb(context)), - Nat64Arb(context) -); - -const CanisterConfigArb = fc - .array(AllNat64sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/nat8/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/nat8/test/generate_body.ts deleted file mode 100644 index 1a06f4ec48..0000000000 --- a/tests/property/candid_rpc/functional_syntax/nat8/test/generate_body.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamNat8s: Named>[], - returnNat8: CandidValueAndMeta -): string { - const paramsAreNumbers = namedParamNat8s - .map((param) => { - return `if (typeof ${param.name} !== 'number') throw new Error('${param.name} must be a number');`; - }) - .join('\n'); - - const sum = namedParamNat8s.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnNat8.src.valueLiteral); - const count = namedParamNat8s.length + 1; - const average = `Math.floor((${sum}) / ${count})`; - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamNat8s); - - return ` - ${paramsAreNumbers} - - ${paramsCorrectlyOrdered} - - return ${average}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/nat8/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/nat8/test/generate_tests.ts deleted file mode 100644 index 10e8bc18a4..0000000000 --- a/tests/property/candid_rpc/functional_syntax/nat8/test/generate_tests.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamNat8s: Named>[], - returnNat8: CandidValueAndMeta -): Test[][] { - const count = namedParamNat8s.length + 1; - const expectedResult = Math.floor( - namedParamNat8s.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnNat8.value.agentResponseValue - ) / count - ); - const paramValues = namedParamNat8s.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `nat8 ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/nat8/test/test.ts b/tests/property/candid_rpc/functional_syntax/nat8/test/test.ts deleted file mode 100644 index 26068053e7..0000000000 --- a/tests/property/candid_rpc/functional_syntax/nat8/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { Nat8Arb } from 'azle/property_tests/arbitraries/candid/primitive/nats/nat8_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllNat8sQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(Nat8Arb(context)), - Nat8Arb(context) -); - -const CanisterConfigArb = fc - .array(AllNat8sQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/null/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/null/test/generate_body.ts deleted file mode 100644 index 407c964407..0000000000 --- a/tests/property/candid_rpc/functional_syntax/null/test/generate_body.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; - -export function generateBody( - namedParamNulls: Named>[], - returnNull: CandidValueAndMeta -): string { - const areAllNull = namedParamNulls.reduce((acc, { name }) => { - return `${acc} && ${name} === null`; - }, 'true'); - - const allNullCheck = `if (!(${areAllNull})) throw new Error("Not all of the values were null")`; - - return ` - ${allNullCheck} - - return ${returnNull.src.valueLiteral}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/null/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/null/test/generate_tests.ts deleted file mode 100644 index ab971a20d4..0000000000 --- a/tests/property/candid_rpc/functional_syntax/null/test/generate_tests.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamNulls: Named>[], - _returnNull: CandidValueAndMeta -): Test[][] { - return [ - [ - { - name: `test ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - ...namedParamNulls.map( - (param) => param.value.value.agentArgumentValue - ) - ); - - return testEquality(result, null); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/null/test/test.ts b/tests/property/candid_rpc/functional_syntax/null/test/test.ts deleted file mode 100644 index 04902e8e8f..0000000000 --- a/tests/property/candid_rpc/functional_syntax/null/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { NullArb } from 'azle/property_tests/arbitraries/candid/primitive/null'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllNullsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(NullArb(context)), - NullArb(context) -); - -const CanisterConfigArb = fc - .array(AllNullsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/opt/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/opt/test/generate_body.ts deleted file mode 100644 index 1973730d8e..0000000000 --- a/tests/property/candid_rpc/functional_syntax/opt/test/generate_body.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Opt } from 'azle/property_tests/arbitraries/candid/constructed/opt_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamOpts: Named>[], - returnOpt: CandidValueAndMeta -): string { - const areParamsOpts = namedParamOpts - .map((param) => { - return `if (!${isParamOpt(param.name)}) throw new Error('${ - param.name - } must be an Opt');`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamOpts); - - const returnStatement = returnOpt.src.valueLiteral; - - return ` - ${areParamsOpts} - ${paramsCorrectlyOrdered} - - return ${returnStatement}; - `; -} - -function isParamOpt(paramName: string): string { - return `(${paramName}.Some !== undefined || ${paramName}.None !== undefined)`; -} diff --git a/tests/property/candid_rpc/functional_syntax/opt/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/opt/test/generate_tests.ts deleted file mode 100644 index 1c6ce71905..0000000000 --- a/tests/property/candid_rpc/functional_syntax/opt/test/generate_tests.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Opt } from 'azle/property_tests/arbitraries/candid/constructed/opt_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamOpts: Named>[], - returnOpt: CandidValueAndMeta -): Test[][] { - const expectedResult = returnOpt.value.agentResponseValue; - - return [ - [ - { - name: `opt ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const params = namedParamOpts.map( - (param) => param.value.value.agentArgumentValue - ); - - const result = await actor[functionName](...params); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/opt/test/test.ts b/tests/property/candid_rpc/functional_syntax/opt/test/test.ts deleted file mode 100644 index abb8c6adb0..0000000000 --- a/tests/property/candid_rpc/functional_syntax/opt/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { OptArb } from 'azle/property_tests/arbitraries/candid/constructed/opt_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllOptsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(OptArb(context)), - OptArb(context) -); - -const CanisterConfigArb = fc - .array(AllOptsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/principal/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/principal/test/generate_body.ts deleted file mode 100644 index 69dc896e1a..0000000000 --- a/tests/property/candid_rpc/functional_syntax/principal/test/generate_body.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Principal } from '@dfinity/principal'; -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamPrincipals: Named>[], - returnPrincipal: CandidValueAndMeta -): string { - const paramsArePrincipals = namedParamPrincipals - .map((param) => { - return `if (${param.name}._isPrincipal !== true) throw new Error('${param.name} must be a Principal');`; - }) - .join('\n'); - - const returnStatement = - namedParamPrincipals.length > 0 - ? namedParamPrincipals[0].name - : returnPrincipal.src.valueLiteral; - - const paramsCorrectlyOrdered = - areParamsCorrectlyOrdered(namedParamPrincipals); - - return ` - ${paramsArePrincipals} - - ${paramsCorrectlyOrdered} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/principal/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/principal/test/generate_tests.ts deleted file mode 100644 index 05f59dc620..0000000000 --- a/tests/property/candid_rpc/functional_syntax/principal/test/generate_tests.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Principal } from '@dfinity/principal'; -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamPrincipals: Named>[], - returnPrincipal: CandidValueAndMeta -): Test[][] { - const expectedResult = - namedParamPrincipals.length > 0 - ? namedParamPrincipals[0].value.value.agentResponseValue - : returnPrincipal.value.agentResponseValue; - - return [ - [ - { - name: `principal ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - const result = await actor[functionName]( - ...namedParamPrincipals.map( - (param) => param.value.value.agentArgumentValue - ) - ); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/principal/test/test.ts b/tests/property/candid_rpc/functional_syntax/principal/test/test.ts deleted file mode 100644 index 00b1a13b45..0000000000 --- a/tests/property/candid_rpc/functional_syntax/principal/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { PrincipalArb } from 'azle/property_tests/arbitraries/candid/reference/principal_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllPrincipalsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(PrincipalArb(context)), - PrincipalArb(context) -); - -const CanisterConfigArb = fc - .array(AllPrincipalsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/record/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/record/test/generate_body.ts deleted file mode 100644 index 56d5b4a55f..0000000000 --- a/tests/property/candid_rpc/functional_syntax/record/test/generate_body.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Record } from 'azle/property_tests/arbitraries/candid/constructed/record_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamRecords: Named>[], - returnRecord: CandidValueAndMeta -): string { - const paramsAreRecords = namedParamRecords - .map((param) => { - const fieldsCount = Object.keys( - param.value.value.agentArgumentValue - ).length; - - const paramIsObject = `typeof ${param.name} === 'object'`; - const paramHasCorrectNumberOfFields = `Object.keys(${param.name}).length === ${fieldsCount}`; - const throwError = `throw new Error('${param.name} must be a Record');`; - - return `if (!(${paramIsObject} && ${paramHasCorrectNumberOfFields})) ${throwError}`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamRecords); - - const returnStatement = returnRecord.src.valueLiteral; - - return ` - ${paramsAreRecords} - - ${paramsCorrectlyOrdered} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/record/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/record/test/generate_tests.ts deleted file mode 100644 index e23fd20329..0000000000 --- a/tests/property/candid_rpc/functional_syntax/record/test/generate_tests.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Record } from 'azle/property_tests/arbitraries/candid/constructed/record_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamRecords: Named>[], - returnRecord: CandidValueAndMeta -): Test[][] { - return [ - [ - { - name: `record ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - ...namedParamRecords.map( - (param) => param.value.value.agentArgumentValue - ) - ); - - return testEquality( - result, - returnRecord.value.agentResponseValue - ); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/record/test/test.ts b/tests/property/candid_rpc/functional_syntax/record/test/test.ts deleted file mode 100644 index 712746e896..0000000000 --- a/tests/property/candid_rpc/functional_syntax/record/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { RecordArb } from 'azle/property_tests/arbitraries/candid/constructed/record_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllRecordsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(RecordArb(context)), - RecordArb(context) -); - -const CanisterConfigArb = fc - .array(AllRecordsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/recursive/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/recursive/test/generate_body.ts deleted file mode 100644 index 6488fdc42b..0000000000 --- a/tests/property/candid_rpc/functional_syntax/recursive/test/generate_body.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Recursive } from 'azle/property_tests/arbitraries/candid/recursive'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamRecursive: Named>[], - returnRecursive: CandidValueAndMeta -): string { - const paramsCorrectlyOrdered = - areParamsCorrectlyOrdered(namedParamRecursive); - - const returnStatement = returnRecursive.src.valueLiteral; - - return ` - ${paramsCorrectlyOrdered} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/recursive/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/recursive/test/generate_tests.ts deleted file mode 100644 index d6459ffb9e..0000000000 --- a/tests/property/candid_rpc/functional_syntax/recursive/test/generate_tests.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Recursive } from 'azle/property_tests/arbitraries/candid/recursive'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamRecursive: Named>[], - returnRecursive: CandidValueAndMeta -): Test[][] { - return [ - [ - { - name: `recursive ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const params = namedParamRecursive.map( - (param) => param.value.value.agentArgumentValue - ); - - const result = await actor[functionName](...params); - - return testEquality( - result, - returnRecursive.value.agentResponseValue - ); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/recursive/test/test.ts b/tests/property/candid_rpc/functional_syntax/recursive/test/test.ts deleted file mode 100644 index c08da73148..0000000000 --- a/tests/property/candid_rpc/functional_syntax/recursive/test/test.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { RecursiveArb } from 'azle/property_tests/arbitraries/candid/recursive'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { UpdateMethodArb } from 'azle/property_tests/arbitraries/canister_methods/update_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllRecursiveQueryMethodArb = fc.oneof( - QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(RecursiveArb(context)), - RecursiveArb(context) - ), - UpdateMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(RecursiveArb(context)), - RecursiveArb(context) - ) -); - -const CanisterConfigArb = fc - .array(AllRecursiveQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb), true); diff --git a/tests/property/candid_rpc/functional_syntax/service/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/service/test/generate_body.ts deleted file mode 100644 index 21e6caaec4..0000000000 --- a/tests/property/candid_rpc/functional_syntax/service/test/generate_body.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Principal } from '@dfinity/principal'; -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; - -export function generateBody( - namedParamServices: Named>[], - returnService: CandidValueAndMeta -): string { - const paramsAreServices = namedParamServices - .map((param) => { - const paramIsAService = `(${ - param.name - } as any).principal.toText() === "${param.value.value.agentArgumentValue.toText()}"`; - - const throwError = `throw new Error('${param.name} must be a Service');`; - - return `if (!(${paramIsAService})) ${throwError}`; - }) - .join('\n'); - - const returnStatement = returnService.src.valueLiteral; - - return ` - ${paramsAreServices} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/service/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/service/test/generate_tests.ts deleted file mode 100644 index 0f28d07c9c..0000000000 --- a/tests/property/candid_rpc/functional_syntax/service/test/generate_tests.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Principal } from '@dfinity/principal'; -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import { execSync } from 'child_process'; - -export function generateTests( - functionName: string, - namedParamServices: Named>[], - returnService: CandidValueAndMeta -): Test[][] { - return [ - [ - { - name: `service ${functionName}`, - test: async (): Promise => { - // Using execSync because the JS Agent has a bug expecting services - // to be ordered by hash or something. - // See https://forum.dfinity.org/t/topic/20885/14 - - const paramsString = namedParamServices - .map( - (param) => - `service "${param.value.value.agentArgumentValue.toText()}"` - ) - .join(); - - const result = execSync( - `dfx canister call canister ${functionName} '(${paramsString})'` - ) - .toString() - .trim(); - - return testEquality( - result, - `(service "${returnService.value.agentArgumentValue.toText()}")` - ); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/service/test/test.ts b/tests/property/candid_rpc/functional_syntax/service/test/test.ts deleted file mode 100644 index d0347fb3c5..0000000000 --- a/tests/property/candid_rpc/functional_syntax/service/test/test.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { ServiceArb } from 'azle/property_tests/arbitraries/candid/reference/service_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllServicesQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.uniqueArray(ServiceArb(context), { - selector: (entry) => entry.src.typeAnnotation - }), - ServiceArb(context) -); - -const CanisterConfigArb = fc - .array(AllServicesQueryMethodArb, { - ...defaultArrayConstraints, - maxLength: 30 // If the number of generated services is too large we will run out of space in the wasm custom section. - }) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/contains_key.ts b/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/contains_key.ts deleted file mode 100644 index 51071a6976..0000000000 --- a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/contains_key.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { getActor } from 'azle/property_tests'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { StableBTreeMap } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { UniqueIdentifierArb } from 'azle/property_tests/arbitraries/unique_identifier_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -export function ContainsKeyTestArb( - stableBTreeMap: StableBTreeMap -): fc.Arbitrary { - return fc - .tuple(UniqueIdentifierArb('canisterProperties')) - .map(([functionName]): QueryMethod => { - const imports = new Set([ - ...stableBTreeMap.imports, - 'bool', - 'query' - ]); - - const paramTypeObjects = [ - stableBTreeMap.keySample.src.typeObject - ].join(', '); - - const returnTypeObject = `bool`; - const body = generateBody(stableBTreeMap.name); - const tests = generateTests( - functionName, - stableBTreeMap.keySample.value.agentArgumentValue - ); - - return { - imports, - globalDeclarations: [], - sourceCode: `${functionName}: query([${paramTypeObjects}], ${returnTypeObject}, (param0) => { - ${body} - })`, - tests - }; - }); -} - -function generateBody(stableBTreeMapName: string): string { - return /*TS*/ ` - return ${stableBTreeMapName}.containsKey(param0); - `; -} - -function generateTests( - functionName: string, - keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'] -): Test[][] { - return [ - [ - { - name: `containsKey after first deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - keySampleAgentArgumentValue - ); - - return testEquality(result, true); - } - } - ], - [ - { - name: `containsKey after second deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - keySampleAgentArgumentValue - ); - - return testEquality(result, true); - } - } - ], - [ - { - name: `containsKey after third deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - keySampleAgentArgumentValue - ); - - return testEquality(result, false); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/get.ts b/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/get.ts deleted file mode 100644 index 8776841b04..0000000000 --- a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/get.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { getActor } from 'azle/property_tests'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { StableBTreeMap } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { UniqueIdentifierArb } from 'azle/property_tests/arbitraries/unique_identifier_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -export function GetTestArb( - stableBTreeMap: StableBTreeMap -): fc.Arbitrary { - return fc - .tuple(UniqueIdentifierArb('canisterProperties')) - .map(([functionName]): QueryMethod => { - const imports = new Set([ - ...stableBTreeMap.imports, - 'Opt', - 'query', - 'None', - 'Some' - ]); - - const paramTypeObjects = [ - stableBTreeMap.keySample.src.typeObject - ].join(', '); - - const returnTypeObject = `Opt(${stableBTreeMap.valueSample.src.typeObject})`; - const valueTypeIsNull = - stableBTreeMap.valueSample.src.typeAnnotation === 'Null'; - const body = generateBody(stableBTreeMap.name, valueTypeIsNull); - - const tests = generateTests( - functionName, - stableBTreeMap.keySample.value.agentArgumentValue, - stableBTreeMap.valueSample.value.agentArgumentValue - ); - - return { - imports, - globalDeclarations: [], - sourceCode: `${functionName}: query([${paramTypeObjects}], ${returnTypeObject}, (param0) => { - ${body} - })`, - tests - }; - }); -} - -function generateBody( - stableBTreeMapName: string, - valueTypeIsNull: boolean -): string { - return /*TS*/ ` - const result = ${stableBTreeMapName}.get(param0); - const containsKey = ${stableBTreeMapName}.containsKey(param0); // For situations where the stored value is literally null - if (result === null ${valueTypeIsNull ? '&& !containsKey' : ''}) { - return None - } else { - return Some(result) - } - `; -} - -function generateTests( - functionName: string, - keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'], - valueSampleAgentArgumentValue: StableBTreeMap['valueSample']['value']['agentArgumentValue'] -): Test[][] { - return [ - [ - { - name: `get after first deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - keySampleAgentArgumentValue - ); - - return testEquality(result, [ - valueSampleAgentArgumentValue - ]); - } - } - ], - [ - { - name: `get after second deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - keySampleAgentArgumentValue - ); - - return testEquality(result, [ - valueSampleAgentArgumentValue - ]); - } - } - ], - [ - { - name: `get after third deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - keySampleAgentArgumentValue - ); - - return testEquality(result, []); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/insert.ts b/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/insert.ts deleted file mode 100644 index eee4aff2ed..0000000000 --- a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/insert.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { getActor } from 'azle/property_tests'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { StableBTreeMap } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { UniqueIdentifierArb } from 'azle/property_tests/arbitraries/unique_identifier_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -export function InsertTestArb( - stableBTreeMap: StableBTreeMap -): fc.Arbitrary { - return fc - .tuple(UniqueIdentifierArb('canisterProperties')) - .map(([functionName]): QueryMethod => { - const imports = new Set([ - ...stableBTreeMap.imports, - 'Opt', - 'update', - 'None', - 'Some' - ]); - - const paramTypeObjects = [ - stableBTreeMap.keySample.src.typeObject, - stableBTreeMap.valueSample.src.typeObject - ].join(', '); - - const returnTypeObject = `Opt(${stableBTreeMap.valueSample.src.typeObject})`; - const body = generateBody(stableBTreeMap.name); - - const tests = generateTests( - functionName, - stableBTreeMap.keySample.value.agentArgumentValue, - stableBTreeMap.valueSample.value.agentArgumentValue - ); - - return { - imports, - globalDeclarations: [], - sourceCode: `${functionName}: update([${paramTypeObjects}], ${returnTypeObject}, (param0, param1) => { - ${body} - })`, - tests - }; - }); -} - -function generateBody(stableBTreeMapName: string): string { - return /*TS*/ ` - const result = ${stableBTreeMapName}.insert(param0, param1); - if (result === null) { - return None - } else { - return Some(result) - } - `; -} - -function generateTests( - functionName: string, - keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'], - valueSampleAgentArgumentValue: StableBTreeMap['valueSample']['value']['agentArgumentValue'] -): Test[][] { - return [ - [ - { - name: `insert after first deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - keySampleAgentArgumentValue, - valueSampleAgentArgumentValue - ); - - return testEquality(result, []); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/is_empty.ts b/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/is_empty.ts deleted file mode 100644 index cee6467046..0000000000 --- a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/is_empty.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { getActor } from 'azle/property_tests'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { StableBTreeMap } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { UniqueIdentifierArb } from 'azle/property_tests/arbitraries/unique_identifier_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -export function IsEmptyTestArb( - stableBTreeMap: StableBTreeMap -): fc.Arbitrary { - return fc - .tuple(UniqueIdentifierArb('canisterProperties')) - .map(([functionName]): QueryMethod => { - const imports = new Set([ - ...stableBTreeMap.imports, - 'bool', - 'query' - ]); - - const body = generateBody(stableBTreeMap.name); - - const tests = generateTests(functionName); - - return { - imports, - globalDeclarations: [], - sourceCode: `${functionName}: query([], bool, () => { - ${body} - })`, - tests - }; - }); -} - -function generateBody(stableBTreeMapName: string): string { - return ` - return ${stableBTreeMapName}.isEmpty(); - `; -} - -function generateTests(functionName: string): Test[][] { - return [ - [ - { - name: `isEmpty after first deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality(result, true); - } - } - ], - [ - { - name: `isEmpty after second deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality(result, false); - } - } - ], - [ - { - name: `isEmpty after third deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality(result, true); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/items.ts b/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/items.ts deleted file mode 100644 index 052986ad4c..0000000000 --- a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/items.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { getActor } from 'azle/property_tests'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { StableBTreeMap } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { UniqueIdentifierArb } from 'azle/property_tests/arbitraries/unique_identifier_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -export function ItemsTestArb( - stableBTreeMap: StableBTreeMap -): fc.Arbitrary { - return fc - .tuple(UniqueIdentifierArb('canisterProperties')) - .map(([functionName]): QueryMethod => { - const imports = new Set([ - ...stableBTreeMap.imports, - 'Vec', - 'Tuple', - 'query' - ]); - - const returnTypeObject = `Vec(Tuple(${stableBTreeMap.keySample.src.typeObject}, ${stableBTreeMap.valueSample.src.typeObject}))`; - const body = generateBody(stableBTreeMap.name); - - const tests = generateTests( - functionName, - stableBTreeMap.keySample.value.agentArgumentValue, - stableBTreeMap.valueSample.value.agentArgumentValue - ); - - return { - imports, - globalDeclarations: [], - sourceCode: `${functionName}: query([], ${returnTypeObject}, () => { - ${body} - })`, - tests - }; - }); -} - -function generateBody(stableBTreeMapName: string): string { - return ` - return ${stableBTreeMapName}.items(); - `; -} - -function generateTests( - functionName: string, - keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'], - valueSampleAgentArgumentValue: StableBTreeMap['valueSample']['value']['agentArgumentValue'] -): Test[][] { - return [ - [ - { - name: `items after first deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality(result, [ - [ - keySampleAgentArgumentValue, - valueSampleAgentArgumentValue - ] - ]); - } - } - ], - [ - { - name: `items after second deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality(result, [ - [ - keySampleAgentArgumentValue, - valueSampleAgentArgumentValue - ] - ]); - } - } - ], - [ - { - name: `items after third deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality(result, []); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/keys.ts b/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/keys.ts deleted file mode 100644 index 2fee7a3318..0000000000 --- a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/keys.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { getActor } from 'azle/property_tests'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { StableBTreeMap } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { UniqueIdentifierArb } from 'azle/property_tests/arbitraries/unique_identifier_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -import { getArrayForCandidType, getArrayStringForCandidType } from './utils'; - -export function KeysTestArb( - stableBTreeMap: StableBTreeMap -): fc.Arbitrary { - return fc - .tuple(UniqueIdentifierArb('canisterProperties')) - .map(([functionName]): QueryMethod => { - const imports = new Set([ - ...stableBTreeMap.imports, - 'Vec', - 'query' - ]); - - const returnTypeObject = `Vec(${stableBTreeMap.keySample.src.typeObject})`; - const body = generateBody( - stableBTreeMap.name, - stableBTreeMap.keySample.src.typeAnnotation - ); - - const tests = generateTests(functionName, stableBTreeMap.keySample); - - return { - imports, - globalDeclarations: [], - sourceCode: `${functionName}: query([], ${returnTypeObject}, () => { - ${body} - })`, - tests - }; - }); -} - -function generateBody( - stableBTreeMapName: string, - stableBTreeMapKeyCandidTypeAnnotation: string -): string { - return ` - return ${getArrayStringForCandidType( - stableBTreeMapKeyCandidTypeAnnotation - )}(${stableBTreeMapName}.keys()); - `; -} - -function generateTests( - functionName: string, - keySample: StableBTreeMap['keySample'] -): Test[][] { - return [ - [ - { - name: `keys after first deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality( - getArrayForCandidType( - keySample.src.typeAnnotation - ).from(result), - getArrayForCandidType( - keySample.src.typeAnnotation - ).from([keySample.value.agentArgumentValue]) - ); - } - } - ], - [ - { - name: `keys after second deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality( - getArrayForCandidType( - keySample.src.typeAnnotation - ).from(result), - getArrayForCandidType( - keySample.src.typeAnnotation - ).from([keySample.value.agentArgumentValue]) - ); - } - } - ], - [ - { - name: `keys after third deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality( - getArrayForCandidType( - keySample.src.typeAnnotation - ).from(result), - getArrayForCandidType( - keySample.src.typeAnnotation - ).from([]) - ); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/len.ts b/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/len.ts deleted file mode 100644 index 626ca45e94..0000000000 --- a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/len.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { getActor } from 'azle/property_tests'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { StableBTreeMap } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { UniqueIdentifierArb } from 'azle/property_tests/arbitraries/unique_identifier_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -export function LenTestArb( - stableBTreeMap: StableBTreeMap -): fc.Arbitrary { - return fc - .tuple(UniqueIdentifierArb('canisterProperties')) - .map(([functionName]): QueryMethod => { - const imports = new Set([ - ...stableBTreeMap.imports, - 'nat64', - 'query' - ]); - - const returnTypeObject = `nat64`; - const body = generateBody(stableBTreeMap.name); - - const tests = generateTests(functionName); - - return { - imports, - globalDeclarations: [], - sourceCode: `${functionName}: query([], ${returnTypeObject}, () => { - ${body} - })`, - tests - }; - }); -} - -function generateBody(stableBTreeMapName: string): string { - return ` - return ${stableBTreeMapName}.len(); - `; -} - -function generateTests(functionName: string): Test[][] { - return [ - [ - { - name: `len after first deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality(result, 1n); - } - } - ], - [ - { - name: `len after second deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality(result, 1n); - } - } - ], - [ - { - name: `len after third deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality(result, 0n); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/remove.ts b/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/remove.ts deleted file mode 100644 index 0aa2c2b6a4..0000000000 --- a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/remove.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { getActor } from 'azle/property_tests'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { StableBTreeMap } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { UniqueIdentifierArb } from 'azle/property_tests/arbitraries/unique_identifier_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -export function RemoveTestArb( - stableBTreeMap: StableBTreeMap -): fc.Arbitrary { - return fc - .tuple(UniqueIdentifierArb('canisterProperties')) - .map(([functionName]): QueryMethod => { - const imports = new Set([ - ...stableBTreeMap.imports, - 'Opt', - 'update', - 'None', - 'Some' - ]); - - const paramTypeObjects = [ - stableBTreeMap.keySample.src.typeObject - ].join(', '); - - const returnTypeObject = `Opt(${stableBTreeMap.valueSample.src.typeObject})`; - const valueTypeIsNull = - stableBTreeMap.valueSample.src.typeAnnotation === 'Null'; - const body = generateBody(stableBTreeMap.name, valueTypeIsNull); - - const tests = generateTests( - functionName, - stableBTreeMap.keySample.value.agentArgumentValue, - stableBTreeMap.valueSample.value.agentArgumentValue - ); - - return { - imports, - globalDeclarations: [], - sourceCode: `${functionName}: update([${paramTypeObjects}], ${returnTypeObject}, (param0) => { - ${body} - })`, - tests - }; - }); -} - -function generateBody( - stableBTreeMapName: string, - valueTypeIsNull: boolean -): string { - return /*TS*/ ` - const containsKey = ${stableBTreeMapName}.containsKey(param0); // For situations where the stored value is literally null - const result = ${stableBTreeMapName}.remove(param0); - if (result === null ${valueTypeIsNull ? '&& !containsKey' : ''}) { - return None - } else { - return Some(result) - } - `; -} - -function generateTests( - functionName: string, - keySampleAgentArgumentValue: StableBTreeMap['keySample']['value']['agentArgumentValue'], - valueSampleAgentArgumentValue: StableBTreeMap['valueSample']['value']['agentArgumentValue'] -): Test[][] { - return [ - [], - [ - { - name: `remove after second deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - keySampleAgentArgumentValue - ); - - return testEquality(result, [ - valueSampleAgentArgumentValue - ]); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/test.ts b/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/test.ts deleted file mode 100644 index 75ee3008df..0000000000 --- a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/test.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { runPropTests } from 'azle/property_tests'; -import { CanisterArb } from 'azle/property_tests/arbitraries/canister_arb'; -import { StableBTreeMapArb } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { Context } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { ContainsKeyTestArb } from './contains_key'; -import { GetTestArb } from './get'; -import { InsertTestArb } from './insert'; -import { IsEmptyTestArb } from './is_empty'; -import { ItemsTestArb } from './items'; -import { KeysTestArb } from './keys'; -import { LenTestArb } from './len'; -import { RemoveTestArb } from './remove'; -import { ValuesTestArb } from './values'; - -const context: Context = { api: 'functional', constraints: {} }; - -// TODO change this to context - -const StableBTreeMapTestArb = fc - .array( - StableBTreeMapArb(context).chain((stableBTreeMap) => { - return fc - .tuple( - IsEmptyTestArb(stableBTreeMap), - InsertTestArb(stableBTreeMap), - ContainsKeyTestArb(stableBTreeMap), - GetTestArb(stableBTreeMap), - ItemsTestArb(stableBTreeMap), - KeysTestArb(stableBTreeMap), - LenTestArb(stableBTreeMap), - ValuesTestArb(stableBTreeMap), - RemoveTestArb(stableBTreeMap) - ) - .map( - ([ - isEmptyTestQueryMethod, - insertTestQueryMethod, - containsKeyTestQueryMethod, - getTestQueryMethod, - itemsTestQueryMethod, - keysTestQueryMethod, - lenTestQueryMethod, - valuesTestQueryMethod, - removeTestQueryMethod - ]) => { - return { - globalDeclarations: [ - ...stableBTreeMap.keySample.src - .variableAliasDeclarations, - ...stableBTreeMap.valueSample.src - .variableAliasDeclarations, - stableBTreeMap.definition - ], - queryMethods: [], - updateMethods: [ - isEmptyTestQueryMethod, - insertTestQueryMethod, - containsKeyTestQueryMethod, - getTestQueryMethod, - itemsTestQueryMethod, - keysTestQueryMethod, - lenTestQueryMethod, - valuesTestQueryMethod, - removeTestQueryMethod - ] - }; - } - ); - }), - { - minLength: 10, - maxLength: 30 - } - ) - .map((canisterConfigs) => { - const globalDeclarations = canisterConfigs.flatMap( - (canisterConfig) => canisterConfig.globalDeclarations - ); - - const queryMethods = canisterConfigs.flatMap( - (canisterConfig) => canisterConfig.queryMethods - ); - - const updateMethods = canisterConfigs.flatMap( - (canisterConfig) => canisterConfig.updateMethods - ); - - return { - globalDeclarations, - queryMethods, - updateMethods - }; - }); - -runPropTests(CanisterArb(context, StableBTreeMapTestArb)); diff --git a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/values.ts b/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/values.ts deleted file mode 100644 index cb63b05728..0000000000 --- a/tests/property/candid_rpc/functional_syntax/stable_b_tree_map/test/values.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { getActor } from 'azle/property_tests'; -import { QueryMethod } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { StableBTreeMap } from 'azle/property_tests/arbitraries/stable_b_tree_map_arb'; -import { UniqueIdentifierArb } from 'azle/property_tests/arbitraries/unique_identifier_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; -import fc from 'fast-check'; - -import { getArrayForCandidType, getArrayStringForCandidType } from './utils'; - -export function ValuesTestArb( - stableBTreeMap: StableBTreeMap -): fc.Arbitrary { - return fc - .tuple(UniqueIdentifierArb('canisterProperties')) - .map(([functionName]): QueryMethod => { - const imports = new Set([ - ...stableBTreeMap.imports, - 'Vec', - 'query' - ]); - - const returnTypeObject = `Vec(${stableBTreeMap.valueSample.src.typeObject})`; - const body = generateBody( - stableBTreeMap.name, - stableBTreeMap.valueSample.src.typeAnnotation - ); - - const tests = generateTests( - functionName, - stableBTreeMap.valueSample - ); - - return { - imports, - globalDeclarations: [], - sourceCode: `${functionName}: query([], ${returnTypeObject}, () => { - ${body} - })`, - tests - }; - }); -} - -function generateBody( - stableBTreeMapName: string, - stableBTreeMapValueCandidTypeAnnotation: string -): string { - return ` - return ${getArrayStringForCandidType( - stableBTreeMapValueCandidTypeAnnotation - )}(${stableBTreeMapName}.values()); - `; -} - -function generateTests( - functionName: string, - valueSample: StableBTreeMap['valueSample'] -): Test[][] { - return [ - [ - { - name: `values after first deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality( - getArrayForCandidType( - valueSample.src.typeAnnotation - ).from(result), - getArrayForCandidType( - valueSample.src.typeAnnotation - ).from([valueSample.value.agentArgumentValue]) - ); - } - } - ], - [ - { - name: `values after second deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality( - getArrayForCandidType( - valueSample.src.typeAnnotation - ).from(result), - getArrayForCandidType( - valueSample.src.typeAnnotation - ).from([valueSample.value.agentArgumentValue]) - ); - } - } - ], - [ - { - name: `values after third deploy ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](); - - return testEquality( - getArrayForCandidType( - valueSample.src.typeAnnotation - ).from(result), - getArrayForCandidType( - valueSample.src.typeAnnotation - ).from([]) - ); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/text/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/text/test/generate_body.ts deleted file mode 100644 index 0e2091277f..0000000000 --- a/tests/property/candid_rpc/functional_syntax/text/test/generate_body.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamTexts: Named>[], - returnText: CandidValueAndMeta -): string { - const paramsAreStrings = namedParamTexts - .map((param) => { - return `if (typeof ${param.name} !== 'string') throw new Error('${param.name} must be a string');`; - }) - .join('\n'); - - const returnStatement = namedParamTexts.reduce((acc, { name }) => { - return `${acc} + ${name}`; - }, returnText.src.valueLiteral); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamTexts); - - return ` - ${paramsAreStrings} - - ${paramsCorrectlyOrdered} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/text/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/text/test/generate_tests.ts deleted file mode 100644 index 370e30d251..0000000000 --- a/tests/property/candid_rpc/functional_syntax/text/test/generate_tests.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamTexts: Named>[], - returnTexts: CandidValueAndMeta -): Test[][] { - const expectedResult = namedParamTexts.reduce( - (acc, param) => acc + param.value.value.agentResponseValue, - returnTexts.value.agentResponseValue - ); - const paramValues = namedParamTexts.map( - (param) => param.value.value.agentArgumentValue - ); - - return [ - [ - { - name: `text ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName](...paramValues); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/text/test/test.ts b/tests/property/candid_rpc/functional_syntax/text/test/test.ts deleted file mode 100644 index 61dcd8b245..0000000000 --- a/tests/property/candid_rpc/functional_syntax/text/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { TextArb } from 'azle/property_tests/arbitraries/candid/primitive/text'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllTextsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(TextArb(context)), - TextArb(context) -); - -const CanisterConfigArb = fc - .array(AllTextsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/tuple/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/tuple/test/generate_body.ts deleted file mode 100644 index 9db56b18d1..0000000000 --- a/tests/property/candid_rpc/functional_syntax/tuple/test/generate_body.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { - ReturnTuple, - Tuple -} from 'azle/property_tests/arbitraries/candid/constructed/tuple_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamTuples: Named>[], - returnTuple: CandidValueAndMeta -): string { - const paramsAreTuples = namedParamTuples - .map((param) => { - const fieldsCount = param.value.value.agentArgumentValue.length; - - const paramIsArray = `Array.isArray(${param.name})`; - const paramHasCorrectNumberOfFields = `${param.name}.length === ${fieldsCount}`; - const throwError = `throw new Error('${param.name} must be a Tuple');`; - - return `if (!(${paramIsArray} && ${paramHasCorrectNumberOfFields})) ${throwError}`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamTuples); - - const returnStatement = returnTuple.src.valueLiteral; - - return ` - ${paramsAreTuples} - - ${paramsCorrectlyOrdered} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/tuple/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/tuple/test/generate_tests.ts deleted file mode 100644 index c35eedb756..0000000000 --- a/tests/property/candid_rpc/functional_syntax/tuple/test/generate_tests.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { - ReturnTuple, - Tuple -} from 'azle/property_tests/arbitraries/candid/constructed/tuple_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamTuples: Named>[], - returnTuple: CandidValueAndMeta -): Test[][] { - const expectedResult = returnTuple.value.agentResponseValue; - - return [ - [ - { - name: `tuple ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - ...namedParamTuples.map( - (param) => param.value.value.agentArgumentValue - ) - ); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/tuple/test/test.ts b/tests/property/candid_rpc/functional_syntax/tuple/test/test.ts deleted file mode 100644 index 69af2d38a4..0000000000 --- a/tests/property/candid_rpc/functional_syntax/tuple/test/test.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { TupleArb } from 'azle/property_tests/arbitraries/candid/constructed/tuple_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllTuplesQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.uniqueArray(TupleArb(context), { - selector: (entry) => entry.src.typeAnnotation - }), - TupleArb(context) -); - -const CanisterConfigArb = fc - .array(AllTuplesQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/variant/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/variant/test/generate_body.ts deleted file mode 100644 index 30e7aea51d..0000000000 --- a/tests/property/candid_rpc/functional_syntax/variant/test/generate_body.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Variant } from 'azle/property_tests/arbitraries/candid/constructed/variant_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamVariants: Named>[], - returnVariant: CandidValueAndMeta -): string { - const paramsAreVariants = namedParamVariants - .map((param) => { - return `if (typeof ${param.name} !== 'object' || Object.keys(${param.name}).length !== 1) throw new Error('${param.name} must be a Variant');`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = - areParamsCorrectlyOrdered(namedParamVariants); - - const returnStatement = returnVariant.src.valueLiteral; - - return ` - ${paramsCorrectlyOrdered} - - ${paramsAreVariants} - - return ${returnStatement}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/variant/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/variant/test/generate_tests.ts deleted file mode 100644 index d9e46079d2..0000000000 --- a/tests/property/candid_rpc/functional_syntax/variant/test/generate_tests.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { Variant } from 'azle/property_tests/arbitraries/candid/constructed/variant_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamVariants: Named>[], - returnVariant: CandidValueAndMeta -): Test[][] { - const expectedResult = returnVariant.value.agentResponseValue; - - return [ - [ - { - name: `variant ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const result = await actor[functionName]( - ...namedParamVariants.map( - (param) => param.value.value.agentArgumentValue - ) - ); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/variant/test/test.ts b/tests/property/candid_rpc/functional_syntax/variant/test/test.ts deleted file mode 100644 index 458e9d1db5..0000000000 --- a/tests/property/candid_rpc/functional_syntax/variant/test/test.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { VariantArb } from 'azle/property_tests/arbitraries/candid/constructed/variant_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllVariantsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.uniqueArray(VariantArb(context), { - selector: (entry) => entry.src.typeAnnotation - }), - VariantArb(context) -); - -const CanisterConfigArb = fc - .array(AllVariantsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb)); diff --git a/tests/property/candid_rpc/functional_syntax/vec/test/generate_body.ts b/tests/property/candid_rpc/functional_syntax/vec/test/generate_body.ts deleted file mode 100644 index e209ee6cd3..0000000000 --- a/tests/property/candid_rpc/functional_syntax/vec/test/generate_body.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { areParamsCorrectlyOrdered } from 'azle/property_tests/are_params_correctly_ordered'; - -export function generateBody( - namedParamVecs: Named>[], - returnVec: CandidValueAndMeta -): string { - const paramsAreArrays = namedParamVecs - .map((param) => { - return `if (!Array.isArray(${param.name}) && !ArrayBuffer.isView(${param.name})) throw new Error('${param.name} must be an array');`; - }) - .join('\n'); - - const paramsCorrectlyOrdered = areParamsCorrectlyOrdered(namedParamVecs); - - const returnValue = returnVec.src.valueLiteral; - - return ` - ${paramsAreArrays} - - ${paramsCorrectlyOrdered} - - return ${returnValue}; - `; -} diff --git a/tests/property/candid_rpc/functional_syntax/vec/test/generate_tests.ts b/tests/property/candid_rpc/functional_syntax/vec/test/generate_tests.ts deleted file mode 100644 index f668d981b1..0000000000 --- a/tests/property/candid_rpc/functional_syntax/vec/test/generate_tests.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { getActor, Named } from 'azle/property_tests'; -import { CandidValueAndMeta } from 'azle/property_tests/arbitraries/candid/candid_value_and_meta_arb'; -import { AzleResult, Test, testEquality } from 'azle/property_tests/test'; - -export function generateTests( - functionName: string, - namedParamVecs: Named>[], - returnVec: CandidValueAndMeta -): Test[][] { - const expectedResult = returnVec.value.agentResponseValue; - - return [ - [ - { - name: `vec ${functionName}`, - test: async (): Promise => { - const actor = getActor(__dirname); - - const params = namedParamVecs.map( - (param) => param.value.value.agentArgumentValue - ); - const result = await actor[functionName](...params); - - return testEquality(result, expectedResult); - } - } - ] - ]; -} diff --git a/tests/property/candid_rpc/functional_syntax/vec/test/test.ts b/tests/property/candid_rpc/functional_syntax/vec/test/test.ts deleted file mode 100644 index 47b2f5168f..0000000000 --- a/tests/property/candid_rpc/functional_syntax/vec/test/test.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { defaultArrayConstraints, runPropTests } from 'azle/property_tests'; -import { VecArb } from 'azle/property_tests/arbitraries/candid/constructed/vec_arb'; -import { - CanisterArb, - CanisterConfig -} from 'azle/property_tests/arbitraries/canister_arb'; -import { QueryMethodArb } from 'azle/property_tests/arbitraries/canister_methods/query_method_arb'; -import { Api } from 'azle/property_tests/arbitraries/types'; -import fc from 'fast-check'; - -import { generateBody } from './generate_body'; -import { generateTests } from './generate_tests'; - -const api: Api = 'functional'; -const context = { api, constraints: {} }; - -const AllVecsQueryMethodArb = QueryMethodArb( - { - api, - constraints: { - generateBody, - generateTests - } - }, - fc.array(VecArb(context)), - VecArb(context) -); - -const CanisterConfigArb = fc - .array(AllVecsQueryMethodArb, defaultArrayConstraints) - .map((queryMethods): CanisterConfig => { - return { queryMethods }; - }); - -runPropTests(CanisterArb(context, CanisterConfigArb));